Repository navigation
v1.6.15
This release makes audit.md say what it means. A reader of an audit had to know that "stale" could mean "never recorded", that "evidence: invalid" could mean "the checks ran and failed", and that "0 open findings" left out every task minor still open. The report now opens with a bottom line and ends with the terms it uses. A layout release follows: today most of an audit's gaps are one run-level fact repeated under every task, and the next release shows each such fact once.
Built with subagents (a research pass over the code and all 39 archive folders, a fresh adversarial review of the plan, an implementer and a reviewer per task, then a whole-branch review), without a parallel-lanes run, and released without a validation run on a real project.
What's fixed
- e2e when nothing was recorded. An end-to-end check reads
staleonly when both the checked and the delivered sha are recorded and differ. When one or both are missing it readsunavailable, with a note naming what is missing. - Failed checks. A verify whose checks failed read "evidence: invalid" on the acceptance line, the checks line and every task. It now reads
failed checks, and each task saysthe verify at <sha> failed (checks_failed). audit.json keepsinvalidwith its reason. - Open task minors count. The Summary and the Open work header now count the task minors the final review left open, including minors carried from an earlier launch, next to the open and declined final findings. The count reads
at least Mwhen the engine noted that some minors never reached the final lenses, andunavailablewhen the result does not record them. autopsy's final-review line counts them the same way. - Lane merges under "code outside recorded task ranges" now say they are contained in the final review's head, instead of citing it with no note.
- Inferred review lines read
[inferred: read from the transcript], so a review result read from the transcript no longer looks like a review that was not recorded. - Rulings without a role (runs before 1.6.3) read
implementer (no role recorded), the ledger's own rule. - Acceptance when the gate is unavailable. In a run accepted with its acceptance gate unavailable, a done task read
accepted: false. It now readsunavailable. These count as gaps, which is the honest state. - A bottom line at the top of audit.md, each part from a value audit already computes: the verdict and what decided it (for a run the user accepted, what the run itself said, as in
accepted by user (over unverified: checks_failed); for a run accepted with its gate unavailable, the gate's reason), task counts, blocked and deferred tasks, open findings and task minors, cannot-verify items, commits outside task ranges, missing launches, and the gap count with what it leaves out. When the ledger cannot be read, it says the open work is unknown instead of 0. - A Terms section at the end: the six bracketed states,
invalid, rounds, task and run-end rulings, gate, carry, context added by pre-flight, and inferred.
Measured on the run history
main's and this release's audit over fresh copies of the same 39 archive folders:
- e2e: 11 older runs move from
staletounavailable; the gap count is the same. - Acceptance: 36 tasks in 5 runs move from
falsetounavailable(gaps 2,704 -> 2,740). - Open task minors: 9 runs that said "0 open" now count their open task minors; 4 read
at least; 17 readunavailable(older results without the record, or no final review). autopsy and audit give the same count on all 37 runs with a final review. - Failed checks: 53 task notes in 2 runs now name the failed verify.
Testing
- New tests, each failing before its change: e2e with neither, one, equal and differing shas; the failed-checks lines; the lens note; the inferred review label and an unchanged inferred line; a ruling without a role; the gate rule for done, not-done, settled and blocked tasks; open task minors with carried ones, the lower-bound note and no record, in audit and autopsy; the Terms section; the bottom line on a small run, on an all-unavailable run and with a user acceptance.
- Tests: full suite on Windows (Python 3.15) at the release head: 1959 tests (1943 pass, 16 skipped, 0 fail).
- CI: passes on Ubuntu (Node 24, and Node 24 with Python 3.15), macOS (Node 24) and Windows (Node 24, Python 3.12).
- Not run: a parallel-lanes run with this release installed.
Compatibility
autopsy_versionis 12;historyreruns autopsy on every archived run.- audit.json:
open_work.final.task_minors_openis null when the result has no record (it was an empty list), andopen_work.final.carried_minors_openis new. Some e2e and accepted states change fromstaleandfalsetounavailable, so audits of older runs can show more gaps. - Archived audits are not regenerated; run
auditagain on a run to get the new report.
Upgrade
In your clone:
git pull && bash install.sh