Milestone v1 (v2.0.0): Mokosh — Session Capture #1

Merged
strategy155 merged 297 commits from gsd/phase-04-harden-clean-up-optional into main 2026-05-31 15:34:17 +00:00
Showing only changes of commit 597d967ccf - Show all commits

View File

@@ -17,13 +17,19 @@ Requirements for the Phase 1 SPEC. Each maps to one phase in ROADMAP.md.
### Video ### Video
- [ ] **REQ-video-ring-buffer**: The extension maintains an in-memory ring - [ ] **REQ-video-ring-buffer**: The extension maintains an in-memory ring
buffer containing the most recent 30 seconds of active-tab video. Video is buffer containing the most recent 30 seconds of captured video. AMENDED in
captured via `chrome.tabCapture.capture()` at `video/webm; codecs=vp9` @ Phase 01: video is acquired via `navigator.mediaDevices.getDisplayMedia()`
400 000 bps with a `MediaRecorder` timeslice of 2000 ms. A single continuous invoked from the offscreen document (with `chrome.offscreen.Reason.DISPLAY_MEDIA`),
recorder per session; tab activation changes trigger re-attach. The first NOT `chrome.tabCapture` as originally specified. The captured stream is
emitted chunk (WebM header) is retained indefinitely; subsequent chunks screen-or-window-scoped per the operator's one-time selection in Chrome's
rotate out by the 30-second TTL rule. Bindings: DEC-003, DEC-009, native picker, and continues unchanged across tab switches. Encoding is
CON-video-window, CON-video-codec, CON-webm-header-retention. unchanged: `video/webm; codecs=vp9` @ 400 000 bps with a `MediaRecorder`
timeslice of 2000 ms; a single continuous recorder runs for the whole
session. The first emitted chunk (WebM header) is retained indefinitely;
subsequent chunks rotate out by the 30-second TTL rule. Bindings: DEC-003
(AMENDED), DEC-009, CON-video-window, CON-video-codec,
CON-webm-header-retention, CON-display-capture-binding (replaces RETIRED
CON-tab-capture-binding).
- SPEC §10 acceptance criteria: #2, #3, #7. - SPEC §10 acceptance criteria: #2, #3, #7.
### DOM Capture ### DOM Capture