Files
Jordan Ritter ddff171532 test(showcase): record the ratchet, so the manifest documents both sides of a fix
A manifest entry cannot target code that does not exist at its own HEAD — the
anchor pre-flight refuses — so a gap closed on an unmerged branch had nowhere
to be recorded, and the entry would go fatal the moment that branch merged.

`ratchet` is a SECOND declared state for the same mutation, measured at a
named commit. The runner checks the entry's own state first and the ratchet
second, and reports which one the tree is in (RATCHETED). An outcome matching
NEITHER state is still fatal, and both states name their failing tests
exactly, so this buys tolerance of someone else's merge without buying
laxity.

Five gaps have ratchets, each measured by running this gate against the fix
branch rather than taking its word:

  page-cap/halved-to-10, page-cap/cut-to-5 — closed at 67c2c8c5c4 (Q1), which
  gives the cap a two-sided guard; 3 of the now-7 bounds tests fail at cap 10
  and the same 3 at cap 5, where all 6 passed before.

  goldenmaster/redsignalknown-family-scope, goldenmaster/failcount-min-not-max,
  aggregation/softclass-any-not-every — closed at 3c1177838f (Q4), each by
  exactly one new heterogeneous-family fixture.

`pendingSources` records the two fixes that cannot be seeded yet: Q2's PB
evaluator work is still in flight, and Q3's ladder-gap carve-out does not
exist at this manifest's `measuredAt` (verified against 49bf40943f: it moves
none of the 21 existing verdicts). Without that list the knowledge evaporates
exactly the way the hand-written mutations did.

Also: retry a NON-MEASUREMENT once. A vitest killed by its own internal
timeouts under machine load says nothing about whether a guard has teeth — one
run died at 161s without writing its JSON report, which reported as a false
FATAL. Retrying a real SURVIVED would be corner-cutting; retrying a
non-measurement refuses to guess. The dashboard timeout goes to 10 minutes for
the same reason, still well below the 25-minute spike-test hang. `--check` now
works on a dirty tree, since it only reads.
2026-07-24 19:51:13 -07:00
..
…