diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index 80ffa2a..9f1b130 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -72,7 +72,7 @@ directory + `vite.config.ts` inline string + `src/background/`. - [x] 01-03-PLAN.md — Offscreen recorder TDD: ring buffer + codec strict-mode + getDisplayMedia + track-ended cleanup; D-13 fallback skeleton pre-staged - [x] 01-04-PLAN.md — Port keepalive + OFFSCREEN_READY handshake (TDD): replaces alarms keepalive on offscreen side - [x] 01-05-PLAN.md — SW shrink: delete legacy buffer + alarms + IndexedDB + tabCapture paths; wire SW-side onConnect host -- [ ] 01-06-PLAN.md — Build pipeline collapse: delete vite.config.ts inline plugin + top-level offscreen/ dir; declare rollupOptions.input +- [x] 01-06-PLAN.md — Build pipeline collapse: delete vite.config.ts inline plugin + top-level offscreen/ dir; declare rollupOptions.input - [ ] 01-07-PLAN.md — Manual smoke + ffprobe D-12 acceptance gate; commit regression fixture ### Phase 2: Stabilize DOM + event capture privacy @@ -224,7 +224,7 @@ Phases execute in numeric order: 1 → 2 → 3 → 4 → 5. | Phase | Plans Complete | Status | Completed | |-------|----------------|--------|-----------| -| 1. Stabilize video pipeline | 4/7 | In Progress| | +| 1. Stabilize video pipeline | 6/7 | In Progress| | | 2. Stabilize DOM + event capture privacy | 0/TBD | Not started | - | | 3. Stabilize export pipeline | 0/TBD | Not started | - | | 4. SPEC §10 smoke verification | 0/TBD | Not started | - | diff --git a/.planning/STATE.md b/.planning/STATE.md index 3743955..521b81c 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -3,15 +3,15 @@ gsd_state_version: 1.0 milestone: v2.0.0 milestone_name: milestone status: executing -stopped_at: Completed Plan 01-05 — SW shrink + onConnect host wired (T-1-04 sender check, OFFSCREEN_READY handshake, port-based buffer fetch, IDB orphan cleanup, hasDocument re-sync); 9/9 tests still green; Plan 06 next (vite.config.ts collapse) -last_updated: "2026-05-15T16:06:29.434Z" +stopped_at: Completed Plan 01-06 — vite.config.ts collapse (226 -> 21 lines), orphan offscreen/ dir deleted, dist build green, crxjs Outcome A confirmed and SW URL reconciled (chrome.runtime.getURL('src/offscreen/index.html')); 9/9 tests still green; Plan 07 next (ffprobe acceptance gate) +last_updated: "2026-05-15T16:16:50.760Z" last_activity: 2026-05-15 progress: total_phases: 5 completed_phases: 0 total_plans: 7 - completed_plans: 5 - percent: 71 + completed_plans: 6 + percent: 86 --- # Project State @@ -28,12 +28,12 @@ no server, no password leaks. ## Current Position Phase: 1 (Stabilize Video Pipeline) — EXECUTING -Plan: 6 of 7 +Plan: 7 of 7 Status: Ready to execute Last activity: 2026-05-15 REQUIREMENTS.md, ROADMAP.md, STATE.md written) -Progress: [███████░░░] 71% +Progress: [█████████░] 86% ## Performance Metrics @@ -64,6 +64,7 @@ Progress: [███████░░░] 71% | Phase 1 P03 | 8min | 3 tasks | 5 files | | Phase 01 P04 | 4min | 3 tasks | 1 files | | Phase 01 P05 | 8min | 2 tasks | 1 files | +| Phase 1 P06 | 3min | 2 tasks | 2 files | ## Accumulated Context @@ -98,6 +99,8 @@ current work: - [Phase ?]: [Phase 01-05]: Added chrome.offscreen.hasDocument() in initialize() — Rule 2 robustness, audit P1 #8 mitigation across SW respawns - [Phase ?]: [Phase 01-05]: SW is now a pure coordinator — onConnect host bound to 'video-keepalive' port with T-1-04 sender check; getVideoBufferFromOffscreen replaces synchronous SW-local buffer fetch; OFFSCREEN_READY handshake closes the audit P1 #12 race - [Phase ?]: [Phase 01-05]: indexedDB.deleteDatabase('VideoRecorderDB') in onInstalled — T-1-NEW-05-02 / RESEARCH.md Runtime State Inventory cleanup of orphaned IDB from pre-Phase-01 builds +- [Phase ?]: [Phase 01-06]: Collapsed vite.config.ts from 226 -> 21 lines (RESEARCH.md Example B verbatim); deleted 174-line inline copy-offscreen plugin (audit P0 #1 root cause) and the orphan offscreen/ top-level directory (D-08) +- [Phase ?]: [Phase 01-06]: crxjs Outcome A confirmed — dist/src/offscreen/index.html (preserves src/ prefix from rollupOptions.input key). SW URL adjusted to chrome.runtime.getURL('src/offscreen/index.html'); RESEARCH.md Pitfall 5 binding empirically verified ### Pending Todos @@ -120,7 +123,7 @@ Items acknowledged and carried forward from previous milestone close: ## Session Continuity -Last session: 2026-05-15T16:06:29.412Z -Stopped at: Completed Plan 01-05 — SW shrink + onConnect host wired (T-1-04 sender check, OFFSCREEN_READY handshake, port-based buffer fetch, IDB orphan cleanup, hasDocument re-sync); 9/9 tests still green; Plan 06 next (vite.config.ts collapse) +Last session: 2026-05-15T16:16:50.743Z +Stopped at: Completed Plan 01-06 — vite.config.ts collapse (226 -> 21 lines), orphan offscreen/ dir deleted, dist build green, crxjs Outcome A confirmed and SW URL reconciled (chrome.runtime.getURL('src/offscreen/index.html')); 9/9 tests still green; Plan 07 next (ffprobe acceptance gate) intel synthesis. Coverage validated: 11/11 v1 REQs mapped. -Resume file: .planning/phases/01-stabilize-video-pipeline/01-06-PLAN.md +Resume file: None diff --git a/.planning/phases/01-stabilize-video-pipeline/01-06-SUMMARY.md b/.planning/phases/01-stabilize-video-pipeline/01-06-SUMMARY.md new file mode 100644 index 0000000..3af8c25 --- /dev/null +++ b/.planning/phases/01-stabilize-video-pipeline/01-06-SUMMARY.md @@ -0,0 +1,307 @@ +--- +phase: 01-stabilize-video-pipeline +plan: 06 +subsystem: build-pipeline +tags: [vite, crxjs, rollup-input, mv3, offscreen-document, dead-code-deletion, build-config, p0-1, audit-p2-17, audit-p2-18, d-07, d-08] + +# Dependency graph +requires: + - phase: 01-stabilize-video-pipeline + provides: "Plan 03 created src/offscreen/index.html + src/offscreen/recorder.ts (the crxjs-managed entry that replaces the orphan offscreen/ dir); Plan 05 left chrome.runtime.getURL('offscreen/index.html') in src/background/index.ts:45 for Plan 06 to reconcile against the actual crxjs emit path" +provides: + - "Collapsed vite.config.ts: 226 → 21 lines (-205). The 174-line inline copy-offscreen plugin (audit P0 #1 root cause) is GONE." + - "Orphan offscreen/ top-level directory deleted (offscreen/index.ts + offscreen/index.html — both dead per D-08)." + - "rollupOptions.input.offscreen wired to src/offscreen/index.html (RESEARCH.md Example B); crxjs picks up the recorder.ts module via the HTML