跳转到内容

Codex history list can become completely empty,Codex

Quick fix

保留 sqlite_home 并迁移活动 SQLite 数据库中的 provider bucket,可恢复可见的 Codex 历史。

报错原文
After enabling **统一 Codex 会话历史** for Codex, the Codex history list can become completely empty, even though all session files still exist.

在该 Windows 报告中,Codex 的活动数据库位于 `%USERPROFILE%\.codex\sqlite\state_5.sqlite`,而不是根目录的 `state_5.sqlite`。启用统一会话历史后,`config.toml` 会使用 `model_provider = "custom"`;如果活动数据库中的历史仍属于 `openai` bucket,Codex 只会显示 `custom` 历史,表现为历史为空,但 `.jsonl` 文件并未被删除。

原帖验证的 workaround 是保留 `sqlite_home`,并迁移活动数据库。评论还报告了已标记迁移完成但 `migratedStateRows = 0` 的变体,以及 PR #4292 提出的多数据库扫描和修复工具;该 issue 仍为 open,尚无已合并的官方自动恢复方案。

  1. 在 Codex 的 `config.toml` 顶层保留指向活动 SQLite 目录的 `sqlite_home`。

    %USERPROFILE%\.codex\config.toml
    sqlite_home = 'C:\\Users\\<USER>\\.codex\\sqlite'
  2. 在 CC Switch 保存的 Codex provider templates 或 common Codex config 中也保留同一条 `sqlite_home`,避免切换 provider 时覆盖并删除该设置。

  3. 启用“统一 Codex 会话历史”后选择迁移已有官方历史,并确认活动 SQLite 数据库中的历史已迁移到 `custom` provider bucket。

ToolCodex
Version受影响:26.609.x
PlatformsWindows
迁移已显示 `migratedStateRows = 0` 时,#4292 后应运行 `codex-history-tool repair --apply`,还是由 CC Switch 自动重跑迁移?
原帖仅提出该恢复路径问题,未给出已确认的结论;评论称 PR #4292 提供诊断/修复工具与活动数据库发现改进,但该 issue 仍为 open。
能否通过在 `config.toml` 中覆盖内置 `openai` provider 来保留 OpenAI 历史 bucket?
不能。报告指出当前 Codex 会拒绝覆盖保留的内置 `openai` provider id。

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。