feat(tri): one-away, the specs a single repair can actually move - #3360
Conversation
…#3359) The measurement that explained three +0 iterations lived in a shell script in /tmp. A command survives the session; a script does not. Census re-blessed in this same commit, as the gate demands: `fetches` moved `files read` 44 -> 45, which is this commit's own new file `cli/tri/src/oneaway.rs` and nothing else.
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Census re-blessed in this same commit, as the gate demands; the numbers moved with the commits being merged in, not with this branch's own work.
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
PR DashboardGenerated at: 2026-09-06 05:20:14 UTC
Summary
Seal Status
|
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
PR DashboardGenerated at: 2026-09-06 06:14:40 UTC
Summary
Seal Status
|
Census re-blessed in this same commit, as the gate demands; the numbers moved with the commits being merged in, not with this branch's own work.
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
PR DashboardGenerated at: 2026-09-06 06:17:03 UTC
Summary
Seal Status
|
Closes #3359
Two corrections are baked in, and each was found by being wrong first.
The summary line.
rustcends witherror: aborting due to N previous errors, which matches^errorlike any diagnostic. Counting it inflates every bucket by one and turns specs with one error into zero specs with one error — the opposite conclusion, and the one written down first in #3349.The lower bounds. The command first reported 56 one-error specs. Taking one —
server/http.t27, sole errorexpected expression, found keyword \fn`— and repairing it revealedexpected expression, found `@`underneath. rustc abandons a file at the first **parse** error, so a sole diagnostic with no[E####]` code is a floor, not a total. The honest headline is 24, not 50. The rule needs no list of message shapes: the presence of an error code is the answer to "did the compiler keep going".Eight controls, one per claim — including one asserting that counting the summary would give the opposite answer, and one for each side of the code/no-code split, so neither mistake can come back silently. Six unit tests over the three pure functions. A spec that does not GENERATE is reported separately; it is not a spec with zero errors.