Keep mid-turn stalls and call counters off the transcript - #665
Closed
justrach wants to merge 2 commits into
Closed
Conversation
Stalls still reconnect; the ⚠ and "model call N" lines were harness bus (ADR 0021). A turn that dies still says so. Ending-turn notices stay.
justrach
marked this pull request as ready for review
August 28, 2026 13:09
FORCE_STALL_ALWAYS reconnects silently, then ends the turn. The e2e script now checks the ending-turn notice, not a mid-turn reconnect line.
cursor Bot
pushed a commit
that referenced
this pull request
Aug 29, 2026
…ript Reconnect ladder and inner-loop model-call pulses are bookkeeping (ADR 0021). A ⚠ prints only when the turn actually ends. Keep shouldPulseTurn so a future pulse still skips -p (ADR 0046).
cursor Bot
pushed a commit
that referenced
this pull request
Aug 29, 2026
Companion MCP queues in the background so first paint is not the handshake. Mid-turn stall/reconnect stays off the transcript.
Owner
Author
|
Landed on |
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.
The line REPL was reading as a receipt of the harness, not the task.
A typical turn printed
⚠ stream stalledwhile tools were still running, then· turn still going · model call 4 · 3 tools, then[stream stalled — reconnecting (SSE) (2/2)]. Those lines sit at the same weight as› Wrote 1 file. People hit Esc on a turn that was still recovering.After this, a turn looks like the work:
What changed:
stream_retry.model call N · N toolspulse is gone. Tool rows already show the work.stream stalled — ending turn/connection dropped — response ended early).■ interrupted,↳ queued, and↳ forcestay — those are your actions.This is ADR 0021 compliance (transcript is the task, not the event bus), not a new decision. Stalls still reconnect (WS, then SSE). Opening Chrome in five model calls is a separate capability gap.
Test plan
transport_abortedemits no notice (line sink + TUI sink)FORCE_STALL_ALWAYS/FORCE_DROP_ALWAYSprints the ending-turn notice (scripts/test-stall-drop.py)agent_requestno longersays the reconnect line;stream_retrystays on the tracerformatTurnPulseis empty;beforeRequestdoes notemitNoticescripts/eval-tier1.shunit/reach/fmt/lines green (suite 1756)