revert(01): reopen Phase 1 — D-13 multi-EBML-concat is unplayable
REQ-video-ring-buffer flipped from [x] back to [ ]. ROADMAP.md Phase 1 row reverted from [x] Closed 2026-05-15 to [ ] reopened 2026-05-16. STATE.md status flipped phase_complete → phase_reopened with full historical narrative preserved. Root cause (confirmed at byte level by gsd-debugger 2026-05-16): D-13's concat-of-self-contained-WebM-segments architecture produces a 3-EBML-header WebM that standards-compliant Matroska parsers (mpv, ffmpeg, Chrome HTMLMediaElement) play only as the first segment (~9.94 s) and silently drop the remaining 2 segments. Confirmed via operator mpv drag-drop test of BOTH the canonical 2026-05-15 closure fixture and the 2026-05-16 UAT-produced fixture — both exhibit the same broken playback. The 2026-05-15 "operator-confirmed clean Chrome playback" assessment was insufficient: it verified the file plays without freezing but did not measure total duration. Phase 1's primary deliverable (REQ-video-ring-buffer / SPEC §10 #7) is therefore NOT satisfied. Fix path chosen by user: ts-ebml (parse) + webm-muxer (write) to replace mergeVideoSegments file-concat with real single-EBML remux. Will land as Plan 01-08 via fresh /gsd-plan-phase ceremony. RED test landed in tests/offscreen/webm-playback.test.ts (2 new assertions on container-format-duration + ffmpeg-full-decode-duration). 2 failures, 53 baseline tests still GREEN. Option C port-lifecycle refactor (debug session empty-archive-port-race, commits 674c415..f0871c0) DID land cleanly and is retained — that fix was orthogonal and correctly resolved the silent-empty-archive symptom that previously masked this deeper bug. Debug session: .planning/debug/d13-multi-ebml-concat-unplayable.md Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -16,7 +16,7 @@ Requirements for the Phase 1 SPEC. Each maps to one phase in ROADMAP.md.
|
||||
|
||||
### Video
|
||||
|
||||
- [x] **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 captured video. AMENDED in
|
||||
Phase 01: video is acquired via `navigator.mediaDevices.getDisplayMedia()`
|
||||
invoked from the offscreen document (with `chrome.offscreen.Reason.DISPLAY_MEDIA`),
|
||||
@@ -35,9 +35,19 @@ Requirements for the Phase 1 SPEC. Each maps to one phase in ROADMAP.md.
|
||||
CON-video-window, CON-video-codec, CON-display-capture-binding (replaces
|
||||
RETIRED CON-tab-capture-binding). CON-webm-header-retention RETIRED in
|
||||
favor of D-13 per-segment header isolation.
|
||||
- SPEC §10 acceptance criteria: #2, #3, #7 — all green 2026-05-15
|
||||
(D-12 ffprobe gate + operator-confirmed Chrome playback + ffmpeg dry-run
|
||||
exit 0 with zero decoder errors against `tests/fixtures/last_30sec.webm`).
|
||||
- SPEC §10 acceptance criteria: #2, #3 — green 2026-05-15 (D-12 ffprobe
|
||||
gate). #7 (last_30sec.webm plays back in a browser) — **REOPENED
|
||||
2026-05-16**: D-13's concat-of-self-contained-segments architecture
|
||||
produces a multi-EBML-header file that standards-compliant Matroska
|
||||
parsers (mpv, ffmpeg, Chrome's HTMLMediaElement) play only as the
|
||||
first segment (~9.94 s) and silently drop segments 2 and 3. The
|
||||
2026-05-15 "operator-confirmed clean Chrome playback" assessment was
|
||||
insufficient — it checked playback ran without freezing but did not
|
||||
measure total duration. Plan 01-08 (WebM remux via ts-ebml +
|
||||
webm-muxer) will replace `mergeVideoSegments`'s file-concat with a
|
||||
real single-EBML-headered remux, restoring SPEC §10 #7. See
|
||||
`.planning/debug/d13-multi-ebml-concat-unplayable.md` for the
|
||||
byte-level root-cause evidence.
|
||||
|
||||
### DOM Capture
|
||||
|
||||
@@ -193,7 +203,7 @@ Which phase covers which requirement. See ROADMAP.md for phase details.
|
||||
|
||||
| Requirement | Phase | Status |
|
||||
|-------------|-------|--------|
|
||||
| REQ-video-ring-buffer | Phase 1 | Complete |
|
||||
| REQ-video-ring-buffer | Phase 1 | In progress (reopened 2026-05-16: SPEC §10 #7 fails; Plan 01-08 WebM remux pending) |
|
||||
| REQ-rrweb-dom-buffer | Phase 2 | Pending |
|
||||
| REQ-user-event-log | Phase 2 | Pending |
|
||||
| REQ-password-confidentiality | Phase 2 | Pending |
|
||||
|
||||
Reference in New Issue
Block a user