Skip to content

fix(channel): record who stopped a run, show it in the timeline, and tell the next run - #664

Merged
iamnbutler merged 3 commits into
mainfrom
fix-stopped-run
Oct 22, 2026
Merged

iamnbutler merged 3 commits into
mainfrom
fix-stopped-run

Conversation

@iamnbutler

Copy link
Copy Markdown
Contributor

A person's Stop during a run now appends a durable ace.stopped entry naming them. Its user message tells the chat's next run that they stopped the previous one before it finished, so the agent no longer guesses why its run ended. The channel projects the entry as a new stopped event, sent only to watchers that ask with stops: true because older clients can't reduce an unknown event kind. The app's timeline then reads "Stopped by ." where it said "Stopped.", and ace watch prints the same line. A Stop when nothing is running writes nothing.

Part of #442. Still open there: a kill (ace kill) and a worker restart aren't recorded or told to the agent; a partial tool call that never ran isn't labeled; a resumed run doesn't say it resumed; nothing names which in-flight action ended as unknown beyond the aborted tool result. Map: ^533, ^595.

Smoke on an isolated source host (own home/config/keychain, port 4373, loopback) with a real model: asked for sleep 60, ran ace stop after 15 s. ace watch replayed Stopped by iamnbutler@gmail.com. In headless Chromium the reply showed "Stopped by iamnbutler.". The next ask, "why did your previous run end?", got "It ended because you stopped the run while sleep 60 was still going…". ace stop on the idle chat said "Nothing was running" and added no second line.

Built in Ace

No. Made from Claude Code (a fix-train worker), with headless Playwright for the smoke; see #5.

…tell the next run

Why: packages/channel/src/room.ts#const StopEntry | a person's Stop is a durable ace.stopped entry whose user message reaches the next run; stopped events go only to watchers that ask with stops, since older clients' reducers can't take an unknown event kind
@iamnbutler
iamnbutler merged commit bf94840 into main Oct 22, 2026
1 check passed
@iamnbutler
iamnbutler deleted the fix-stopped-run branch October 22, 2026 21:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant