Evidence record / pi-coding-agent
A dated record of one change, kept so the writing that cites it can be checked. Compiled from the sources listed below by the research run, not written for reading. The judgment lives in the issues that cite it, below.
2026-08-10-pi-coding-agent-extension-tool-call-handlers-can-terminate-a-blocked-batch-without
Extension tool_call handlers can terminate a blocked batch without paying for another model call.
tool_call handlers now return { block: true, reason?: string, terminate?: boolean }. Per docs/extensions.md at v0.84.2: "terminate only applies to a blocked call; the agent stops early only when every finalized result in the batch is terminating." The doc's worked example is exactly the governance case -- intercept bash, and if the command contains rm -rf, return { block: true, reason: "Dangerous command", terminate: true }. The same release contributed by @muyiyr (PR #7715). A parallel terminate: true return from a custom tool's execute() carries the same semantics for structured-output tools that should end the turn.
Channel: tagged-release. Ancestry: Commit 1eb988cfe88fb0ff740ff62583d2f16359f7b6b0 ("feat(agent): allow blocked tool calls to terminate (#7715)", authored 2026-08-06T15:14:48Z). gh api repos/earendil-works/pi/compare/v0.84.1...1eb988cf returned status=behind, behind_by=22 -- ancestor of the stable v0.84.1 tag (prerelease=false).
Operator consequence: Try it if you are building the permission layer Pi deliberately omits. Pi ships no permission popups and no built-in sandbox; the tool_call interception hook is where operators have been implementing their own policy. Until 0.84.1, blocking a call still triggered an automatic follow-up model call -- so a policy that refuses a whole batch burned a round trip explaining itself to the model. Now a wholly-refused batch stops. That makes an extension-layer command policy cheap enough to run on every turn.
Receipt
Finding metadata
Run: 2026-08-10-weekly-digest-2026-08-03_2026-08-10-frontier-v0
Finding ID: 2026-08-10-pi-coding-agent-extension-tool-call-handlers-can-terminate-a-blocked-batch-without
Source links
Primary links, including exact changelog lines when available.
Versioned source: run artifact