Claude Desktop 换成官方账号后,会话不见了怎么办

Windows 上的 Claude Desktop 在公司网关和个人 claude.ai 账号之间切换,侧边栏的 Code 会话就不见了。原因是两种登录方式各用一套数据目录,会话正文其实一条没丢。两个方向我各实操过一次,这篇讲两套目录、两个方向的差别;具体操作写成了 skill,下载给自己的 AI 照着做。

环境:Windows 11 上的 Claude Desktop,Code 模式。在公司的 API 网关和个人的 claude.ai 账号之间来回切换过。

切换登录方式之后,侧边栏里原来的 Code 会话全不见了。先说结论:聊过的内容一条没丢,丢的只是侧边栏的索引。

两套数据目录

Claude Desktop 按登录方式选数据目录,这是写在程序里的。两套目录互不相通,侧边栏只显示当前那一套里的会话:

网关模式(第三方 provider)官方账号(claude.ai)
数据目录%LOCALAPPDATA%\Claude-3p%APPDATA%\Claude
侧边栏记录放在claude-code-sessions\<账号ID>\<组织ID>\同左
组织 ID固定值 00000000-0000-4000-8000-000000000001真实的账号和组织 ID
会话正文%USERPROFILE%\.claude\projects\同一个位置,两边共用

侧边栏里的每条会话,就是那个文件夹里的一个 local_<会话ID>.json,记着标题、工作目录、分支和对应正文的 ID。切换登录方式等于换了一个文件夹,自然看不到另一边的会话。正文放在两边共用的位置,所以不受影响。

先别急着搬

先确认 ~/.claude/projects/ 里的 .jsonl 正文还在。确认之后有三条路:

做法代价
切回原来的登录方式零风险,侧边栏原样回来,但用不上新账号
不切,在终端里进仓库目录跑 claude --resume 接着聊零风险,只是侧边栏还是空的
把会话记录从一套目录复制到另一套侧边栏回来,但要直接改 Desktop 的状态文件

我第一次就选了第三条,把 54 条全搬了过去,搬得很成功。可官方账号那边的最后一次活动就停在当晚,后来我又回到了网关,那批记录再也没打开过。回头看,直接切回去才是成本最低的。

真要搬:两个方向的差别

搬的方法本身两个方向一样:完全退出 Desktop,把 local_*.json 从有它的那套目录复制到当前这套目录的对应文件夹,再打开 Desktop。会话记录里不含账号 ID 和组织 ID,所以可以原样复制,不用改任何字段。

不一样的是两次碰到的情况:

网关 → 官方官方 → 网关
当时的状况刚切过去,官方那边几乎是空的两边已经同步过一次,大部分会话两边都有
搬了多少54 条全搬56 条里只有 1 条需要搬
主要工作确认没有重名,然后整批复制逐条比对差集,挑出真正缺的
归档清单 archived-sessions.idx目标那边还没有,直接复制,2 条归档会话跟着过去目标已经有了,不能覆盖
要跳过的无一条工作目录在官方账号那边临时工作区(scratch-workspaces)里的会话,搬过去打不开
留给自己决定的无一条两边都各自聊过的会话(一边 47 轮,一边 31 轮),已经分叉,谁也不能覆盖谁

归档清单记的是「哪些会话被归档了」,是状态不是数据。三周后我量了一下,官方那边记着 2 条,网关那边记着 15 条。拿网关那份盖到官方那边,会平白归档 13 条会话;反过来盖,又会把网关那边 13 条归档的会话放回主列表。哪个方向覆盖都不对,要么只在目标没有时复制,要么手工合并。

所以第一次搬最省事,之后每搬一次都更麻烦:两边各自往前走,重名、归档状态、分叉的会话都会冒出来。搬一次只是一张快照,不是同步,别在两边交替用同一条会话。

还有一个容易白干的地方:Desktop 开着的时候它会改写这些文件,必须从托盘彻底退出再动手,不然拷进去的东西会在它退出时被盖掉。我第一次就是拷完马上看,列表里还是只有 1 条。

顺带的 Git 报错

搬完点开会话,可能会报 Git isn’t working: this session’s branch is checked out somewhere else in this repository。这是另一个问题:每个 Code 会话都有自己的 git worktree 和 claude/* 分支,而「哪个会话用哪个目录、哪个分支」分别记在 git、Desktop 的 worktree 注册表和会话记录三个地方。会话记录里写的目录不存在、它要的分支又正被别的目录占着,Desktop 想重建 worktree 就会被 git 拒绝。

我那次是因为手动给一个 worktree 目录改了名,会话记录还指着旧名字。解法是确认占着分支的那个 worktree 里没有任何改动和独有提交之后,把它删掉,再回到 Desktop 发一条消息让它重建。教训就一句:给 worktree 目录改名或手动删 worktree 之前,先看看会话记录里写的是什么。

交给你的 AI 去做

具体的排查和操作步骤都写在 skill 里,包括怎么比对两边、复制前要查的几项、归档清单怎么处理、删 worktree 前的五项检查。下载放进你的 AI 的 skill 目录(Claude Code 是 ~/.claude/skills/<名字>/SKILL.md),跟它说一句「切换账号后侧边栏会话不见了」,或者把报错贴给它就行。两个方向它都能处理,而且会先让你在三条路里选,不会上来就动文件。

下载说明
SKILL.md(英文版)给 AI 用,建议用这个
SKILL.cn.md(中文版)内容相同,方便自己看

备注

如果你的 AI 就跑在 Claude Desktop 里,它没法自己退出 Desktop 再改文件。skill 里让它把操作写成脚本交给你,等你退出 Desktop 后再跑,或者改在终端里用 Claude Code CLI 来做。

评论

评论加载中……

登录后再评论

注册要用邮箱收个验证码,只为确认邮箱能收信,不会拿去做别的。账号设置