Summary
Cloud Sync preserves the source machine path for Claude sessions and derives the destination Claude project key from that original path without any cross-machine remapping.
Problem
For Claude Code sessions, the synced payload keeps the original project path from the source machine. On pull, CodeDash writes the restored session into ~/.claude/projects/{projectKey}/, where projectKey is derived from the original source path by sanitizing characters.
That means project identity is effectively tied to the source machine path.
Why this breaks
This becomes inconsistent when syncing between machines where:
- operating systems differ, for example macOS and Linux
- usernames differ
- the same repository is checked out into different directories
Example:
A session created under /Users/alice/work/app on macOS will be restored on Linux under a Claude project bucket derived from /Users/alice/work/app, even if the actual local checkout is /home/bob/src/app.
Current behavior
- session history itself can be uploaded and pulled successfully
- Claude project path metadata is preserved from the source machine
- no path normalization or project mapping is applied during restore
- imported sessions may appear under a logical Claude project that does not exist on the destination machine
Expected behavior
Cloud Sync should provide a stable project identity across machines, or offer a path-mapping strategy during import.
Possible approaches:
- derive project identity from repository root or VCS remote instead of absolute local path
- store a stable project id separate from the absolute path
- allow user-defined path remapping on pull
- fall back to a neutral import bucket when the original path is not valid on the current machine
Notes
This is specifically about Claude Code session restore/import behavior. The issue is in project path consistency, not in encryption or transport.
Summary
Cloud Sync preserves the source machine path for Claude sessions and derives the destination Claude project key from that original path without any cross-machine remapping.
Problem
For Claude Code sessions, the synced payload keeps the original project path from the source machine. On pull, CodeDash writes the restored session into ~/.claude/projects/{projectKey}/, where projectKey is derived from the original source path by sanitizing characters.
That means project identity is effectively tied to the source machine path.
Why this breaks
This becomes inconsistent when syncing between machines where:
Example:
A session created under /Users/alice/work/app on macOS will be restored on Linux under a Claude project bucket derived from /Users/alice/work/app, even if the actual local checkout is /home/bob/src/app.
Current behavior
Expected behavior
Cloud Sync should provide a stable project identity across machines, or offer a path-mapping strategy during import.
Possible approaches:
Notes
This is specifically about Claude Code session restore/import behavior. The issue is in project path consistency, not in encryption or transport.