Repository navigation
This release fixes two things audit.md said wrongly, both found by a blind test: three fresh readers answered questions about a run from its audit.md and three from the raw archive, against answer keys written first. The audit readers were about 2.5x faster but less accurate, and two of their misses came from audit itself. A task's verified: true read as if the task's own check had passed, while it only means the task's commit is in the head the delivered verify passed at; the task's own check was never mentioned. And the final fix's re-review read [inferred] with no result, although the launch's journal records the head it judged and its word on every finding.
Built with subagents (a research pass over the code and all 39 archive folders, two adversarial reviews of the design, an implementer and a reviewer per task, then a whole-branch review and one fix wave), without a parallel-lanes run, and released without a validation run on a real project.
What's changed
- The task's own check. Each task block gains
checked before its commit: passed,failedorno result, from the check the engine has the implementer run before committing (checks/task-<unit>.<n>.json, engines 1.6.0 and later). The line names the selection (targeted, lane or widened), says it checked the working tree against the task base, counts earlier attempts, and says when fix commits followed the check (fixers run no task checks), when HEAD was already the task's own commit, and when the checkout changed while it ran. A failed check names the failing check ids and exit codes; audit prints no command output. Runs before 1.6.0 recorded no task checks, and Checks says so once. The bottom line counts the tasks whose last check failed. - Verified now reads
its last commit <sha> is in the head the delivered verify passed at, <sha>. - The journal as recorded. What the workflow journal records reads as recorded and cites its journal line: the task review verdicts (they read
[inferred: read from the transcript]), the lens heads, and the final re-review. Code outside recorded task ranges readsfinal re-review [present] - judged <sha>. - The final re-review in Open work. A new line under the final review gives the head the re-review judged and its counts, as in
judged 784c38b: 8 resolved, 1 open, 0 without a result of the 9 final finding(s); 0 new. Each open or declined finding then shows the re-reviewer's word and evidence:re-review: openunder a finding the fixer called fixed,resolved (the decline upheld)under a decline,raised by the re-reviewfor a new one,no resultwhen the re-review left it out. Older results without per-finding results say so once. - Unknowns stay unknown. A missing or unreadable journal, an unknown engine and a result with no list of final findings read
unavailableorno result recorded, nevernoneornot run.
Measured on the run history
Shipped 1.6.16's audit and this release's audit over fresh copies of the same 39 archive folders:
- Task checks: lines in the 14 runs with them (219 passed, 3 failed, 3 unavailable for a run with no launch result); 31 show earlier attempts, 15 note fix commits after the check, 2 note a check that ran after the task's own commit. The 25 runs from engines before 1.6.0 say once that their engine recorded none.
- Inferred lines: 560 -> 0 (546 review lines read from the journal, 14 re-review lines).
- Final re-review: a line in 37 runs (24 with the judged head and counts, 13 from engines that recorded no per-finding results); 67 per-finding lines (50 upheld declines, 9 still open, 5 without a result, 2 raised by the re-review, 1 judged at another head).
- Gaps: 2,438 -> 2,441 (the run with no launch result: its 3 tasks' checks are unknown). audit.md: 29,874 -> 30,431 lines.
Testing
- New tests, each failing before its change: every task-check state (passed, failed, no command failed, several attempts, empty and unreadable files, error records, batches, a join restart, fix commits after the check, HEAD after the task's commit, a stale base, no file with and without commands, older and unknown engines, no
--repo); the verified wording; journal line sources and the engine's own reading of a verdict; every final re-review form and per-finding rule; task minors with no re-review line; no command output, tails, logs or checkout paths in the report. - Tests: full suite on Windows (Python 3.15) at the release head: 1995 tests, 1979 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
audit_versionis 3: audit.json gainstasks[i].checks.task_check,run.checks.task_checks,open_work.final.value.re_reviewand each final finding's re-review fields; journal-sourced values citewf_<id>/journal.jsonl L<n>and arepresentinstead ofinferred.gapskeeps its shape;tool-outcomescounts 3 more gaps over the 39 folders.- autopsy is unchanged (
autopsy_version13). - Archived audits are not regenerated; run
auditagain on a run to get the new report.
Upgrade
In your clone:
git pull && bash install.sh