Codex 项目迁移 · 历史对话恢复
Codex 历史对话同步:新 Profile 也能保留工作记录。
创建新配置时,不必在“完全空白”和“复制全部数据”之间二选一。选择来源后,只同步项目对话、临时任务或全部支持的历史;复制完成的新 Profile 独立运行,不会改动原配置。
先判断:你需要同步什么
需要继续某个仓库的上下文,选择仅项目;需要保留不属于项目的聊天,选择仅临时任务;要迁移完整工作记录,再选择全部。同步是创建副本,不会把目标 Profile 后续新增的对话写回来源。
三种同步范围
仅项目
同步与项目目录关联的历史对话,适合继续维护已有代码仓库。
仅临时任务
同步不属于项目目录的临时对话。这个模式不会额外创建没有对话内容的空项目目录。
全部
同时同步项目对话和临时任务,适合建立一个包含现有工作记录的新独立配置。
可以选择多个来源
- 源 App:当前官方 Codex / ChatGPT 桌面应用使用的 Codex 数据目录。
- 已有 Profile:之前通过多开助手创建的一个或多个配置。
未勾选的来源不会参与同步。多个来源中遇到相同会话 ID 时会避免重复写入。
同步前请关闭正在使用这些来源数据的 Codex 窗口,避免数据库或会话文件正处于写入状态。
同步后会发生什么
- 复制符合范围的会话文件、索引和必要数据库记录。
- 将来源中的模型服务商引用改写为目标 Profile 的配置。
- 保留项目目录与临时任务的归类。
- 新 Profile 之后独立运行,不会把新增对话写回来源。
同步不仅是复制项目目录。Codex 历史依赖会话 JSONL、SQLite 线程数据、索引、项目路径和全局状态,缺少其中一部分就可能出现“能看到项目但看不到对话”或“重启后消失”。
同步后看不到历史怎么办
- 确认创建时开启了“同步已有对话记录”。
- 确认勾选了正确来源,而不只是选择了同步范围。
- 确认选择“仅临时任务”时,目标对话原本确实位于临时任务区。
- 完全退出目标 Codex 窗口后重新打开。
- 仍然失败时,通过 App 复制诊断并提交 Issue。
重新填写 API Key 或接口地址不应该删除历史对话。若修改 Provider 后历史消失,通常是配置解析、目标 Provider 标识或全局状态读取异常,需要日志进一步确认。
历史同步常见问题
同步会删除或修改原来的对话吗?
不会。工具会向新 Profile 写入独立副本,原 App 和已有 Profile 的会话不会被删除或覆盖。
为什么只看到项目,没看到对话?
历史不仅包含项目目录,还依赖会话 JSONL、SQLite 线程数据、索引和全局状态。请确认选择了正确来源和同步范围,并在完全退出目标窗口后重新打开。
可以同时保留多个来源的历史吗?
可以。选择多个来源后,相同会话 ID 会避免重复写入。