Repository navigation
fix(channel): record a kill as a stop and label tool calls that never ran - #675
Merged
Merged
Conversation
… ran Why: packages/channel/src/channel.ts#function events | tool calls in an aborted or failed assistant message never ran: pi runs calls only from a finished reply, so they carry unrun
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.
Two more of #442's gaps:
ace kill(and the owner's kill from the gateway) now leaves the same durableace.stoppedentry that a Stop leaves (fix(channel): record who stopped a run, show it in the timeline, and tell the next run #664), in every chat it ended. The timeline reads "Stopped by .", and the chat's next run is told that its previous run was stopped. Kills that the worker makes on its own, which have no author, write nothing, as before.toolevent now carriesunrun. In the app, the call's row reads "Not run" and opens to "Not run: the run ended while the agent was writing this call.", where before it was a red entry that opened to nothing.ace watchprints→ write (not run). Older clients ignore the field.Smoke-tested on a loopback source host (own ACE_HOME, port 4377) with gpt-6-astra:
sleep 60 && echo finishedand ranace killafter 20 s.ace watchreplays✗ Tool bash was abortedthenStopped by iamnbutler@gmail.com.. The next ask, "Why did your previous run end?", got "…because you stopped it while the shell command was still running."writecall and ranace stopwhile it was streaming.ace watchshows→ write (not run), and in headless Chromium the reply shows a "Not run" row above "Stopped by iamnbutler.".Map: ^595. Part of #442. Still open there:
writeas "Edited 1 file", as it does for any failed edit.Built in Ace
No. Claude Code (fix-train worker) made this outside Ace, running against a loopback source host. It used headless Chromium to smoke the web client. Dogfooding gaps are tracked in #5.