Codex 切换 Provider 后丢失历史对话的修复方案

背景

Codex 的本地会话(Sessions)存储路径通常与 Provider 标识绑定。当从个人 Provider 切换到公司 Provider 后,插件会由于 Context 变更而无法读取旧路径下的数据,导致历史记录“消失”。

修复步骤

执行以下流程前,请确保已在 IDE 中完成 Provider 切换并关闭 IDE 进程

  1. 安装同步工具
    直接从 GitHub 安装 codex-provider-sync 脚本:
    npm install -g github:Dailin521/codex-provider-sync
    

在这里插入图片描述

  1. 环境检查
    确认工具能识别到当前的 Provider 状态及本地 Session 路径:
    codex-provider status
    

在这里插入图片描述

  1. 执行数据对齐
    将旧 Provider 的数据同步至当前活跃的 Provider 目录下:
    codex-provider sync
    

在这里插入图片描述

  1. 验证
    重启 Codex,对话列表应已恢复。
    在这里插入图片描述

技术实现分析

该工具本质上是对 ~/.codex/ 目录下相关持久化文件的映射处理,涉及的核心文件包括:

  • Sessions 目录~/.codex/sessions~/.codex/archived_sessions
  • 状态数据库state_5.sqlite(存储插件 UI 状态及会话索引)

边界说明

  • 生效条件:仅适用于本地 .codex 目录完整,但因 Provider ID 变更导致读取失效的场景。
  • 数据安全:建议在 sync 操作前执行 cp -r ~/.codex ~/.codex_bak 进行全量备份,避免 SQLite 文件在同步过程中发生写冲突。

更多推荐