| Name | Modified | Size | Downloads / 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
completedon 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
completedon 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 asstop,steer, andresume. 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, andresumenow 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
missionormissionIdno longer becomescompletedwhen nothing confirmed its result. Before, a background writer run with only its own report marked its missioncompleted, so a claimed result looked like a proven one. When the run, or any workflow child in the mission, ends with acceptancereview-required,rejected,claimed, orpending, the mission now stayswaiting, andmission.showlists each child's acceptance status. Close it withmission.closeafter you check the result. Agateoracceptance.verifycommand alone does not complete a writer run's mission, because writer runs also need a review; addreview: { required: false }to theacceptancepolicy 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-cliscript 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 astools:, 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 })orruns.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.agentsfolders 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.lanesresult 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)