feat: add session transfer commands#71
Conversation
nmhjklnm
left a comment
There was a problem hiding this comment.
I found one blocking issue, plus this branch now needs a rebase on current master.
Blocking issue:
src/cmd_env.shsymlinksskills/by default in--clonemode, and thensrc/templates.sh:_write_session_transfer_skill()immediately returns whenconfig_dir/skillsis a symlink.- That means cloned environments created with the default symlink mode do not get the
cac-session-transferskill at all. - But the docs currently state that new environments include that skill (
docs/commands/env.mdx,docs/zh/commands/env.mdx).
So right now the implementation and the documented behavior disagree: fresh non-cloned envs get the skill, default --clone envs do not.
Please either:
- make cloned envs also receive the skill in a way that does not mutate the shared source skills directory, or
- narrow the docs/help text so it only promises the skill where it is actually installed.
Also, this PR is currently CONFLICTING with the latest master, so it needs a rebase before it can be merged.
|
One softer product concern to think through before this lands: I do not have hard evidence that raw That said, session data itself is likely sensitive / highly linkable:
So even if device identity is regenerated correctly, copying raw session files between environments may still carry a lot of continuity across those environments. I think the key question for this feature is not just command ergonomics, but whether CAC wants to treat raw session transfer as part of its isolation model, or as an explicit “you are carrying context across boundaries” escape hatch. Not saying this PR is wrong, only that session sensitivity probably needs to be part of the product decision here. |
|
Related product stance from my side: even if we do not treat this as a proven fingerprinting issue yet, I would still be cautious about encouraging reuse of old raw sessions across isolated environments. In other words, my default recommendation would be:
So for me the core concern here is session sensitivity and cross-environment continuity, not just whether |
Summary
cac env sessionscommands to list, copy, and move Claude Code session history across environmentscac-session-transferClaude Code skill for newly created environmentsdate +%s%Nis unsupportedVerification
bash build.shbash -n cacbash -n src/cmd_env.shbash -n src/templates.shbash -n src/utils.sh