You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(cli): --windows — clean multi-window capture with slide transitions
Window mode captures one window cleanly, but a real demo moves between a
terminal, an editor, a browser. `record --windows "a,b,c"` captures every
matched window continuously in parallel — ScreenCaptureKit window capture,
so each feed stays clean even while occluded — plus the focus timeline.
`export --follow-windows` then composites one video that switches to
whichever window had focus, the incoming window sliding in from the side
it sat on (450 ms eased slide; direction follows screen geometry).
- Swift helper: new optional `multiWindows` request mode running N
SCStreams + writers in one process. This is load-bearing: a second
helper *process* interrupts the first stream (SCStreamErrorDomain
-3805, empirically verified), while in-process streams coexist.
- Focus helper now reports the CGWindowID so focus samples bind exactly
to captured windows.
- electron/cli/multiWindowRecorder.ts: match windows by title, drive the
multi-capture helper + focus sampler, write a
`<primary>.multiwindow.json` manifest (windows + focus timeline).
- src/lib/windowSwitch/: manifest contracts and a pure, unit-tested
switch-timeline builder (1.2 s dwell, flicker collapse, unrecorded
windows keep the current screen, geometry-based slide direction).
- src/cli/multiWindowCompositor.ts: offline lockstep decode of all
window videos (frame channels with backpressure) → slide compositing →
VideoEncoder/VideoMuxer intermediate, which then flows through the
normal export pipeline (wallpaper, padding, annotations, --audio).
macOS only; audio via export --audio for now.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019ceTJjoPJYa5BdmXZdDc5J
0 commit comments