Repository navigation
plat 580
| Field | Value |
|---|---|
| State | fixed on main |
| Priority | P2 |
| Product | chat |
| Area | rendering |
| Summary | The composer's Stop and Send buttons swapped several times a second during a run |
Owner, 2026-10-06: the Stop button in the composer flickers a lot during a run. The button shows while a turn is in
flight (isStreaming or running background agents). isStreaming follows the server's busy, can_steer and
terminal_busy flags, which dip for a moment during a run, so with no background agents the composer swapped Stop
and Send. An earlier fix had moved the control off isStreaming alone, but the combined signal still dipped.
useHeldTurnInFlight keeps the in-flight state for 2 seconds after it drops, releases it at once when the turn
completes (isCompleted), and never carries it to another tab. ChatInput uses it only for the button's visibility;
whether the composer accepts input still follows isStreaming. One test pins it; tsc -b and the 29 ChatInput
tests pass. Not yet seen in a browser.
- Confirm live on a long run (Codex and Claude chats).
- The underlying flags still dip; a durable "turn running" field from the runtime phase would remove the need for the hold.
Auto-synced from docs/ on main. Edit there, not here.