Files
karuo-ai/01_卡资(金)/金仓_存储备份/Codex对话状态修复/SKILL.md

7.4 KiB
Raw Blame History

name, description, group, triggers, owner, memory_palace_path, memory_palace_slot, version, updated
name description group triggers owner memory_palace_path memory_palace_slot version updated
Codex对话状态修复 修复 Codex Desktop 侧栏项目、置顶、session_index、state_5.sqlite、空 rollout 与历史对话可见性。触发词Codex侧栏修复、Codex对话恢复、Codex项目分类、rollout缺失、state_5.sqlite、session_index、thread-store internal error。 Codex侧栏修复、Codex对话恢复、Codex项目分类、Codex旧对话、Codex置顶、rollout缺失、rollout为空、empty rollout、thread-store internal error、session_index、state_5.sqlite、codex-global-state、repair-backups 金仓 卡若记忆宫殿/金殿/金仓厢/Codex对话状态修复 Codex 本地对话、项目侧栏和状态库修复入口 2.0 2026-07-19

Codex对话状态修复

金仓 · Codex Desktop 本地状态修复入口。只处理 Codex不优化 Cursor。用于侧栏项目错乱、旧对话缺失、置顶不显示、thread-store internal error、空 rollout-*.jsonlsession_index.jsonl / state_5.sqlite / .codex-global-state.json 不一致等问题。

一句话

先备份,再查 session_index.jsonlstate_5.sqlite.codex-global-state.jsonprocess_manager/chat_processes.jsonrollout-*.jsonl,按“恢复并分类”修复 Codex Desktop 侧栏可用性;历史正文真缺失时只建可读 placeholder不冒充原始内容。

触发场景

现象 判断
左侧项目下对话丢失、误归类、全部挂到某项目 走本 Skill
置顶对话消失或勾选状态不对 走本 Skill
打开线程报 thread-store internal error 优先查空 rollout
missing rollout referencesrollout is empty 走补 placeholder / 修索引
用户说“都恢复并分类,不是隐藏” 目标是侧栏可用,不是清理坏引用

红线

  • 不删除原始 rollout-*.jsonlsession_index.jsonlstate_5.sqlite.codex-global-state.json
  • 不执行 git reset --hard、不清 Time Machine、不删快照。
  • 不把 placeholder 说成“恢复原始聊天内容”;只能说“可打开占位”。
  • 不把 Cursor 的 state.vscdb.cursor/rules 当成修复对象;本 Skill 只管 Codex。

Phase 0备份

在第一次改任何 Codex 状态文件前,创建时间戳备份目录:

ts="$(date +%Y%m%d-%H%M%S)"
backup="/Users/karuo/.codex/repair-backups/${ts}-codex-state-repair"
mkdir -p "$backup"
cp /Users/karuo/.codex/session_index.jsonl "$backup/" 2>/dev/null || true
cp /Users/karuo/.codex/state_5.sqlite "$backup/" 2>/dev/null || true
cp /Users/karuo/.codex/.codex-global-state.json "$backup/" 2>/dev/null || true
cp /Users/karuo/.codex/process_manager/chat_processes.json "$backup/" 2>/dev/null || true

Phase 1定位真实状态

  1. 统计 session_index.jsonl 记录数、重复 thread、缺失 rollout、空 rollout。
  2. state_5.sqlite 里线程、项目、置顶状态与 session_index.jsonl 是否一致。
  3. .codex-global-state.json 是否仍保留旧项目挂载。
  4. process_manager/chat_processes.json 是否引用已不存在或空 rollout。
  5. 写一份报告到备份目录,例如 codex-state-repair-report.json

Phase 2修复策略

问题 动作
缺失 rollout 引用 若能从索引或记忆找到摘要,生成 readable placeholder否则标记不可恢复
rollout-*.jsonl 写入最小有效 JSONL 占位,避免 Desktop 读线程报错
项目误分类 按标题、cwd、首条用户消息、记忆摘要重新分桶
置顶丢失 同步修 state_5.sqlite 与 global state 的 pinned/top 字段
修完仍不显示 把重启 Codex Desktop / reload state 作为验收步骤

Phase 3项目分类建议

优先保留用户真实业务桶:

  • 卡若AI / Codex管理
  • Soul / SOUL创业派对
  • 私域银行 / 存客宝 / 工作手机
  • 厦门房产
  • 域名注册
  • MBTI
  • 玩值电竞
  • 服务器管理 / NAS
  • 个人项目

分类证据优先级:

  1. 当前 cwd
  2. 会话标题
  3. 首条用户消息
  4. rollout 摘要
  5. memory / repair report 中的旧分类记录

Phase 4验收

必须至少验证:

  • missing rollout references = 0
  • 空 rollout 已处理或已列入不可恢复清单
  • 误挂大项目的对话数量回落到合理范围
  • 关键项目侧栏能打开
  • 修复报告写入 /Users/karuo/.codex/repair-backups/
  • 若 Desktop 仍缓存旧状态,明确提示重启 Codex Desktop 再验

Phase 5公司 NAS Mongo 全链路备份与跨 Codex 恢复

使用:

python3 scripts/codex_mongo_backup_restore.py backup
python3 scripts/codex_mongo_backup_restore.py backup --recent-seconds 600 --no-snapshot
python3 scripts/codex_mongo_backup_restore.py stats
python3 scripts/codex_mongo_backup_restore.py restore --output /tmp/codex-restore
python3 scripts/codex_mongo_backup_restore.py restore --project-root "/绝对路径/项目" --output /tmp/codex-restore

公司 Mongo 中按以下层级保存:

Collection 内容
codex_threads thread ID、标题、cwd、项目/工作树、归档状态、模型、Git、rollout 路径
codex_thread_events 完整 JSONL 事件链、顺序号、时间戳、事件类型、原始记录
codex_event_chunks 超过 Mongo 单文档限制的截图/附件事件 gzip 分块
codex_chat_messages 按项目和对话检索的用户/助手正文
codex_projects 项目根、项目名、活跃/归档对话数量
codex_state_snapshots / codex_backup_chunks Codex 状态文件可恢复快照
codex_backup_runs 每次备份统计与结果

持续同步由 ~/Library/LaunchAgents/com.karuo.codex-mongo-sync.plist 每 5 分钟执行; 它只扫描最近 10 分钟有变化的线程。首次接入或换机前再执行一次无参数 backup 全量收口。

恢复采用两阶段:先导出到独立目录并核对 manifest.json,再备份目标 Codex 的 state_5.sqlite / global state 后应用;不直接覆盖正在运行的 Codex 状态库。

常用证据入口

文件/目录 用途
/Users/karuo/.codex/session_index.jsonl 线程索引
/Users/karuo/.codex/state_5.sqlite Desktop 状态库
/Users/karuo/.codex/.codex-global-state.json 全局侧栏/项目状态
/Users/karuo/.codex/process_manager/chat_processes.json 进程/线程引用
/Users/karuo/.codex/sessions/ rollout 真源
/Users/karuo/.codex/repair-backups/ 备份与修复报告

复用过的历史证据

  • 2026-07-04从隐藏缺失 rollout 改为“恢复并分类旧对话”。
  • 2026-07-04空 rollout 引发 thread-store internal error
  • 2026-07-05把误挂在“厦门房产”的约 70 个对话重新拆回 Soul、私域银行、工作手机、域名注册、MBTI、玩值电竞、服务器管理、个人项目等桶。

输出格式

交付时用卡若复盘:

  • 🎯 目标&结果:修复范围、达成率
  • 📌 过程:备份、扫描、修复、验收
  • 💡 反思:哪里是不可恢复或需重启
  • 📝 总结:修复报告路径
  • ▶ 下一步执行:是否需要重启 Desktop、是否需补 Mongo/记忆

变更记录

日期 说明
2026-07-05 初版从近30天 Codex Desktop 侧栏/rollout 修复高复发流程沉淀
2026-07-19 v2增加公司 NAS Mongo 全事件链备份、项目/工作树状态、超大事件分块与跨实例恢复包