## 新功能
- TUI 现在具备快速推理控制功能:`Alt+,` 降低推理强度,`Alt+.` 提升推理强度,且接受模型升级后会将推理设置重置为新模型的默认值,而非保留旧设置。(#18866, #19085)
- 应用服务器会话现在可管理多个环境,并支持每轮选择特定环境和工作目录,从而更精准地定位多工作区和远程配置。(#18401, #18416)
- 为 OpenAI 兼容型提供商新增一级 Amazon Bedrock 支持,包括 AWS SigV4 签名和基于 AWS 凭证的认证。(#17820)
- 远程插件市场现可直接列表和读取,详情查询更可靠,结果页面更大。(#18452, #19079)
- Hooks 现已稳定,可在 `config.toml` 内联配置,通过 `requirements.toml` 管理,并可观察 MCP 工具以及 `apply_patch` 和长时间运行的 Bash 会话。(#18893, #18385, #18391, #18888, #19012)
- 符合条件的 ChatGPT 套餐现默认使用 Fast 服务层级,除非您明确选择退出。(#19053)
## 错误修复
- 在批准的 ChatGPT 主机间保留 Cloudflare Cookie,减少 HTTP 支持的 ChatGPT 流程中的认证中断。(#17783)
- 修复远程应用服务器可靠性问题,确保高负载下 WebSocket 事件持续排出,且远程工作进程在清理期间退出时不再导致关闭失败。(#18932, #18936)
- 修复权限模式漂移问题,使 `/permissions` 更改在旁侧对话中得以保留,且 Full Access 状态更新能正确反映在 MCP 批准处理中。(#18924, #19033)
- 修复 `wait_agent` 问题,当邮箱工作已排队时立即返回,而非等待新通知或超时。(#18968)
- 修复本地 stdio MCP 对相对命令且无显式 `cwd` 的启动问题,使回退路径解析与 CLI 行为一致。(#19031)
- 启动时减少托管配置边缘情况的失败:未知功能需求仅警告而不中止,云需求错误更清晰说明失败原因。(#19038, #19078)
## 更新日志
完整更新日志:https://github.com/openai/codex/compare/rust-v0.123.0...rust-v0.124.0
- #18870 通过 ConfigManager 加载应用服务器配置 @pakrym-oai
- #18866 feat(tui): 临时调整推理级别的快捷键 @fcoury-oai
- #18430 app-server: 实现设备密钥 v2 方法 @euroelessar
- #18757 fix: 完全回滚代理身份运行时连接 @efrazer-oai
- #17783 在 codex 中保留 Cloudfare HTTP Cookie @shijie-oai
- #18876 [rollout_trace] 添加 rollout trace crate @cassirer-openai
- #18401 支持多个托管环境 @starr-openai
- #18797 允许监护人裸允许输出 @maja-openai
- #18886 标准化 /statusline 与 /title 项目 @canvrno-oai
- #18768 [codex] 收紧外部迁移提示测试 @alexsong-oai
- #18909 更新 /statusline 和 /title 快照 @canvrno-oai
- #18867 沙盒化:具体化 cwd-relative 权限全局 @bolinfest
- #18915 fix: windows 快照 external_agent_config_migration::tests::prompt_snapshot 与 windows 输出不匹配 @bolinfest
- #18416 添加每轮环境选择 @starr-openai
- #18391 fix(core): 为 apply_patch 编辑触发 hooks @fcoury-oai
- #18916 test(core): 将提示调试覆盖率移至集成套件 @bolinfest
- #17820 feat: 为 OpenAI 兼容模型提供商添加 AWS SigV4 认证 @celia-oai
- #18913 bazel: 运行封装 Rust 单元测试分片 @bolinfest
- #18452 feat: 支持远程插件列表/读取。 @xl-openai
- #18936 修复远程应用服务器关闭竞争 @bolinfest
- #18871 refactor: 添加代理身份 crate @efrazer-oai
- #18276 exec-server: 携带文件系统沙盒配置文件 @bolinfest
- #18926 ci: 保持参数注释链接检查具体化 @bolinfest
- #18935 保持 TUI 状态表面同步 @etraut-openai
- #18923 chore(tui) 调试配置 guardian_policy_config @dylan-hurd-oai
- #18943 tests: 序列化进程密集型 Windows CI 套件 @bolinfest
- #18934 [codex] 清理监护人说明 @dylan-hurd-oai
- #18948 chore: 移除未使用的 Bedrock 认证懒加载 @celia-oai
- #18277 core: 派生活动权限配置文件 @bolinfest
- #18785 feat: 添加显式 AgentIdentity 认证模式 @efrazer-oai
- #18953 为 codex 沙盒窗口使用长期会话 @iceweasel-oai
- #18278 app-server: 公开线程权限配置文件 @bolinfest
- #17693 [codex-analytics] 监护人审查分析事件发射 @rhan-oai
- #17695 [codex-analytics] 监护人审查截断 @rhan-oai
- #17696 [codex-analytics] 监护人审查 TTFT 管道与发射 @rhan-oai
- #18962 nit: 公开库 @jif-oai
- #18502 支持线程列表的多个 cwd 过滤器 @acrognale-oai
- #18968 fix: wait_agent 对已排队邮箱邮件超时 @jif-oai
- #18971 fix: cargo deny @jif-oai
- #18973 chore: 为 AB 准备记忆 @jif-oai
- #18852 [codex] 更新 imagegen 系统技能 @vb-openai
- #18865 阶段发布 Python 运行时 wheel @sdcoffey
- #18932 TUI: 保持远程应用服务器事件排出 @etraut-openai
- #18877 [rollout_trace] 记录核心会话 rollout 跟踪 @cassirer-openai
- #18959 feat(auto-review) 策略配置 @dylan-hurd-oai
- #18955 添加批准存储的 Auto-Review 拒绝的管道 @won-openai
- #18999 arg0: 在异步主循环中保持调度别名存活 @bolinfest
- #18925 feat: 在上下文预算内公平修剪技能描述 @xl-openai
- #18890 feat(auto-review) 短路 @dylan-hurd-oai
- #18279 app-server: 接受权限配置文件覆盖 @bolinfest
- #18582 [2/4] 实现执行器 HTTP 请求运行器 @aibrahim-oai
- #18197 feat: 添加监护人网络批准触发器上下文 @viyatb-oai
- #19033 修复 MCP 权限策略同步 @leoshimo-oai
- #19016 exec-server: 向 fs 沙盒公开 arg0 别名根 @bolinfest
- #19036 覆盖状态数据库 git 元数据以过滤线程列表 @joeytrasatti-openai
- #18956 [Codex] 注册浏览器需求功能键 @khoi-oai
- #19043 更新捆绑的 OpenAI Docs 技能新鲜度检查 @kkahadze-oai
- #18504 重命名批准审查器配置为 auto-review @won-openai
- #19046 exec-server: 要求显式文件系统沙盒 cwd @bolinfest
- #18280 clients: 向应用服务器发送权限配置文件 @bolinfest
- #18281 rollout: 持久化轮次权限配置文件 @bolinfest
- #18888 hooks: 当 exec_command 通过 write_stdin 完成时发射 Bash PostToolUse @eternal-openai
- #19056 将批准审查器变体重命名为 auto-review @won-openai
- #18583 [3/4] 添加执行器支持的 RMCP HTTP 客户端 @aibrahim-oai
- #19059 core: 装箱多代理包装器 futures @bolinfest
- #19031 修复相对 stdio MCP cwd 回退 @mzeng-openai
- #19063 chore(auto-review) feature => stable @dylan-hurd-oai
- #19050 feat(request-permissions) 严格审查批准 @dylan-hurd-oai
- #19067 test: 设置 Rust 测试线程堆栈大小 @bolinfest
- #19072 tui: 修复批准弹出窗口禁用快捷键测试 @bolinfest
- #18893 codex: 在 config.toml 和 requirements.toml 中支持 hooks @eternal-openai
- #18282 protocol: 报告会话权限配置文件 @bolinfest
- #19053 符合条件的 ChatGPT 套餐默认 Fast 服务层级 @shijie-oai
- #19055 添加安全检查通知和错误处理 @etraut-openai
- #18283 app-server: 接受命令权限配置文件 @bolinfest
- #19012 将 codex_hooks 标记为稳定 @abhinav-oai
- #18924 TUI: 旁侧对话后保留权限状态 @etraut-openai
- #19071 添加 computer_use 功能需求键 @leoshimo-oai
- #19079 使用远程插件 ID 进行详情读取并扩大列表页面 @xl-openai
- #19038 feat: 对未知功能需求警告并继续 @xl-openai
- #19078 澄清云需求错误消息 @gverma-openai
- #19085 模型升级时持久化目标默认推理 @shijie-oai
- #19086 app-server: 在权限请求中包含文件系统条目 @bolinfest
- #18385 在 hooks 中支持 MCP 工具 @abhinav-oai
- #19113 修复 auto-review 配置在协议和 SDK 间的兼容性 @won-openai
## New Features
- The TUI now has quick reasoning controls: `Alt+,` lowers reasoning, `Alt+.` raises it, and accepted model upgrades now reset reasoning to the new model’s default instead of carrying over stale settings. (#18866, #19085)
- App-server sessions can now manage multiple environments and choose an environment and working directory per turn, which makes multi-workspace and remote setups easier to target precisely. (#18401, #18416)
- Added first-class Amazon Bedrock support for OpenAI-compatible providers, including AWS SigV4 signing and AWS credential-based auth. (#17820)
- Remote plugin marketplaces can now be listed and read directly, with more reliable detail lookups and larger result pages. (#18452, #19079)
- Hooks are now stable, can be configured inline in `config.toml` and managed `requirements.toml`, and can observe MCP tools as well as `apply_patch` and long-running Bash sessions. (#18893, #18385, #18391, #18888, #19012)
- Eligible ChatGPT plans now default to the Fast service tier unless you explicitly opt out. (#19053)
## Bug Fixes
- Preserved Cloudflare cookies across approved ChatGPT hosts, reducing auth breakage in HTTP-backed ChatGPT flows. (#17783)
- Fixed remote app-server reliability issues so websocket events keep draining under load and shutdown no longer fails when the remote worker exits during cleanup. (#18932, #18936)
- Fixed permission-mode drift so `/permissions` changes survive side conversations and updated Full Access state is correctly reflected in MCP approval handling. (#18924, #19033)
- Fixed `wait_agent` so it returns promptly when mailbox work is already queued instead of waiting for a fresh notification or timing out. (#18968)
- Fixed local stdio MCP launches for relative commands without an explicit `cwd`, bringing fallback path resolution in line with CLI behavior. (#19031)
- Startup now fails less often on managed config edge cases: unknown feature requirements warn instead of aborting, and cloud-requirements errors are clearer about what failed. (#19038, #19078)
## Changelog
Full Changelog: https://github.com/openai/codex/compare/rust-v0.123.0...rust-v0.124.0
- #18870 Load app-server config through ConfigManager @pakrym-oai
- #18866 feat(tui): shortcuts to change reasoning level temporarily @fcoury-oai
- #18430 app-server: implement device key v2 methods @euroelessar
- #18757 fix: fully revert agent identity runtime wiring @efrazer-oai
- #17783 Preserve Cloudfare HTTP cookies in codex @shijie-oai
- #18876 [rollout_trace] Add rollout trace crate @cassirer-openai
- #18401 Support multiple managed environments @starr-openai
- #18797 Allow guardian bare allow output @maja-openai
- #18886 Normalize /statusline & /title items @canvrno-oai
- #18768 [codex] Tighten external migration prompt tests @alexsong-oai
- #18909 Update /statusline and /title snapshots @canvrno-oai
- #18867 sandboxing: materialize cwd-relative permission globs @bolinfest
- #18915 fix: windows snapshot for external_agent_config_migration::tests::prompt_snapshot did not match windows output @bolinfest
- #18416 Add turn-scoped environment selections @starr-openai
- #18391 fix(core): emit hooks for apply_patch edits @fcoury-oai
- #18916 test(core): move prompt debug coverage to integration suite @bolinfest
- #17820 feat: add AWS SigV4 auth for OpenAI-compatible model providers @celia-oai
- #18913 bazel: run wrapped Rust unit test shards @bolinfest
- #18452 feat: Support remote plugin list/read. @xl-openai
- #18936 Fix remote app-server shutdown race @bolinfest
- #18871 refactor: add agent identity crate @efrazer-oai
- #18276 exec-server: carry filesystem sandbox profiles @bolinfest
- #18926 ci: keep argument comment lint checks materialized @bolinfest
- #18935 Keep TUI status surfaces in sync @etraut-openai
- #18923 chore(tui) debug-config guardian_policy_config @dylan-hurd-oai
- #18943 tests: serialize process-heavy Windows CI suites @bolinfest
- #18934 [codex] Clean guardian instructions @dylan-hurd-oai
- #18948 chore: remove unused Bedrock auth lazy loading @celia-oai
- #18277 core: derive active permission profiles @bolinfest
- #18785 feat: add explicit AgentIdentity auth mode @efrazer-oai
- #18953 use long-lived sessions for codex sandbox windows @iceweasel-oai
- #18278 app-server: expose thread permission profiles @bolinfest
- #17693 [codex-analytics] guardian review analytics events emission @rhan-oai
- #17695 [codex-analytics] guardian review truncation @rhan-oai
- #17696 [codex-analytics] guardian review TTFT plumbing and emission @rhan-oai
- #18962 nit: expose lib @jif-oai
- #18502 Support multiple cwd filters for thread list @acrognale-oai
- #18968 fix: wait_agent timeout for queued mailbox mail @jif-oai
- #18971 fix: cargo deny @jif-oai
- #18973 chore: prep memories for AB @jif-oai
- #18852 [codex] Update imagegen system skill @vb-openai
- #18865 Stage publishable Python runtime wheels @sdcoffey
- #18932 TUI: Keep remote app-server events draining @etraut-openai
- #18877 [rollout_trace] Record core session rollout traces @cassirer-openai
- #18959 feat(auto-review) policy config @dylan-hurd-oai
- #18955 Add plumbing to approve stored Auto-Review denials @won-openai
- #18999 arg0: keep dispatch aliases alive during async main @bolinfest
- #18925 feat: Fairly trim skill descriptions within context budget @xl-openai
- #18890 feat(auto-review) short-circuit @dylan-hurd-oai
- #18279 app-server: accept permission profile overrides @bolinfest
- #18582 [2/4] Implement executor HTTP request runner @aibrahim-oai
- #18197 feat: add guardian network approval trigger context @viyatb-oai
- #19033 Fix MCP permission policy sync @leoshimo-oai
- #19016 exec-server: expose arg0 alias root to fs sandbox @bolinfest
- #19036 Overlay state DB git metadata for filtered thread lists @joeytrasatti-openai
- #18956 [Codex] Register browser requirements feature keys @khoi-oai
- #19043 Update bundled OpenAI Docs skill freshness check @kkahadze-oai
- #18504 Rebrand approvals reviewer config to auto-review @won-openai
- #19046 exec-server: require explicit filesystem sandbox cwd @bolinfest
- #18280 clients: send permission profiles to app-server @bolinfest
- #18281 rollout: persist turn permission profiles @bolinfest
- #18888 hooks: emit Bash PostToolUse when exec_command completes via write_stdin @eternal-openai
- #19056 Rename approvals reviewer variant to auto-review @won-openai
- #18583 [3/4] Add executor-backed RMCP HTTP client @aibrahim-oai
- #19059 core: box multi-agent wrapper futures @bolinfest
- #19031 Fix relative stdio MCP cwd fallback @mzeng-openai
- #19063 chore(auto-review) feature => stable @dylan-hurd-oai
- #19050 feat(request-permissions) approve with strict review @dylan-hurd-oai
- #19067 test: set Rust test thread stack size @bolinfest
- #19072 tui: fix approvals popup disabled shortcut test @bolinfest
- #18893 codex: support hooks in config.toml and requirements.toml @eternal-openai
- #18282 protocol: report session permission profiles @bolinfest
- #19053 Default Fast service tier for eligible ChatGPT plans @shijie-oai
- #19055 Add safety check notification and error handling @etraut-openai
- #18283 app-server: accept command permission profiles @bolinfest
- #19012 Mark codex_hooks stable @abhinav-oai
- #18924 TUI: preserve permission state after side conversations @etraut-openai
- #19071 Add computer_use feature requirement key @leoshimo-oai
- #19079 Use remote plugin IDs for detail reads and enlarge list pages @xl-openai
- #19038 feat: Warn and continue on unknown feature requirements @xl-openai
- #19078 Clarify cloud requirements error messages @gverma-openai
- #19085 Persist target default reasoning on model upgrade @shijie-oai
- #19086 app-server: include filesystem entries in permission requests @bolinfest
- #18385 Support MCP tools in hooks @abhinav-oai
- #19113 Fix auto-review config compatibility across protocol and SDK @won-openai