v4.5.0 — a red tile that said PASS, and a check nobody asked
The Checks tile rendered class att — red — with the headline word PASS. Both
halves were separately true: PASS was the run verdict, and the red came from
bad_checks being non-empty. Together they were unreadable, and the reason was
that bad_checks counted not_triggered alongside fail and hollow.
A check that was never triggered and a check that failed are different facts.
Now: green PASS when everything ran and passed, amber PARTIAL when something
never ran ("2 of 3 ran and passed · 1 never triggered, so it was not checked"),
red FAIL for a real failure. hollow stays red — a check that exits clean
having examined less than it declared is a failure, not an absence.
The check in question was solver-corpus, triggered on
paths: ["**/contradiction-check.py"], so it only ran when the solver's own
source changed and reported not_triggered on every other commit. Its recorded
state was exit_code: None, tool: None, files_in_scope: 0 — it had no
exit code key at all, because it was never started.
That is the check whose why says precision must stay at 1.00. The property
most worth knowing on every run was the one measured least often. It is a 0.3s
stdlib self-test with no external dependency, so it now runs always. The gate
went from "3 declared, 2 triggered" to "3 declared, 3 triggered", and
solver-corpus reports PASS with 7 true positives covered.
Also adds a refresh button to the header. It copies a prompt, not a reload: the
page is a snapshot, and re-serving identical bytes teaches the reader that
nothing changed when nothing was re-measured. The prompt carries the exact
command rebuilt from the argv this run was given — so a non-default --out
survives — and the one sentence needed to not misread the result.