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