2127397408
Root cause of a downloaded/streaming video buffering repeatedly: every /files Range request (a playing video fires dozens) re-ran the full attachment authorization, which scans the messages table by attachment_id (un-indexed) — a per-chunk table scan = stutter. Now the auth decision is cached per user+attachment for 60s (module-level, bounded), so range requests after the first are ~free. Also: preload='none' (nothing about a video downloads until the user taps play — only the small poster loads), per 'no auto-download'. And the buffering spinner no longer hides on canplay/loadeddata (they fire mid-buffer), so it reliably spins whenever it's buffering. build batch159. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>