Skip to content

v1.3.1

Choose a tag to compare

@noderaven noderaven released this 10 Oct 00:52
8895d23

Highlights

  • Every ruling reaches every agent. Pre-flight and adjudicator rulings are kept for the whole run and given to every task prompt and final lens under "Rulings already made for this run (binding)", so implementers no longer re-decide settled points.
  • Fix commits get their own messages. A task fix round commits with fix: address review findings for Task <id> (a batch: for Batch <first>-<last>), the final fix with fix: address the final review findings, and a post-integration fix with fix: make the post-integration check pass. A retry that adds to a task's first commit with no review findings behind it uses chore: continue Task <id>. Reviewers are told these are not commit-rule findings (in nw1, 9 of 19 final findings were repeated commit messages).
  • Less repeated work at the end of a run. The project checks run once at the delivered commit, before the final re-review, and the re-review is given their result instead of rerunning the suite. run-checks writes command output to a log file and prints one JSON line with a tail of each command.
  • Fewer, sharper warnings. cannot_verify entries are structured ({requirement, source, why, check_by}) and only ones that name a plan or spec source become acceptance warnings. Minor findings from approved task reviews go to the final lenses as a checklist (T<n>-<k>), and the ones no lens raised are listed in final.task_minors_open. Final findings on the exact same file and line (or the same commit) are combined, keeping the other texts as also_reported.

What changed

  • Agent heads are checked: a head an agent reports must be a commit sha (7 to 40 hex digits). Anything else (in a live test run the final fix reported see-below) counts as no head, and a final fix that reports one leaves its findings open and its commits marked unreviewed.
  • derive-lanes: a ; inside parentheses or backticks no longer splits a Files clause, so notes such as (lines 34, 64; required keys) keep the paths after them. A line that leaves a backtick or ( open falls back to splitting on every ;, with a warning.
  • Shadow repos: the shadow repo's config sets core.autocrlf=false, so lane worktrees hold the project's exact bytes and writeback keeps CRLF files as they are. abs_dir ignores CDPATH.
  • Manifest and records: hooks is optional (defaults to {}); the result records every agent's model and effort (agent_settings); the dry run returns notices (the launch line computed by the script); ledger ended DIR STATUS AGENTS RULINGS records a launch's spend.
  • run-report: reads effort from the run's own record, and prints unavailable instead of 0 when no output-token count is complete.
  • Git identity: before building a manifest, the skill checks that the project has a git identity (git var GIT_COMMITTER_IDENT), since every task commits and a missing identity fails partway through a run.
  • Docs: the Workflow concurrency cap (CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS), that the launch message reaches every agent with priority over the plan (so answer the dry-run table with a plain yes), reasons that earlier trims cut from SKILL.md restored (still under 3000 words), and Windows support is no longer called preliminary.
  • Node 22 is the minimum for the test suite (Node 18 and 20 are end of life); CI's Node 18 job is now Node 22.

Testing

  • node --test tests/: 675 tests. Linux and macOS: 674 pass, 1 Windows-only test skipped. Windows (windows-latest): 664 pass, 11 skipped, the same tests and reasons as in 1.3.0.
  • Built by a parallel-lanes run (r131) that ended accepted: 9 tasks reviewed and approved, post-integration and E2E checks passed, and 9 of 10 final findings fixed (1 declined with a reason). A full review of that run, plus a live run of the new workflow on a throwaway project, found seven more issues, fixed before release (the head check above, the derive-lanes fallback, the continuation message only on retries, a resume note that no longer warns, and test and doc fixes).

Compatibility

  • Manifests and ledgers from 1.3.0 keep working.
  • Shadow mode, once after upgrading: a shadow made by 1.3.0 lacked core.autocrlf=false. On a machine with core.autocrlf=true (Git for Windows' default), the first setup after the upgrade sees every text file in its lane worktrees as modified, lists them as discarded edits, saves a preserved ref, and checks them out again. Nothing a task committed is lost.

Upgrade

In your clone:

git pull && bash install.sh

Then restart Claude Code, or run /clear, so the hooks reload.