You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The design-fingerprint stale-experiment guard no longer false-positives when the build greens a test.storyDesignFingerprint hashed the entire per-story test-list, including each item's mutable status. The build rewrites the test-list in place (pending -> green), so the fingerprint shifted mid-build and the drive's experimentStale check flagged the STILL-VALID experiment as stale — deriving a cut-experiment --reset-stale-branch that DISCARDS the just-built GREEN work, on every experiment the moment its first test greened (observed live: stockflow-3-88 S2, T17–T20 all green, design byte-identical). The fingerprint now projects the test-list to its design identity (id / ac_id / kind / layer / nfr_id / description / scenario_file) and excludes build-mutable fields (status, green_at, cycle_ids, cycles, last_run, updated_at). NOTE: the fingerprint value changes with this fix, so an experiment stamped by an older kit is flagged stale ONCE on upgrade — reconcile its recorded design_fingerprint if it carries unmerged work.
E2E route mocks no longer collide with the app's own ES modules under Vite (the T20 SPA-boot dead-lock). A Playwright spec that mocked an API with a broad glob (page.route("**/api/stock**", ...)) also matched the app's own Vite-served module at /src/api/stock.ts: the mock fulfilled that ES-module request with JSON, the SPA failed to boot (MIME type application/json), and the behavior under test could never render. The app was correct — the TEST was the defect. Fixed on the real path: test-strategy.md + navigator.md now require scoping a page.route mock to the API pathname ((url) => new URL(url).pathname === "/api/stock"), never a **-glob; and checkE2eRouteCollision (the navigator scope of the agent-side consort-response-formatter) flags an authored glob whose Playwright match also catches a client/src/** module's dev URL, so the navigator fixes its RED spec in-turn.