Skip to content

Cross-account resume as copy-fork (deferred: transcript sessionId/history workarounds needed) #128

Description

@grimmerk

What

Cross-account "resume" as copy-fork: continue an existing conversation under a different Claude Code account by copying its transcript into the target account — never by linking or switching in place.

source: ~/.claude/projects/<encoded-cwd>/<session-id>.jsonl        (the chat history)
              │ copy
              ▼
target: ~/.claude-work/projects/<same-encoded-cwd>/<NEW-uuid>.jsonl
then:   CLAUDE_CONFIG_DIR=~/.claude-work command claude --resume <NEW-uuid>

Semantics: fork, not move — the source session stays intact in its own account; the fork continues under the target account's identity/billing/org. Only conversation content transfers; credentials/login never do.

Use cases (niche but real)

  • Started a work conversation under the personal account by mistake (or vice versa) — continue it under the right identity.
  • Personal quota exhausted mid-task — hand the conversation to the work account.

Why it's parked (workarounds needed — experiment before building)

  1. Per-line sessionId fields: transcript JSONL lines carry the session id internally. Renaming the file to a new UUID without rewriting those fields may or may not confuse Claude Code — needs an experiment (like the symlink one that validated Batch 3 sharing). Likely need a rewrite pass over the copied file.
  2. New UUID is mandatory: the same id existing in two accounts' dirs would break CodeV's account attribution (status dots, resume env selection) which assumes ids are unique across config dirs.
  3. history.jsonl entry: the copy has no entry in the target account's history, so it may not appear in CodeV's Sessions list until resumed once — may need a synthetic history entry.
  4. Compaction/summary references: verify a compacted transcript is fully self-contained when copied.
  5. UX wording must be honest: "Continue in work (copies this conversation)" — never "Resume as work", which implies in-place identity switching that doesn't exist.

Decision

Deferred (user decision, 2026-07-10) — depends on workarounds above; revisit alongside Batch 3 share UX (design doc §5/§6.G; 2c-lite shipped the new-session picker half in #126). Priority: P3.

🤖 On behalf of @grimmerk — generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions