# Claude unread steer / Stop reproduction

Both sides: real web client, Chromium, 1280 x 800 CSS viewport (2x capture), light theme, fresh isolated development databases; real Claude CLI through the configured provider service. No copied application data or injected events. Replay was not used because this behavior depends on Claude's prompt UUID acknowledgements.

1. Start the supplied hold.py endpoint (python3 hold.py). It holds each response for 240 seconds.
2. Start the app at the commit under test with T3CODE_DEV_SEED=0 vp run dev.
3. Add an empty git project, start a Claude thread titled Steer delivery, and send `Reply READY only.` Wait for READY.
4. Set Settings > Chat > Follow-up behavior to Steer. The recipe's General location has moved to Chat on these commits. Close Settings and the thread details panel.
5. Send exactly:

   Run this exact command as a foreground Bash tool call with timeout 300000 and run_in_background false: curl --max-time 280 http://127.0.0.1:18907/hold . Wait for its response; do not background it.

6. Wait for Running curl, confirm REQUEST_STARTED in the endpoint, and wait at least five seconds after the command begins.
7. Send `Codeword: PELICAN. Remember it, I will ask for it later.` Observe Steer / waiting to be read, then click Stop generation before curl returns.
8. Wait for cancelled / Run interrupted. On head, expand the orange delivery warning.
9. Ask `Was a codeword previously sent to you? Reply with that codeword if you received one, otherwise reply NO_CODEWORD. Do not use any tools.` Both runs answered NO_CODEWORD.

Observed base: cancelled badge, no delivery warning or resend guidance.
Observed head: cancelled badge plus warning saying delivery was not confirmed, quoting the exact steer and advising resending.

The screenshots show the same conversation region after Stop (head warning expanded). Recordings show the actual interaction; they are cropped to the conversation and composer, with the private runtime picker masked. No relevant message content was changed. Stable screenshot pairs were compared byte-for-byte before selecting the Stop-state stills.

The foreground task was held throughout both steer/Stop sequences. Exact UI-driving delays differed, but each exceeded the required five seconds and Stop occurred before the response.

AI-assisted; verified with the tests and tools listed above.
