Repository navigation
v1.6.14
This release fixes five labels in autopsy's report. Every task said "2 commits", because autopsy counted the task's base and head instead of its commits. An agent that ended on an API error was read as a model change, so a retry also showed as an escalation. An escalation's cost left out the review the engine runs after it. Two kinds of failed heredoc file write went unreported. And the Summary never named the agent that took longest on the critical path, which is usually the final fix.
Built with subagents (a research pass over the code and the run history, 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
- Commit counts from the ledger. A task's
commitsin autopsy.json is now the number of distinct commits in its ledger events (each commit round, including fix rounds, records its own), counted from the task's last restart. It isunavailablewithout a ledger, without events, or when an older ledger event has no commit list. The task's[base, head]range moves to its ownrangekey. A batch task reports its batch's commits. - API-error lines are no model. A transcript line written for an API error carries the model
<synthetic>. It no longer sets an agent's model, so a retried agent is no escalation in autopsy, run-report or audit. An agent with only such lines has no resolved model. - The escalation's second review. After a review asks for changes, the engine reruns the task at the standard tier and reviews it again. The escalation row now covers that second review too.
- Heredoc file writes that failed. autopsy caught a failed heredoc write only when the line did nothing else. It now also catches a long line that the Bash tool cut (about 7,000 characters on Windows), which the shell reports as an unexpected end of file, and a write whose target folder was missing. Lines where the write succeeded and a later command failed stay out. The suggestion now names length, a missing folder or quoting.
- The longest agent on the critical path. The Summary and the chat summary name it with its time, for example
Longest on the critical path: final fix (1292.6 s). autopsy.json stores it astime.critical_path.longest. - Not changed: finding counts. "N fixed" counts the engine's own findings. Since 1.6.3 the final review no longer repeats task minors across lenses, so the inflation older runs show has stopped at the source. Merging findings in autopsy would contradict the engine's own rule that distinct wording at one location is its own obligation.
Measured on the run history
autopsy 1.6.13 and 1.6.14 over the same copy of 38 archived runs, each run analysed once by each version:
- Commits: 467 tasks, all "2 commits" before; after, 417 with 1, 44 with 2, 4 with 3, 1 with 5, and 1 unavailable (an older ledger).
- Escalation: 988.8 s -> 1,178.6 s (four second reviews, 189.8 s). One false escalation gone (an API-error end read as a model change).
- heredoc_failure: 1 row, 22.9 s -> 9 rows, 243.4 s (six cut lines, two missing folders).
- The longest agent on the critical path: the final fix in 9 of the 38 runs, up to 1,292.6 s.
- All slowdowns: 104,569.4 s -> 104,979.7 s; no other kind changed.
Testing
- New tests, each failing before its change: commit counts with fix rounds, a plain start that does not reset and a restart that does, an older event without a commit list, a broken line, no ledger; the range;
<synthetic>lines in transcripts, run-report, autopsy and audit; the second review, and an escalated implement followed by an adjudication instead; the cut-line and missing-folder heredoc cases and four look-alikes that stay out; the Summary line, and none without a timed critical path. A real-transcript fixture from a parallel-lanes build whose heredoc line was too long for the Bash tool. - Tests: full suite on Windows (Python 3.15) at the release head: 1949 tests (1933 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 11;historyreruns autopsy on every archived run with an older autopsy.json.done.tasks[].commitsis a number (orunavailable), no longer a two-item list; the list is inrange.- run-report's
resolved_modelsandmodelsno longer list<synthetic>.
Upgrade
In your clone:
git pull && bash install.sh