概述
Oh My Codex v0.21.5(2026-09-11,62 commits)與 v0.21.6(2026-09-21,52 commits、101 files、+4294/−707)是兩個修補性 release,主軸:tmux HUD 的生命週期正確性、AGENTS scope、Codex lifecycle 對齊與可重用的模型評測。
Active Team 進度上 HUD(v0.21.5,#3644)
tmux HUD 現在顯示進行中 team 的身分與每個 worker 的狀態/任務。窄版配置保持可讀、保留 leader 空間,並以精確 session ownership 圍籬 resize reconciliation。
tmux HUD:自我終止且不洩漏(v0.21.6)
這是 v0.21.6 最精彩的部分(#3660、#3683、#3685)。三個性質:
- HUD 在其 tmux leader pane 退出時關閉——leader 沒了,HUD 不該留著
- Stale Team leader panes 在 reconciliation 時跳過——不留孤兒 watcher、不噴救援失敗噪音
- Leader 存在與否由「驗證過的 server-wide pane snapshot」判定:
- 視窗移動不會被誤判為退出
- tmux 查詢失敗不會被當作「leader 已死」的證據
第三點是分散式系統的經典原則:觀察失敗 ≠ 觀察到失敗。tmux 查詢出錯時你只知道「我不知道」,不知道「它不在了」——把未知當作缺席處理,就是孤兒程序與誤清理的來源。
AGENTS Scope 正確性(v0.21.6)
- 持久 AGENTS 內容不再複製進 session instructions(#3678)——同一份指引被注入兩次,浪費 token 也製造不一致
- Global AGENTS 在 project-scoped 啟動下存活(#3674/#3684)——專案層啟動不該抹掉全域慣例
可重用的模型評測套件(v0.21.6)
OMX 的預設模型陣容(default model lineup)現在有一套宣告式評測(#3663–#3667):
- 確定性的 stage-transition 記錄
- Supplied-record reporting——報告明確區分「測得的數字」與「廠商宣告的數字」
- 明確記錄宣告與驗證的限制
這回應了 issue #3655 的評測需求,而不宣稱未測量的數字——評測報告的誠實框架比數字本身更重要。
Codex Lifecycle 對齊(v0.21.5)
- plugin-hook 的 diagnostics / setup / uninstall 對齊當前 Codex 能力
- 保留使用者擁有的 reasoning effort——不被框架預設蓋掉
- 對 Codex CLI 0.153.4 dogfood 真實的 hook trust lifecycle(#3627、#3631、#3632、#3650)
安全的普通執行(v0.21.5,#3637)
普通(非 workflow)的 native 實作與報告尊重繼承的權限,而非套用過時的 workflow 限制。口語化地說:日常請求不應被為特殊流程設計的權限牆擋住。
憑證與平台修正
- Credential provenance 在 ephemeral project-scope runtime homes 中保留;Team worker 的
CODEX_HOME以 child-safe 方式匯出、不持久化進專案(#3633) - Windows
EPERMfsync 在 Team 啟動時可存活(#3661) - Notifications 剝離完整 ANSI CSI 序列(#3668)——過去只剽一半,留下部分 escape
- Auth storage、TOML 邊界、PATH 解析與 stderr redaction 強化(#3662)
- Oversized stderr suppression 不再吞掉下一條記錄(#3676)
- 非目錄條目不再破壞 Team dispatch draining(#3680)
對既有使用者的影響
- Team 使用者:HUD 更可靠——leader pane 退出即關閉、無孤兒 watcher
- AGENTS 檔案使用者:內容不再被重複注入
- 依賴 doctor/setup 的使用者:注意 #3623(
plugin_hooksfeature flag 推論)的問題——v0.21.4 明確列為 Known gap,v0.21.6 的 release notes 未再提及,狀態不明;產生的診斷可能仍過時,使用前請自行驗證
學習重點
- 「不能用單一觀察失敗當證據」:pane snapshot 的設計是 liveness 判定的具體實作——查詢失敗要顯式區分於「確認不在」,否則系統會在每次 tmux 打嗝時誤殺自己的 HUD。
- 評測報告要分「測得的」與「宣告的」:supplied-record reporting 的價值不在數字,在於讓讀者知道每個數字從哪來——這是評測誠信的最低標準。