Repository navigation
feat(transport-matrix): turn_id and stop_reason on dev.zooid.turn.end (ZOD076) - #141
Merged
Merged
Conversation
… (ZOD076) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
zooidbot
commented
Oct 14, 2026
zooidbot
left a comment
Collaborator
Author
There was a problem hiding this comment.
Lead review against the ZOD076 plan: no blocking findings.
PromptResult.turnIdis optional and nullable, and the success path returns the tracked id. The error path is unchanged, as planned.toTurnEndBodyspreadsturn_idandstop_reasononly when they're known.bodynever derives from the stop reason, and there's still nomsgtype.transport.tsonly threads the two values through. Theconsole.warn, the send-after-drain ordering and the inboundturn.endhandoff release are untouched.- Tests cover all four transport cases from the plan, including the throwing turn.
Non-blocking: presets.zod128.test.ts failing on mktemp is Coding's sandbox, not this change (it fails the same way on main, and CI is green). Next is the ZOD076 smoke via Smoke Tester, then merge.
Collaborator
Author
|
ZOD076 smoke (Smoke Tester, |
4 tasks
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.
Refs #16 (not a closing keyword: Lead closes it once both PRs are merged).
Daemon half of ZOD076.
dev.zooid.turn.endnow carries two optional fields:turn_id: the ACP client's turn id (PromptResult.turnId, new, optional). Absent when no TurnTracker is attached.stop_reason:PromptResult.stopReason, verbatim and never interpreted. Absent when the prompt threw.Neither is ever
null; absent means unknown.body, theconsole.warn, send-after-drain ordering and inboundturn.endhandling ([[ZOD092]] handoff returns) are untouched.Companion PR (web rendering): zooid-ai/clients#59. Merge this one first.
Tests: acp-client 151 passed / 1 failed (see Not verified); transport-matrix 455 passed, 9 skipped; core 335 passed; typecheck clean on all three; transport-matrix build OK.
Not verified:
acp-clientsrc/presets.zod128.test.ts("pi vmCredential (ZOD128)") fails in the Coding sandbox:mktemp: mkdtemp failed on /var/folders/.../T/tmp.XXXX: Operation not permitted. It fails identically on cleanmainwith my change stashed, so it's the sandbox, not this diff.produced_output: true+stop_reason+turn_idafter the reply) is Smoke Tester's, after review.@zooid/web, not the branch.Knowledge impact: ZOD076 (shipped by this pair), ZNC025 (turn.end content gains two fields)
Plan feedback: Code map was accurate against
origin/main. Phase 0 says branch in Ori's clones, which are read-only for Coding (used worktrees off the base clones).makeClientatacp-client.tap.test.ts:41is scoped to anotherdescribe, so the new tests build their own. The Step 1.3 "registry without turnId" row needed an explicit mock, since the default fake isn't in scope in that block. The plan never mentions that issue Turns that produce no content are silent in the room — provider errors vanish #16 sits in Backlog, not Ready.🤖 Generated with Claude Code