Skip to content

A loader on attachments the server is still processing, and the sandbox converts chat videos with sound (GRYT-1669) - #784

Merged
sivert-io merged 1 commit into
mainfrom
claude/GRYT-1669-chat-video-and-loader
Oct 5, 2026
Merged

sivert-io merged 1 commit into
mainfrom
claude/GRYT-1669-chat-video-and-loader

Conversation

@sivert-io

Copy link
Copy Markdown
Member

The client half of Gryt-chat/server#277 and Gryt-chat/image-worker#47.

  • Loader: an attachment marked processing is drawn as a box in its own shape with a spinner and "Processing…". The sender's local picture shows faded behind it when there is one. chat:attachments swaps in the finished attachment. refused shows "… couldn't be processed, so it isn't shown."
  • Desktop sandbox: a new chatvideo job converts with mediabunny to AV1 + Opus in MP4, inside 1280px (even sides, never enlarged), at most 30 fps, with the frames themselves rotated (no rotation tag). The input formats are listed by hand (MP4, QuickTime, Matroska, WebM), which leaves out HLS. The poster is taken from the converted file. Chat videos get a ten-minute limit.

Tested: live against a Docker server and worker, through the real composer (loader on, then off at 0.75 s, video plays with audio decoded, fake HLS refused). In Electron 40 the sandbox converted the same eight files, and refused HLS-as-mp4, random bytes and a truncated MP4. check-media-sandbox.mjs covers chatVideoSize and the new job kind.

A server without these changes sends no processing, so nothing changes against it.

🤖 Generated with Claude Code

…ox converts chat videos with sound (GRYT-1669)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@sivert-io
sivert-io merged commit 1bb4c55 into main Oct 5, 2026
19 checks passed
@sivert-io
sivert-io deleted the claude/GRYT-1669-chat-video-and-loader branch October 5, 2026 13:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant