Expand description
2026-09-26: The contamination state machine. Each next() runs one step
(endpoint probe, a leg, or scoring), so the pane updates as each leg lands
and a cancellation is seen before the next step.
Legs, in order (the design is in score.rs):
- prime: every probe once, solo, unmeasured, so later legs can run cache-warm. A failed prime is logged as a warning.
- two references: every probe solo, twice. A probe whose two runs
disagree is
AloneUnstable. - rungs: per configured concurrency, one batch with the probes in its
first slots and copies of the probes as ballast (see
rung_slots). - post: every probe solo again. A divergence here is
Persistent.
A transport failure becomes RequestOutcome::Error, which the scorer
classifies as Unmeasured; any unmeasured cell fails the verdict.
Owner: bench (contamination). Invariants: none beyond the types.