[BUG] Desktop shows "no messages yet" for SSH/remote sessions on reopen (transcript intact on remote host, context preserved)

Open 💬 1 comment Opened Jul 9, 2026 by mnrrxyz

Summary

When Claude Code Desktop connects to a remote host over SSH, closing and reopening the app shows "no messages yet" for those remote sessions — the message list renders empty. However, the conversation context is fully intact: asking the model to "summarize this conversation" returns the entire prior discussion. The transcript .jsonl on the remote host is complete and uncorrupted.

So this is a client-side hydration bug specific to remote/SSH sessions: the Desktop UI on the Mac does not load/render the remote host's transcript message list on reopen, even though the remote backend reads it correctly (hence preserved context).

Local (Mac-directory) sessions are unaffected — their history displays normally on reopen.

Environment

  • Desktop app (macOS): Claude 1.19367.0 (1a5be1), 2026-07-07
  • Remote host: Raspberry Pi 5, Ubuntu 24.04.4 LTS, aarch64, Linux 6.8.0-1060-raspi
  • Remote backend (from session env): CLAUDE_CODE_ENTRYPOINT=claude-desktop, CLAUDE_CODE_EXECPATH=/home/<user>/.claude/remote/ccd-cli/2.1.202, CLAUDE_SSH_DAEMON_CHILD=1

Steps to reproduce

  1. From Claude Code Desktop (macOS), connect to a Linux host over SSH and hold a normal multi-turn conversation.
  2. Fully quit the Desktop app on the Mac and reopen it.
  3. Open the remote (SSH) conversation.

Expected

The full message history renders in the UI (as it does for local Mac-directory sessions).

Actual

  • The message list shows "no messages yet" (empty).
  • Context is not lost: "summarize this conversation" returns the complete prior discussion.
  • The transcript on the remote host is complete and well-formed.

Evidence (data is intact on the remote host)

The remote .jsonl for one such session holds the full history, yet the Desktop UI showed it as empty on reopen:

$ f=~/.claude/projects/-home-<user>-Documents-MAC/f213b833-....jsonl
$ grep -c '"type":"user"'      $f   -> 128
$ grep -c '"type":"assistant"' $f   -> 230
$ wc -l < $f                        -> 571
# roles are present and ordered from the start of the file (user, attachments, user, ...)

128 user + 230 assistant messages present on the remote host, but the Mac UI rendered "no messages yet" — while the backend clearly still reads the same file (context preserved). This rules out transcript corruption and points to the Desktop client not fetching/rendering the remote transcript on reopen.

Not a duplicate of #24304

#24304 ("Conversation history missing on resume (except last message)") is caused by JSONL corruption (colliding messageId/uuid, broken parent chain), affects local sessions too, and shows the last message. This report is different: the JSONL is uncorrupted, it is specific to remote/SSH sessions, local sessions are fine, and the UI shows zero messages ("no messages yet"), not the last one.

Likely same area as #76114

#76114 reports that Desktop remote (SSH) sessions never create file-history snapshots on the remote host, breaking rewind. Both look like the same underlying gap: the Desktop client fails to sync/hydrate remote-host session state back to the Mac UI — there it's the file-history snapshots, here it's the transcript message list.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗