[BUG] Desktop SSH: turns completed while client is disconnected never appear in UI

Resolved 💬 2 comments Opened Jun 1, 2026 by kym6464 Closed Jun 4, 2026

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

  1. Connect Claude Desktop to a remote Linux host via the SSH/remote session feature.
  2. 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.

  1. 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.

  1. Reopen Claude Desktop and resume the same session.
  2. 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.

  1. 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" />

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗