[BUG] Desktop remote (SSH) sessions never create file-history snapshots → all rewind fails with "Can't rewind to this message" (ccd-cli 2.1.202)
Summary
When Claude Code Desktop connects to a remote machine over SSH, the remote backend (ccd-cli) never writes any file-history / checkpoint snapshots on the remote host, even across sessions with many Edit/Write tool calls. As a result, /rewind (and the Desktop rewind button) has no anchors to rewind to, and every rewind attempt fails with "Can't rewind to this message" — the client can only build an "active chain" of size 2 (the latest turn).
This looks like the underlying, remote-mode-specific root cause behind several of the reported "Can't rewind to this message" symptoms (see Related). It is not fixable client-side or by the user: the Desktop re-provisions ccd-cli on every connect, and no snapshots are being generated regardless of version.
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 actually running (from session env):
CLAUDE_CODE_ENTRYPOINT=claude-desktopCLAUDE_CODE_EXECPATH=/home/<user>/.claude/remote/ccd-cli/2.1.202AI_AGENT=claude-code_2-1-202_agent,CLAUDE_AGENT_SDK_VERSION=0.3.202CLAUDE_SSH_DAEMON_CHILD=1- Provisioned
ccd-cliversions on the remote:2.1.187,2.1.197,2.1.202 - Note: the standalone CLI at
~/.local/bin/claude(updated to 2.1.205) is not what the Desktop uses — the Desktop ships/uses its own~/.claude/remote/ccd-cli/*backend.
Evidence (root cause)
On the remote host, ~/.claude/file-history/ contains only 2 session folders, both dated Jun 9, while the project has had heavy Desktop-over-SSH usage every day since:
$ ls -la ~/.claude/file-history/
drwxr-xr-x e3cc3e4c-3a4c-47b1-85a6-04ee66baa1c7 (Jun 9)
drwx------ ee38b87f-65af-4e49-bcdf-0edf94c1621b (Jun 9)
A representative Desktop-SSH session from Jul 8 (5.9 MB transcript) contains 25 file mutations yet produced zero file-history entries:
$ grep -o '"name":"\(Edit\|Write\)"' .../f213b833-....jsonl | sort | uniq -c
17 "name":"Edit"
8 "name":"Write"
$ ls ~/.claude/file-history/ | grep f213b833
(no output) -> no snapshot dir for any July session
So: 25 edits in one session, 0 checkpoints. Every remote session since Jun 9 is the same. This is why the rewind validator falls back to an active chain of size 2 and rejects every earlier anchor.
Steps to reproduce
- From Claude Code Desktop (macOS), connect to a Linux host over SSH.
- Run a normal session where Claude edits files (
Edit/Write) several times. - On the remote host, inspect
~/.claude/file-history/— no new snapshot directory is created for the session. - In the Desktop app, try to rewind to any earlier message → "Can't rewind to this message" for every target except (at most) the current turn.
Expected
In SSH/remote mode, the ccd-cli backend should write file-history snapshots on the remote host (as the standalone CLI does locally), so /rewind has anchors and can restore code + conversation to an earlier point in the same session.
Actual
No snapshots are written on the remote host at all, so rewind is effectively non-functional for the entire remote workflow.
Impact
Remote (SSH) is a primary way to "work from a laptop, keep projects on a server." In that setup, rewind — a core workflow for iterating on a fix and rolling back code + context without spawning a new chat — is completely unavailable.
Related (distinct symptom, likely same/adjacent area)
- #57206 — Desktop: all rewinds rejected ("Can't rewind to this message")
- #60121 — plugin-independent variant of #57206
- #58460 — "Can't rewind..." after MCP disconnect/reconnect cycles
- #59932 — "Can't rewind..." when parent is a SessionStart-hook system row
- #50698 — earlier remote SSH daemon (
ccd-cli) bug, shows the remote-backend surface
These are mostly about chain/anchor validation; this report points one level deeper for remote mode: the anchors are never created.