85a1b9d2ca
Bug 1: .ptr-ind used top:8px so the pull-to-refresh spinner sat under the notch/Dynamic Island. Now top:calc(var(--sat)+8px) clears the safe-area inset. Bug 2: video attachments rendered as a plain download link that re-downloaded on every tap. Server now sends isVideo/isAudio on message attachments; videos render as an in-chat player — masked poster with a DOWNLOAD button that loads the file ONCE (preload=none -> load on tap), then becomes a PLAY button; playing hands off to native inline controls, so no repeat downloads. build batch155. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>