cc-switch Codex 会话记录丢失
Quick fix
关闭 Codex 路由或统一会话历史相关开关,使 model_provider 与旧会话一致后重启 Codex,历史会话即可恢复。
Symptom
Section titled “Symptom”就是自从使用了这个 cc-switch,导致我的 Codex 里面的会话全部都看不见了。虽然会话文件还在,但是没有记录了。Codex 的历史会话列表会按当前配置中的 model_provider 精确过滤。开启 cc-switch 的 Codex 路由/官方代理后,配置会被写成 model_provider = "cc-switch-official";关闭路由或使用自定义 provider 时则可能是 model_provider = "custom"。如果 ~/.codex/sessions 下已有会话的 session_meta 中写入的是另一个 provider,列表就会看起来被清空,但会话文件本身仍然存在。
该问题在 issue 中被描述为 v3.17.0 官方代理实现与“统一历史使用 custom”不兼容的兼容性/产品缺陷;有用户反馈 v3.18.0 仍未修复。部分评论建议关闭相关开关即可恢复,也有用户称关闭后无效,说明不同环境下的 provider 命名可能不一致,需要确认当前 Codex 配置与会话文件中的 model_provider 是否匹配。
在 cc-switch 中关闭 Codex 路由/代理相关开关(有用户截图确认关闭后会话恢复)。
重启 Codex,查看历史会话是否恢复。
如果仍未恢复,检查当前 Codex 配置中的 model_provider,以及 ~/.codex/sessions 对应会话的 session_meta 中的 model_provider 是否一致。
~/.codex/sessions 下会话文件中的 session_meta 示例 {"model_provider": "cc-switch-official"}若两边不一致,可将旧会话的 model_provider 批量改为当前正在使用的 provider,或把当前配置改为与旧会话一致;也可让 Codex 编写脚本修复并删除 CC Switch 生成的多余历史备份。
Affected Versions
Section titled “Affected Versions”Source Issues
Section titled “Source Issues”本页汇总自 1 个真实 issue
- 会话文件还在但 Codex 里看不见,是真的丢了吗?
- 通常不是真正丢失。issue 中确认 ~/.codex/sessions 文件仍在,只是 Codex 按 model_provider 过滤历史,provider 不匹配时列表会看起来为空。
- 关闭哪个开关可以恢复?
- 有用户确认关闭 cc-switch 中的 Codex 路由/代理相关开关后会话恢复;也有用户称关闭后无效,因此需要进一步核对 model_provider 是否一致。
- 开启或关闭路由为什么会在两组历史之间切换?
- 因为开启路由时 model_provider = "cc-switch-official",关闭路由时 model_provider = "custom",两组会话分别属于不同 provider,所以看起来像历史消失或切换。
- 这个问题在 v3.18.0 修复了吗?
- issue 中有用户反馈 v3.17.0 已存在该问题,且 v3.18.0 更新后仍未修复。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。