Codex历史会话消失?一键恢复可见!Codex Provider Sync使用教程
大家好 这里是「代码简单说」`,欢迎大家关注同名公众号,不定时更新更多实用有趣的教程 也欢迎大家在评论区一起讨论交流!~
关键词:Codex历史会话恢复、Codex Provider切换、Codex会话丢失、Codex Desktop、Codex Provider Sync、Codex历史记录找回、Codex会话不可见解决方法
最近不少开发者在使用 Codex 时遇到一个非常头疼的问题:切换了 model_provider 之后,之前的聊天记录突然没了。
codex客户端下载:https://codexdown.cn/
明明会话文件还在磁盘中,但是:
- Codex Desktop看不到
/resume找不到- 项目侧边栏显示空白
- 历史对话仿佛消失
很多人第一反应以为是数据丢失了。
实际上,大多数情况下并不是会话丢失,而是 Codex 内部的 Provider 元数据没有同步导致的。
今天分享一个开源工具:
codex-provider-sync
专门用于修复 Codex Provider 切换后历史会话不可见的问题。
什么是 codex-provider-sync
GitHub项目:
codex-provider-sync作用非常简单:
当切换 model_provider 后,自动同步 Codex 的各种元数据,让历史会话重新显示出来。
它不会修改你的聊天内容。
不会修改历史记录。
不会修改消息数据。
仅修复:
- Provider 元数据
- Rollout 元数据
- SQLite状态数据
- 项目缓存数据
从而让 Codex Desktop 和 CLI 能重新识别这些历史会话。
为什么会出现历史会话消失
Codex内部会维护多种状态文件:
~/.codex/sessions~/.codex/archived_sessions~/.codex/state_5.sqlite.codex-global-state.json当你切换:
model_provider = "openai"改成:
model_provider = "apigather"或者其它 Provider 时:
这些文件中的 Provider 信息可能不一致。
结果就是:
会话文件存在 ↓ SQLite记录不匹配 ↓ Desktop过滤掉 ↓ 历史会话不可见所以看起来像丢失了。
实际上数据还在。
codex-provider-sync解决方案
工具会自动同步:
| 同步内容 | 说明 |
|---|---|
| sessions | 会话文件 |
| archived_sessions | 归档会话 |
| state_5.sqlite | SQLite状态库 |
| 项目缓存 | .codex-global-state.json |
同步后:
Desktop重新识别 CLI重新识别 历史会话恢复显示软件下载
| 名称 | 下载地址 |
|---|---|
| codex-provider-sync | https://pan.quark.cn/s/6f3f494f57b9 |
Windows图形版使用教程
对于大部分用户来说:
直接使用 EXE 即可。
启动:
CodexProviderSync.exe操作步骤:
第一步:刷新状态
点击:
Refresh扫描当前Codex环境。
第二步:选择Provider
例如:
openai或者:
apigather选择你当前正在使用的Provider。
第三步:执行同步
点击:
Execute即可开始修复。
CLI安装方式
如果你喜欢命令行。
安装:
npminstall-ggit+https://github.com/Dailin521/codex-provider-sync.git要求:
Node.js 24+如果是:
Node 20 Node 22可能出现:
node:sqlite相关错误。
建议升级到:
Node.js 24+常用命令详解
查看状态
codex-provider status用于诊断:
- 当前Provider
- SQLite状态
- Rollout状态
- 项目可见性
同步历史会话
codex-providersync功能:
不切换Provider 只同步历史会话元数据指定Provider同步
codex-providersync--provideropenai示例:
codex-providersync--providerapigather切换Provider并同步
codex-provider switch apigather执行过程:
修改config.toml ↓ 切换Provider ↓ 同步所有元数据一步完成。
恢复备份
codex-provider restore backup_path例如:
codex-provider restore C:\Users\Admin\.codex\backups_state\provider-sync\20260608支持:
--no-config--no-db--no-sessions选择性恢复。
清理旧备份
codex-provider prune-backups--keep5表示:
保留最近5份备份 删除更早备份关于最近50条会话限制
这是很多人误判的问题。
即使同步成功:
Desktop仍然看不到历史记录原因可能不是同步失败。
而是:
Codex Desktop只加载最近50条会话官方前端存在限制。
例如:
项目A有20条 项目B有30条 项目C有100条Desktop首屏:
只显示最近50条那么:
项目C的旧记录即使恢复成功。
仍然不会出现在列表中。
如何判断是不是50条限制
执行:
codex-provider status或者GUI:
Refresh如果看到:
first page 0/50或者:
ranks 64-77类似提示。
说明:
会话已经恢复 只是没有进入前50条列表不是同步失败。
工具不会做什么
为了安全性。
作者明确限制了修改范围。
不会修改:
登录状态
auth.json不处理。
账号切换
第三方切号工具不处理。
聊天内容
不会修改:
消息内容 会话标题 历史记录会话排序
不会修改:
updated_at不会通过作弊方式把会话顶到前面。
加密内容转换
不会重新加密:
encrypted_content因此:
跨Provider 跨账号虽然能恢复列表显示。
但继续聊天时仍可能出现:
invalid_encrypted_content错误。
自动备份机制
每次执行:
sync或者:
switch之前。
工具都会自动创建备份。
路径:
~/.codex/backups_state/provider-sync/<timestamp>例如:
~/.codex/backups_state/provider-sync/20260608123000这样即使出现异常。
也能随时恢复。
常见问题
state_5.sqlite被占用
出现:
database locked解决:
关闭:
Codex Codex Desktop app-server然后重新执行。
SQLite损坏
出现:
malformed或者:
unreadable说明数据库已经损坏。
工具会停止同步。
避免进一步破坏数据。
EXE无法启动
检查:
是否已经解压然后查看:
%AppData%\codex-provider-sync\startup-error.log或者PowerShell运行:
./CodexProviderSync.exe查看具体错误。
项目特点总结
| 功能 | 支持 |
|---|---|
| 恢复历史会话显示 | √ |
| 同步Provider元数据 | √ |
| 修复SQLite状态 | √ |
| 自动备份 | √ |
| Windows图形界面 | √ |
| CLI命令行 | √ |
| 修改聊天内容 | × |
| 处理登录认证 | × |
| 修改会话排序 | × |
| 重新加密历史内容 | × |
总结
如果你经常在多个 Codex Provider 之间切换,那么大概率会遇到:
历史会话突然消失的问题。
事实上绝大部分情况下:
数据没丢 只是元数据不一致而codex-provider-sync正是专门解决这个问题的工具。
它能够同步:
- sessions
- archived_sessions
- state_5.sqlite
- 项目缓存
让 Codex Desktop 和 CLI 重新识别历史会话。
对于频繁使用:
- OpenAI
- API聚合平台
- 本地Provider
等多Provider环境的开发者来说,是一个非常实用的辅助工具。
下载地址
| 软件 | 链接 |
|---|---|
| codex-provider-sync | https://pan.quark.cn/s/6f3f494f57b9 |
如果你经常遇到 Codex 历史记录消失的问题,建议收藏备用。