跳转到内容

cc-switch Codex 会话记录丢失

Quick fix

关闭 Codex 路由或统一会话历史相关开关,使 model_provider 与旧会话一致后重启 Codex,历史会话即可恢复。

报错原文
就是自从使用了这个 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 是否匹配。

  1. 在 cc-switch 中关闭 Codex 路由/代理相关开关(有用户截图确认关闭后会话恢复)。

  2. 重启 Codex,查看历史会话是否恢复。

  3. 如果仍未恢复,检查当前 Codex 配置中的 model_provider,以及 ~/.codex/sessions 对应会话的 session_meta 中的 model_provider 是否一致。

    ~/.codex/sessions 下会话文件中的 session_meta 示例
    {
    "model_provider": "cc-switch-official"
    }
  4. 若两边不一致,可将旧会话的 model_provider 批量改为当前正在使用的 provider,或把当前配置改为与旧会话一致;也可让 Codex 编写脚本修复并删除 CC Switch 生成的多余历史备份。

ToolCodex
Version3.17.0 - 3.18.0(issue 中称受影响且未修复)
Platforms未知

本页汇总自 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。本站不分发任何软件。