A32 ships ~90 lines of best-effort RAM scaffolding per D-P3-04 + RESEARCH Open Question 3 (recommended SHIP). Calls puppeteer.Page.metrics() against the harness page and asserts JSHeapUsedSize is below the SPEC §10 #9 50 MB ceiling. Page-realm scope is the load-bearing caveat (RESEARCH Pitfall 2): the MV3 service worker is a separate Puppeteer target with its own V8 isolate, so Page.metrics() under-reports the operator-facing "extension background RAM" measurement that §10 #9 actually requires. The binding §10 #9 gate stays operator-driven (chrome://memory-internals OR chrome://extensions service-worker memory display) and is recorded in Plan 03-05 VERIFICATION.md human_verification block. Mandatory diagnostic line emitted on EVERY run regardless of pass/fail: "NOTE: page-realm only; SW context measurement requires chrome://memory-internals operator verification per D-P3-04." printAssertionResult prints diagnostics to stdout so the operator sees the caveat in the live UAT trace, never confusing automation GREEN with full §10 #9 closure (T-03-04-01 Repudiation mitigation). Host-side only — no page-side assertA32, no setupFreshRecording, no SAVE, no archive parse. driveA32 takes only `page` (no downloadsDir), so the orchestrator pushes it bare in the drivers array without a wrapped const. Tier-1 FORBIDDEN_HOOK_STRINGS inventory unchanged at 12 entries (Page.metrics is host-side puppeteer; not bundled). Empirical: UAT harness 32/32 → 33/33 GREEN; A32.1 PASS (JSHeapUsedSize= 1909924 bytes); A32.2 PASS (1.82 MB << 50 MB). Tier-1 unit-gate 13/13 sub-tests GREEN; 12 strings × 0 hits each in dist/. vitest 171/171 GREEN. Closes: - Plan 03-04 must_have 'puppeteer.Page.metrics() returns a JSHeapUsedSize value (>= 0) for the harness page realm' (A32.1) - Plan 03-04 must_have 'JSHeapUsedSize for the harness page realm is below 50 MB' (A32.2) - Plan 03-04 must_have 'Driver emits an explicit diagnostic line: NOTE: page-realm only' (Pitfall 2 gate — leads diagnostics array) - Plan 03-04 must_have 'UAT harness exits 0 with 32 + 1 = 33/33 assertions GREEN' (empirical 33/33)
25 KiB
25 KiB