Download Latest Version v0.84.0 source code.zip (5.1 MB) Google Add to Preferred Sources
Home / v0.83.1
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-10-28 6.1 kB
v0.83.1 source code.tar.gz 2026-10-28 4.5 MB
v0.83.1 source code.zip 2026-10-28 5.1 MB
Totals: 3 Items   9.7 MB 0

This release fixes bugs, and most of the fixes make subagents safer to steer. An interrupt that lost its run id is now refused instead of hitting whichever run was newest, and resuming a worktree child while it is still cleaning up can no longer run it in your main checkout. Missions you start yourself now wait for a checked result instead of trusting the writer's own report. Capability limits now apply to background runs and workflow children, and agent files with blank lines inside indented blocks are read in full.

Highlights

  • Stopping, interrupting, or resuming a subagent can no longer act on the wrong run.
  • A mission you start on purpose stays open until its result is checked, instead of showing completed on the writer's own report.
  • Capability limits registered by session id, as the docs show, now cover background runs and workflow children, not only foreground launches.
  • Agent files with a blank line inside an indented block are read in full, so settings below that line are no longer dropped.

Need to know

If you... What changes
start missions with mission or missionId for writer runs They stay waiting until you close them with mission.close. Add review: { required: false } to the acceptance policy if a passing command is enough.
register a capability ceiling by session file path It no longer applies. Register it with ctx.sessionManager.getSessionId().
have agent tools: lists with a blank line in the middle Entries after the blank line now count, so the agent may get more tools than before.

Highlights

  • Stopping, interrupting, or resuming a subagent can no longer act on the wrong run: an interrupt with no id is refused, and resuming a worktree child while it is still cleaning up no longer runs it in your main checkout.
  • A mission you start on purpose stays open until its result is checked, instead of showing completed on the writer's own report.
  • Capability limits registered by session id, as the docs show, now cover background runs and workflow children, not only foreground launches.
  • Agent files with a blank line inside an indented block are read in full, so settings below that line are no longer dropped.

Fixed

  • subagent({ action: "interrupt" }) without an id is now refused with "action='interrupt' requires id.", the same as stop, steer, and resume. Before, it interrupted the last foreground run or the newest background run, so a call that lost its id could interrupt the wrong child. When an id matches no run, stop, interrupt, and resume now name that id in the error. Thanks to @mannainsect for the report. (#3081)
  • Resuming a background child that ran in its own worktree (worktree: true) no longer continues it in your main checkout. If you resumed it in the few seconds while it was saving its changes and removing its worktree, the child could start in your main checkout and commit or switch branches there, or start in a deleted worktree. That resume is now refused with a message to retry once the run finishes cleaning up. Thanks to @peskycipher for the report and @isjiajia01 for narrowing it down. (#3083)
  • A mission you start with mission or missionId no longer becomes completed when nothing confirmed its result. Before, a background writer run with only its own report marked its mission completed, so a claimed result looked like a proven one. When the run, or any workflow child in the mission, ends with acceptance review-required, rejected, claimed, or pending, the mission now stays waiting, and mission.show lists each child's acceptance status. Close it with mission.close after you check the result. A gate or acceptance.verify command alone does not complete a writer run's mission, because writer runs also need a review; add review: { required: false } to the acceptance policy when the command is enough (missions.md). Missions created automatically for ordinary launches still complete as before. Thanks to @kiote. (#3078)
  • A capability ceiling registered the way the docs show, with ctx.sessionManager.getSessionId(), now applies in saved sessions. Before, most checks looked it up by session file path, so background launches, workflow children, and { action: "list" } ignored it and only foreground launches were blocked. Every check now uses the session id, so a ceiling registered by session file path no longer applies. Thanks to @corobis for the report. (#3087)
  • A blank line inside an indented block in an agent file's frontmatter, such as an external-cli script argument with an empty line, cut the value off there and dropped every setting below it. The whole block is now read. Lists that used to stop at a blank line, such as tools:, now include their later entries, so an agent can get tools it did not get before. | and > blocks are unchanged. Thanks to @jbachorik. (#3089)
  • A workflow script that called runs.run({ key, agent, task }) with a single object passed validation and then failed with "runs.run has an invalid key.". Validation now rejects that call, and both the validation error and the running script show the right forms: runs.run("plan", { agent, task }) or runs.all([{ key, agent, task }]). Thanks to @brunovcosta for the report. (#3088)
  • In a project you have not trusted, agent lookup no longer scans the project's .git, .pi, and .agents folders on every call. It already ignored what was in them, but it still listed them to decide when to refresh, so ordinary git activity made it rebuild its agent list. Thanks to @ArietidsZ. (#3080)
  • Long errors and verdicts in the runs.lanes result are now cut at a whole character, so they no longer end in a broken character or go over the 256-byte limit. Thanks to @XLi-hub. (#3097)
Source: README.md, updated 2026-10-28