Skip to content

Keep mid-turn stalls and call counters off the transcript - #665

Closed
justrach wants to merge 2 commits into
mainfrom
cursor/stall-bus-silent-4ffc
Closed

Keep mid-turn stalls and call counters off the transcript#665
justrach wants to merge 2 commits into
mainfrom
cursor/stall-bus-silent-4ffc

Conversation

@justrach

@justrach justrach commented Aug 28, 2026

Copy link
Copy Markdown
Owner

The line REPL was reading as a receipt of the harness, not the task.

A typical turn printed ⚠ stream stalled while 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:

#10 › Are you able to open it up for me?
  › Searched 1 pattern
  › Wrote 1 file
  I'll write docs/showcase.html and open it in Chrome.

What changed:

  • Mid-turn stall/drop (the reconnect ladder) is silent on both the line REPL and the pager. Tracer and telemetry still record stream_retry.
  • The inner-loop model call N · N tools pulse is gone. Tool rows already show the work.
  • A ⚠ still prints when the turn actually ends (stream stalled — ending turn / connection dropped — response ended early).
  • ■ interrupted, ↳ queued, and ↳ force stay — 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

  • Mid-turn transport_aborted emits no notice (line sink + TUI sink)
  • Ending-turn stall/drop still prints the ⚠
  • Give-up after FORCE_STALL_ALWAYS / FORCE_DROP_ALWAYS prints the ending-turn notice (scripts/test-stall-drop.py)
  • agent_request no longer says the reconnect line; stream_retry stays on the tracer
  • formatTurnPulse is empty; beforeRequest does not emitNotice
  • scripts/eval-tier1.sh unit/reach/fmt/lines green (suite 1756)
Open in Web Open in Cursor 

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
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.
@justrach

Copy link
Copy Markdown
Owner Author

Landed on release/v0.0.281 (#670) as merge 7fa82ee. Closing this vs main so it does not double-land; it ships when 281 merges.

@justrach justrach closed this Aug 29, 2026
@cursor
cursor Bot deleted the cursor/stall-bus-silent-4ffc branch August 31, 2026 01:31
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.

2 participants