release: v0.30.5 — supervisor in-flight tool_use/tool_result ordering fix (#621) - #623
Merged
Merged
Conversation
Rename [Unreleased] -> [0.30.5] - 2026-08-27 (the #621 in-flight tool_use/tool_result ordering fix) and insert a fresh empty [Unreleased] placeholder.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Patch release wrapping the #621 fix (already merged to main via #622).
Patch justification (semver)
Bug fix only, no breaking changes or new public API. One bounded behavior note (auto-integration may start at the next
agent_settledboundary rather than instantly when the agent is mid-turn at batch completion). Patch bump (0.30.4 → 0.30.5) is correct.Issue included
pi.sendMessagestatus injection during in-flight tool call orphans tool_result → Anthropic 400 wedges interactive sessionHighlights
A mistimed batch-transition banner injected between an assistant
tool_useand its pendingtool_resultproduced an Anthropic 400 that permanently wedged the interactive session (every retry re-sent the broken ordering; recovery needed manual.jsonlsurgery). Fixed with a two-layer defense:SupervisorNoticeGatedefers the batch-end epilogue past in-flight tool calls to the nextagent_settledboundary, with a batch-generation tag so/orchand/orch-resumeboth supersede stale deferred work.contextevent handler reorders every outgoing request so eachtool_useis immediately followed by itstool_result(s), covering the other background send sites. Per-request only; the persisted tree is untouched.Both a Sage strategy review and a Sage code review were done; all findings remediated (the
/orch-resumesupersession gap, repair-algorithm hardening against data loss + result-before-assistant, and a shared helper to prevent future drift). Sage verdict: no blocking issues, confidence ~0.9.Validation (on the merged fix commit)
npm run typechecknpm run lintnpm run format:checktaskplane help/doctornpm pack --dry-runAfter merge
I'll push the
v0.30.5tag from local;.github/workflows/release.ymlhandles tag validation, test re-run,npm publish --provenance(Trusted Publishing), and the GitHub release from CHANGELOG notes.