Codex历史任务不自动同步是因为切换模型提供商后元数据不匹配导致索引失效,需手动运行codex-provider-sync或CodexBak工具修复,操作前务必备份.codex目录。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Codex历史任务不会自动同步,切换模型提供商后历史会话列表直接变空,但本地文件其实都还在磁盘上——你得手动触发同步才能让它们重新出现在侧边栏。
为什么历史任务不自动同步
每次切换 model_provider(比如从 openai 换成 custom),Codex 会加载一套新的 Provider 上下文,而旧会话文件里的元数据(如 "model_provider":"openai")与当前环境不匹配,导致索引失效。Codex Desktop 读不到 session_index.jsonl 和 SQLite 中的对应记录,就当这些会话不存在。
这和数据丢失无关,【.codex/sessions/ 目录下的所有 rollout-*.jsonl 文件都完好无损】,只是 Codex 不认它们了。
用 codex-provider-sync 一键修复
第一步:打开终端,执行安装命令:npm install -g codex-provider-sync
第二步:确认当前 provider 名称,运行 codex config get model_provider,输出结果就是你要同步到的目标 provider ID(例如 openai、custom、ccswitch)。
第三步:进入项目根目录 → 运行 codex-provider-sync --target=openai(把 openai 替换成你第二步查到的实际 ID)→ 等待完成提示。
这一步会批量更新 sessions/ 下所有 jsonl 文件中的 payload.model_provider 字段,并重写 session_index.jsonl 和 state_5.sqlite 中的元数据映射关系。操作不可逆,【务必先备份 .codex 目录】。
用 CodexBak 工具恢复完整历史
方法一:下载 CodexBak.exe,双击运行 → 自动定位到 C:\Users\{用户名}\.codex → 点击【Scan Backup】扫描已有备份。
方法二:若无可用备份,点击【Sync Now】→ 工具会先创建一次全量备份 → 再执行 provider 元数据对齐 → 最后刷新项目缓存。
同步完成后,重启 Codex Desktop,历史会话列表立即可见。工具会在日志中列出本次修复的 rollout 文件数量、session_index 更新条目数、SQLite 表变更行数,供你核对。
预防下次再丢历史
每次切换 provider 前,先执行 codex session list --raw 导出当前所有会话 ID 到文本文件,留作应急恢复依据。
长期使用多个 provider 时,在 ~/.codex/config.toml 中为每个 profile 显式指定唯一且稳定的 provider ID,例如:
[model_providers.my_openai]
name = "my_openai"
...
[model_providers.my_custom]
name = "my_custom"
这样切换时元数据始终可追溯,避免通用 ID(如 custom)引发的 reasoning ID 校验失败问题。


















