切换 provider 后 Codex 历史会话会“消失”?做了个同步工具

3 月 19 日
 dongailin
如果你在官方 OpenAI 登录、relay 、自定义 provider 之间切过 Codex ,大概率遇到过这个问题:

历史会话其实没丢,但切完 provider 之后,旧会话在 `resume` 或 Codex App 里会像“消失”了一样,有时候两个入口看到的还不一致。

这个问题的根源是,Codex 的 provider 元数据不是只存一处,rollout 文件和 SQLite 里各有一份。只改其中一层,结果通常还是不一致。

我做这个工具,就是专门解决这个坑:把历史会话的 provider 元数据统一到你当前正在使用的 provider ,让切回官方或者切到中转之后,旧会话重新可见。

比较适合这几种情况:
- 官方 OpenAI 和中转 / 自定义 provider 混用
- 切 provider 之后旧会话看不到
- CLI 和 App 里的会话列表不一致

它会先做备份,再处理这两层元数据,所以不是单纯改某几个 jsonl 文件。

仓库:
https://github.com/Dailin521/codex-provider-sync

目前优先 Windows ,Node.js 24+。
6348 次点击
所在节点    分享创造
6 条回复
CalledKingsley
3 月 19 日
vscode 里面装的插件的话,能实现吗? 比如 roo code 或者 kilo code 之类的
dongailin
3 月 19 日
我这边实际试了一下,VSCode 里的插件场景目前没复现这个问题,至少我测的时候是正常的。

这个工具主要是针对 Codex 自己这套本地会话存储做的,问题点在 `.codex/sessions`、`.codex/archived_sessions` 和 `state_5.sqlite` 这两层 provider 元数据不一致。

像 roo code / kilo code 这类插件,要看它们内部是不是也复用了同一套存储和过滤逻辑;这个我还没专门验证,所以暂时不敢直接下结论。
dd233
3 月 26 日
帮大忙了!感恩!
crissx
4 月 20 日
非常感谢,用 ccswitch 切换了 provider ,会话记录只剩下一个标题,没有内容了,用这个可以解决
dongailin
4 月 29 日
wutea
5 月 11 日
非常好用,帮大忙了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/1199583

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX