
Codex 會話一致性解決方案一句話結論同一臺服務器上只要使用同一 Linux 用戶、同一 Codex 入口和同一個CODEX_HOME無論通過127.0.0.1、192.168.x.x或其他網卡 IP 登錄也無論啟動默認codex還是任意 profile/resume都應讀取同一份跨 provider 會話列表。問題現象修復前不同入口看到的/resume列表不一致默認codex主要顯示 xiaosi provider 的會話codex3060主要顯示 3060 Ollama provider 的會話從不同目錄或不同環境進入時還可能受到cwd、會話類型或CODEX_HOME的影響結果是會話文件仍然存在但目標會話沒有出現在列表中無法從當前 profile 切入。完整邏輯鏈這條邏輯包含兩個缺一不可的層次存儲層一致所有入口必須讀取同一個CODEX_HOME和同一個sessions目錄。列表層一致恢復選擇器必須取消 provider、cwd和會話來源造成的過濾。只統一會話目錄而不取消過濾會出現“文件在但列表看不到”只取消過濾而使用不同CODEX_HOME會出現“列表邏輯相同但讀取的是不同數據”。根因根因一會話根目錄可能分叉Codex 根據CODEX_HOME確定配置、狀態和會話目錄。如果兩個終端使用不同用戶或不同CODEX_HOME它們讀取的會話數據天然不同。本機統一后的會話目錄是/home/zhuyq/.codex/sessions根因二恢復列表存在過濾即使會話文件位于同一目錄官方恢復選擇器仍可能按以下條件過濾當前 model provider當前工作目錄cwd是否屬于非交互會話。默認 xiaosi、3060 Ollama 和其他 profile 使用不同 provider因此舊運行時下的/resume會顯示不同集合。實際修復1. 固定唯一 Codex 入口日常執行的codex是以下包裝入口/home/zhuyq/.local/bin/codex它固定設置export CODEX_HOME/home/zhuyq/.codex因此默認入口和所有 profile 共用同一配置根目錄與會話目錄。2. 使用跨 provider 運行時包裝入口調用/home/zhuyq/.local/libexec/codexdp-resume-any-provider-zh該運行時讓 TUI 的/resume使用跨 provider 恢復視圖不再只顯示當前 provider 創建的會話。3. 補齊命令行恢復參數執行頂層codex resume時包裝入口自動補充--all --include-non-interactive參數作用參數作用--all取消當前cwd過濾--include-non-interactive包含exec等非交互會話4. 統一默認 xiaosi 配置默認配置和xiaosiprofile 使用相同的ai-xiaosiprovider、base_url、wire_api和內置 bearer token/home/zhuyq/.codex/config.toml /home/zhuyq/.codex/xiaosi.config.toml密鑰不會寫入本文檔。多網卡和不同 IPIP 地址本身不是 Codex 會話的存儲鍵。以下連接只要最終進入同一臺機器、同一用戶環境就應讀取同一列表127.0.0.1 192.168.x.x 服務器其他局域網或公網 IP不同 IP 出現列表不一致時真正需要檢查的是whoami printf %s\n $CODEX_HOME readlink -f $(command -v codex)正確結果應滿足檢查項期望值用戶zhuyqCODEX_HOME/home/zhuyq/.codexcodex入口/home/zhuyq/.local/bin/codex如果三項一致網絡入口不會導致會話分裂。使用方法默認入口codex3060 profilecodex3060進入 TUI 后執行/resume也可以直接按 ID 恢復codex resume SESSION_ID codex -p 3060 resume SESSION_ID手工驗收流程驗收必須比較真實 TUI 的/resume不能只以codex --version或 CLI 能啟動作為通過依據。退出所有修改前已打開的 Codex TUI 和 App Server。新開終端運行codex輸入/resume記錄列表中的會話數量和若干目標會話。退出后運行codex3060輸入/resume核對數量和目標會話是否相同。對其他 profile 重復上述步驟。如需驗證多網卡分別通過127.0.0.1和192.168.x.x登錄在兩邊先核對用戶、CODEX_HOME和codex入口再比較/resume。從任意 profile 選擇由另一個 provider 創建的會話確認能夠實際進入而不只是列表中可見。驗收條件所有入口的/resume顯示同一會話集合跨 provider 會話能夠實際切入不同網絡入口使用相同用戶、CODEX_HOME和codex路徑。已驗證與未驗證2026-08-06 曾對默認、3060、claude-code-router、deepseek、huoshen和xiaosi六個配置入口進行程序化列表對比當時均返回 145 個活動會話排序后的 ID 哈希均為f4a954577286e790。該結果是當時狀態不代表會話數量永久保持 145。原驗收回歸腳本已按要求刪除當前不再提供該腳本。尚未完成的驗證沒有在本文檔本次更新中分別通過127.0.0.1和192.168.x.x建立兩個真實遠程 TUI 做對照。因此多 IP 結論來自已統一的本機用戶、入口和CODEX_HOME機制實際網絡驗收應按上一節執行。解決范圍與邊界已解決的范圍默認codex與codex3060當前所有 profile不同工作目錄同一服務器、同一用戶下的不同網卡或 IP 登錄交互會話和非交互會話的命令行恢復列表。不會自動合并的情況實際連接的是不同服務器登錄的是不同 Linux 用戶容器或虛擬機沒有共享/home/zhuyq/.codex第三方啟動器覆蓋了CODEX_HOMEPATH優先命中了另一套 Codex 安裝會話已經歸檔或刪除。這些情況需要先統一文件系統、用戶環境或啟動入口不能僅靠跨 provider 運行時解決。修改文件清單路徑作用/home/zhuyq/.local/bin/codex固定CODEX_HOME、轉發啟動參數、補齊resume參數/home/zhuyq/.local/libexec/codexdp-resume-any-provider-zh提供跨 provider 的 TUI 恢復視圖/home/zhuyq/.codex/config.toml默認 xiaosi 配置/home/zhuyq/.codex/xiaosi.config.tomlxiaosi profile 配置/home/zhuyq/.bashrc固定環境變量并定義codex3060等別名重啟要求已經打開的 Codex TUI 或 App Server 不會自動重新加載入口腳本和配置。修改后必須退出舊進程重新執行codex或相應 profile 命令再使用/resume。