[BUG] Desktop SSH: turns completed while client is disconnected never appear in UI
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
When a Desktop SSH (remote) session has a turn that completes while the client is disconnected, that turn is permanently missing from the UI after reconnect — even though it ran to completion and was persisted.
Concretely: I sent a prompt that kept the remote agent busy for ~40s, then quit Claude Desktop while it was still working. The remote agent finished the turn and wrote the full response to the session transcript. When I reopened Desktop and resumed the same session, both my prompt and the agent's complete response were absent from the conversation view — and they stay absent across restarts.
The data is not lost: the session .jsonl (on both the remote host and the local mirror) contains the full turn with an intact parentUuid chain. The UI just never renders it. The failure is silent — no error, no "messages may be missing" indicator.
What Should Happen?
On reconnect/resume, the UI should reconcile its conversation view against the session transcript and display any turns that completed while the client was disconnected. The agent side already resumes with full fidelity (--resume reloads the complete transcript); the UI should reflect the same history rather than silently omitting it.
Error Messages/Logs
Steps to Reproduce
- Connect Claude Desktop to a remote Linux host via the SSH/remote session feature.
- Send a prompt that keeps the agent working for ~40s of sequential tool calls, e.g.:
> This is a deliberate test of sequential tool use. Do NOT use a loop and do NOT batch.
> Run echo "$RANDOM $(date +%T)" as 16 separate Bash calls, keeping a running total.
> After all 16, print a final report with the start time and each value+timestamp.
- While the agent is still executing, quit/close Claude Desktop (disconnect the client).
The remote agent (ccd-cli under server --serve) keeps running and completes the turn.
- Reopen Claude Desktop and resume the same session.
- Observe: the prompt from step 2 and the agent's full response are NOT shown in the UI.
The last visible turn is whatever preceded the disconnect (or a turn sent after reconnect).
This persists across further restarts.
- Verify the data exists: on the remote host, inspect
~/.claude/projects/<remote-project>/<session-id>.jsonl — the completed turn is present
with an intact parentUuid chain. The UI never surfaces it.
Claude Model
Sonnet (default)
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
Claude Desktop app: 1.9659.2
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
I am able to continue the conversation, but something is off with the model. It almost seems like a new chat was started?
<img width="1120" height="1061" alt="Image" src="https://github.com/user-attachments/assets/4b49c059-3c3f-48a8-993f-afa71bd2e255" />
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗