Add Playwright stream capture on end#16
Merged
Merged
Conversation
- StreamManager: CDP-to-MJPEG multiplexer with frame caching for idle pages - MJPEG endpoint with Fastify reply.hijack(), flushHeaders, setNoDelay - Sidebar live stream section with auto-open, red pulse indicator, pop-out button - Pop-out viewer: standalone HTML page via window.open() for resizable viewing - dispatch-stream CLI for agents to start/stop streams - SSE events (stream.started/stopped) keep all clients in sync - Plan docs for DB-backed media store and stream capture follow-ups Co-Authored-By: Claude Opus 4.6 <[email protected]>
Resolve conflicts to combine DB-backed media store and release manager from main with the Playwright streaming feature. Drop the old fs.watch media watchers in favor of DB-backed media. Co-Authored-By: Claude Opus 4.6 <[email protected]>
When a Playwright stream stops, StreamManager fires an onStreamEnd callback with the last JPEG frame. The server saves it to the media directory, inserts a DB record with source='stream', and publishes a media.changed SSE event. The sidebar renders these as "Stream recording". Co-Authored-By: Claude Opus 4.6 <[email protected]>
Stream recording items now have a red left border, subtle red background tint, and a MonitorPlay icon with "Stream recording" badge to visually distinguish them from regular screenshots. Co-Authored-By: Claude Opus 4.6 <[email protected]>
- Add `description` TEXT column to media table - Accept description in upload endpoint, stream stop API, and onStreamEnd callback - dispatch-share and dispatch-stream stop both accept -d/--description flag - Display descriptions in the media sidebar for both screenshots and stream captures Co-Authored-By: Claude Opus 4.6 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
onStreamEndcallback toStreamManagerthat fires with the last JPEG frame before cleanupsource: 'stream', and publishesmedia.changedSSEmediaSourceLabelhelperTest plan
stream-capture-*.jpgsaved to media dirsource: 'stream'via media APInpm run finalize:webpasses (tsc + vite build)tsc --noEmitpasses🤖 Generated with Claude Code