Skip to content

v0.3.90

Choose a tag to compare

@kevin-hartman kevin-hartman released this 11 Sep 18:10
· 192 commits to main since this release

Fixed

  • 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.