macOS 等環(huán)境使用 CLI:
npm install -g git+https://github.com/Dailin521/codex-provider-sync.git
codex-provider sync
更多 CLI 常用命令:
codex-provider status
codex-provider sync
codex-provider sync --provider openai
codex-provider switch apigather
codex-provider restore C:\Users\you\.codex\backups_state\provider-sync\<timestamp>
codex-provider prune-backups --keep 5
命令含義:
status:只檢查當前 provider、rollout、SQLite、項目可見性診斷。
sync:不切換登錄狀態(tài),只把歷史會話 metadata 同步到當前 provider。
switch <provider-id>:修改 config.toml 根級 model_provider,然后執(zhí)行同步。
restore <backup-dir>:從備份恢復(fù),支持 --no-config、--no-db、--no-sessions。
prune-backups --keep <n>:只清理本工具創(chuàng)建的舊備份。
能力邊界
本工具只修復(fù)“歷史會話可見性”相關(guān) metadata,不修改會話內(nèi)容。
- 不處理登錄、認證、
auth.json或第三方切號工具。 - 不修改消息歷史、會話標題、對話內(nèi)容。
- 不修改
updated_at,不通過改變歷史排序來修復(fù) Desktop 顯示。 - 不把舊會話里的
encrypted_content重新加密到另一個 provider / account。 - 含
encrypted_content的舊會話跨 provider/account 后,通常只能恢復(fù)列表可見性,繼續(xù)對話或 compact 仍可能報invalid_encrypted_content。
Codex Desktop 最近 50 條限制
目前 Codex Desktop 的 Recent/項目側(cè)會話列表存在一個上游顯示限制:前端首屏只拉取最近 50 條會話。
影響:
CLI /resume 能看到的舊會話,Desktop 項目側(cè)可能仍顯示“暫無對話”。
舊項目會話如果排在全局最近 50 條之后,Desktop 首屏可能不會展示。
codex-provider-sync status / GUI Refresh 會顯示 first page 0/50、ranks 64-77 這類診斷,幫助判斷是不是這個問題。
本工具不會通過修改 updated_at 或文件時間把舊會話強行擠進前 50。這個問題應(yīng)由 Codex Desktop 上游改成按項目分頁加載,或提高/開放首屏加載數(shù)量。
安全與排障
每次 sync / switch 前都會備份到:
~/.codex/backups_state/provider-sync/<timestamp>
注意:
- 如果
state_5.sqlite被占用,關(guān)閉 Codex / Codex App / app-server 后重試。 - 如果
state_5.sqlite損壞,工具會提示 malformed/unreadable 并停止同步。 - 如果活躍會話鎖住 rollout 文件,工具會跳過該文件并繼續(xù)處理其它歷史會話。
- 如果 EXE 雙擊無反應(yīng),先確認已解壓,再查看
%AppData%\codex-provider-sync\startup-error.log,或在 PowerShell 里運行./CodexProviderSync.exe。