fix: 删除会话时同步清理侧边栏索引 - #2092
Conversation
BigPizzaV3
left a comment
There was a problem hiding this comment.
当前删除流程新增了 .codex-global-state.json、local_thread_catalog 等侧边栏索引清理,但 undo 流程仍只恢复数据库、rollout 和 session_index.jsonl,没有恢复这些新删除的索引数据。\n\n请让删除操作记录可恢复的全局状态/目录缓存内容,或在 undo 时根据线程数据安全重建,并补充“删除后侧边栏消失,undo 后侧边栏索引完整恢复”的回归测试。否则用户执行 undo 后会得到正文已恢复但侧边栏仍缺失的部分恢复状态。
现象:删除会话后 Codex++ 侧边栏仍显示旧会话,点击提示 no rollout found。 原因:删除流程只清理主线程数据库、rollout 文件和部分 session_index,未同步清理 projectless-thread-ids 与 local_thread_catalog 等侧边栏索引。 方案:删除成功后按 thread ID 原子清理全局状态、目录缓存和 session_index;主存储缺失时也支持清理残留索引,并补充回归测试。
删除备份记录线程对应的全局状态和目录缓存,undo 时仅恢复缺失条目,并增加侧边栏删除与恢复测试。
0b56934 to
cbff41a
Compare
|
审查意见已逐项修复,且本 PR 与 #2093 保持文件范围完全独立。
当前分支已 rebase 到上游最新 |
BigPizzaV3
left a comment
There was a problem hiding this comment.
复审通过。已核验:storage_adapter 27/27 通过(本机,与你声称一致);删除流程同步清理 .codex-global-state.json / local_thread_catalog / thread_timeline_ledger + session_index.jsonl,undo 从备份按 thread ID 只补回缺失条目、不覆盖删除后的新状态,三种会话类型统一路径、并兼容 local:。新增的 delete_codex_thread_clears_sidebar_global_state_and_catalog_cache 等回归测试覆盖到位。已基于最新 main,三平台 CI 全绿,可与 #2093 独立合并(不同文件区)。
问题现象
删除 Codex++ 会话后,侧边栏仍显示旧会话;点击后提示 no rollout found for thread id,无法恢复。
可见 #2073
原因
删除流程只清理主线程数据库、rollout 文件和部分 session_index,没有同步清理 .codex-global-state.json 中的 projectless-thread-ids/线程元数据,也没有清理 sqlite/codex-dev.db 的 local_thread_catalog 等目录缓存,造成索引与实际存储不一致。
解决方案