codex界面显示为空但本地数据存在,问题在于渲染层与数据库查询层的映射断裂:thread_id不一致、rollout_path路径非法或model_provider字段不兼容。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

当你在Codex界面看到某条任务、会话或项目明明应该存在却显示为空,而本地文件系统里对应数据又确实存在时,问题往往卡在页面渲染层与数据库查询层之间的映射断裂——不是数据丢了,是路径、标识或状态字段没对上。
确认数据是否真丢失
打开文件资源管理器,进入 【%USERPROFILE%.codexsessions】,按日期子目录逐层展开,找到疑似“消失”的任务文件(如 rollout-2026-08-18T11-10-30-thread_abc123.jsonl)。用记事本或 VS Code 打开它,确认第一行是合法 JSONL 格式的 session_meta。如果能正常读取且内容完整,说明数据未物理丢失。
接着检查索引数据库:用 DB Browser for SQLite 打开 【%USERPROFILE%.codexstate_5.sqlite】,执行 SELECT * FROM threads WHERE id = 'thread_abc123'; 如果返回结果,但 project_path 为 NULL 或路径明显错误(比如含 \? 前缀却指向不存在的盘符),就定位到断裂点。
排查三条关键映射链
页面显示依赖三重匹配,缺一不可:
方法一:检查 thread_id 是否被截断或混淆
在 sessions 目录中,文件名前缀 thread_abc123 必须与 state_5.sqlite 中 threads.id 字段完全一致。注意大小写、下划线、长度——Codex 不做模糊匹配,少一个字符就查不到。
方法二:验证 rollout_path 路径有效性
threads.rollout_path 字段必须指向真实存在的 .jsonl 文件全路径,且不能包含非法前缀。例如:【\?C:UsersAlice.codexsessions‚6 88
ollout-*.jsonl】 这种格式会导致 os error 2,Windows API 拒绝解析;应改为 【C:/Users/Alice/.codex/sessions/2026/08/18/rollout-*.jsonl】(正斜杠、无 \?)。
方法三:核对 model_provider 字段兼容性
切换过 Provider 后,旧会话的 model_provider 可能仍为 openai,而当前 UI 查询只加载 openai_http 或 anthropic_v1。执行 SELECT DISTINCT model_provider FROM threads; 若发现混存多种值,需统一更新:UPDATE threads SET model_provider = 'openai_http' WHERE model_provider = 'openai';
用 CLI 快速验证映射完整性
第一步:关闭 Codex Desktop,避免数据库锁死。
第二步:在终端中进入项目根目录(例如 D:myproject),运行 codex resume --list。
第三步:观察输出中是否列出目标 thread_id。若不出现,说明 CLI 层已无法关联该会话——此时基本可判定是 state_5.sqlite 中 rollout_path 或 model_provider 字段失效。
第四步:执行 codex resume --thread thread_abc123 --debug,查看日志末尾是否报错 “no such file” 或 “provider mismatch”。这一步直接暴露断裂环节。











