docs(01-11): amendment A — pivot to extension-internal harness page
Architectural pivot triggered by feasibility research prototype (commitc647f61, A6 PASS 5/5 + Bug-B regression rewind verified). Two empirical findings invalidate original architecture: 1. MV3 service workers BLOCK dynamic import. await import('test-hooks/ sw-hooks') in src/background/index.ts silently kills the SW — chunk loads, await never resolves, no listeners register. Cited Chromium es_modules.md + w3c/webextensions#212. 2. Puppeteer WebWorker.evaluate against MV3 SW only exposes chrome. {loadTimes,csi} — not the extension chrome.* API surface. The Wave 1 (cb1a729) SW-side hooks are fundamentally broken in test builds (production unaffected — gated by __MOKOSH_UAT__ which is false in prod). Executor must DELETE the SW-side dynamic import + sw-hooks.ts entirely; offscreen-side hooks stay (offscreen IS a DOM document; dynamic import works there). Replacement (Verdict-A architecture, proven by prototype): - Extension-internal harness page at chrome-extension://<id>/tests/ uat/extension-page-harness.html — privileged extension context with FULL chrome.* API access - Puppeteer drives the page via page.goto + page.evaluate - For SW state: page calls chrome.runtime.sendMessage; SW responds via production messaging - For getDisplayMedia: offscreen-side installFakeDisplayMedia() patches navigator.mediaDevices.getDisplayMedia → Canvas captureStream synthetic MediaStream A6 (Bug B regression catch) PROVEN. Industry-standard pattern (MetaMask, eyeo, Chrome MV3 official testing docs all converge). Effort remaining: ~7-10h subagent budget (Wave 0 + bonus debug-import commits keep; Wave 1 hooks rewire 30min; Wave 2 scaffolding 1-2h; Wave 3 13 more assertions 4-6h; Wave 4 closure 1h). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
---
|
||||
amended_at: "2026-05-18"
|
||||
amendment: "A"
|
||||
amendment_summary: "Wave 1 T2 + Wave 2 T3 + Wave 3 method guidance superseded. MV3 SW blocks dynamic import (verified empirically); SW-side test hooks DROPPED. Replaced with extension-internal harness page architecture (proven by c647f61 prototype). See 01-11-PLAN-AMENDMENT-A.md."
|
||||
phase: 01-stabilize-video-pipeline
|
||||
plan: 11
|
||||
type: tdd
|
||||
|
||||
Reference in New Issue
Block a user