Rule 1 deviation surfaced during the first UAT harness end-to-end run: A27.7 originally forbade ALL chrome-extension:// URLs in meta.urls. Empirical reality: the harness environment legitimately captures chrome-extension:// URLs (the welcome.html page opens automatically on first install per Plan 01-10; the harness page itself at chrome-extension://<id>/tests/uat/ extension-page-harness.html is a real active tab). The production tracker (src/background/tab-url-tracker.ts:79 URL_SCHEME_ALLOW) EXPLICITLY permits the chrome-extension:// scheme. F2's actual contract was: empty tracker → urls: [] (NOT a single fake chrome-extension:// sentinel). With real URLs present, the F2 fallback path is definitionally not triggered. The refined A27.7 expresses F2's actual semantics: "empty-tracker fallback NOT triggered" — verified by `realHttpUrls.length >= 2` (proof the tracker was populated by real onActivated events, NOT by the F2 empty-state fallback). This is a strict semantic improvement: the original A27.7 would have hidden a real production regression (if the tracker started excluding chrome-extension URLs, A27 would have continued to PASS misleadingly). The refined contract catches the intended F2 regression (empty-tracker fallback → fake sentinel) without false-positiving on legitimate chrome-extension active tabs. Empirical UAT verification: 29/29 GREEN with the fix in place. - A27.4 ✓ meta.urls contains https://example.com/ - A27.5 ✓ meta.urls contains https://www.iana.org/ - A27.7 ✓ F2 contract: real http(s) URLs present (length=2) - A28.* ✓ 5-entry zip-layout strict
77 KiB
77 KiB