Skip to content

v0.2.3

Choose a tag to compare

@Dailin521 Dailin521 released this 27 Apr 09:14
· 209 commits to main since this release

更新内容

  • 新增 SQLite has_user_event 修复:当 Codex 错误标记用户事件字段时,交互式历史会话仍可重新显示。
  • 新增 Windows cwd 规范化修复:把 SQLite thread 行里的 verbatim 路径(例如 \\?\D:\...)转换回 Codex Desktop 可识别的普通路径(例如 D:\...)。
  • 新增项目根目录修复:会根据现有 thread cwd 元数据,修复 .codex-global-state.json 及其备份文件中的 workspace / project root 记录,让之前保存过的项目重新可见。
  • status 和 GUI 输出新增项目可见性诊断:包括每个项目的交互式 thread 数量、首页可见性、全局排序、cwd 精确匹配、verbatim cwd 行以及 provider 分布。
  • 备份和恢复范围扩展:现在会同时处理 Codex global state 文件,以及原有的 config、SQLite、rollout metadata。
  • 同步结果报告更完整:会明确展示用户事件修复、cwd 修复和 workspace root 修复数量。
  • 移除了实验性的 history promotion workaround;本版本不会再为了绕过 Desktop bug 而改动对话排序。

推荐使用方式

普通 Windows 用户建议直接下载并运行本页附件里的 CodexProviderSync.exe:

  1. 打开 CodexProviderSync.exe
  2. 点击 Refresh 查看当前 provider、rollout files、SQLite 和项目可见性状态
  3. 选择目标 Provider
  4. 如果需要同时改 config.toml 根级 model_provider,勾选右侧复选框
  5. 点击 Execute

如果你已经通过其它工具切好了 provider,只想让旧历史会话重新可见,可以运行:

codex-provider sync

如果你想一并切换 provider 并同步历史,可以运行:

codex-provider switch <provider-id>

注意事项

  • 本工具只修复 Codex 历史会话可见性相关元数据,不处理登录、认证或 auth.json。
  • 每次同步或切换前都会自动创建备份,备份位于 ~/.codex/backups_state/provider-sync/<timestamp>。
  • 如果提示 state_5.sqlite 正在被占用,请先关闭 Codex、Codex App 和 app-server,然后重新执行同一个操作。
  • 如果有 rollout 文件因活跃会话被锁定而跳过,同步通常仍然是大部分成功的;等该会话结束后再运行一次 codex-provider sync 即可补齐。
  • 如果历史会话包含 encrypted_content,跨 provider/account 后可能只能恢复可见性,继续对话或 compact 仍可能报 invalid_encrypted_content;这类密文不能由本工具重新加密。

验证

  • npm test - 36 passed
  • dotnet test desktop\CodexProviderSync.Core.Tests\CodexProviderSync.Core.Tests.csproj - 30 passed
  • powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts\publish-gui.ps1