## 新功能
- 新增内置的 `amazon-bedrock` 模型提供商,支持可配置的 AWS 配置文件(#18744)。
- 新增 `/mcp verbose` 命令,可提供完整的 MCP 服务器诊断、资源及资源模板信息,同时保持 `/mcp` 命令的快速响应(#18610)。
- 使插件 MCP 加载同时支持 `.mcp.json` 中的 `mcpServers` 和顶级服务器映射(#18780)。
- 改进了实时交接功能,使后台代理能接收转录增量,并在适当时刻明确保持静默(#18597、#18761、#18635)。
- 为远程环境添加了主机特定的 `remote_sandbox_config` 要求(#18763)。
- 更新了捆绑的模型元数据,包括当前 `gpt-5.4` 的默认设置(#18586、#18388、#18719)。
## 问题修复
- 修复回滚后 `/copy` 命令的行为,使其复制最新可见的助手响应,而非回滚前的响应(#18739)。
- 在手动 shell 命令运行期间排队等待后续文本输入,防止出现卡在“工作中”状态(#18820)。
- 通过禁用增强键盘模式,修复了 VS Code WSL 终端中的 Unicode/死键输入问题(#18741)。
- 防止从 shell 快照恢复过时的代理环境变量(#17271)。
- 使 `codex exec` 继承根级别的共享标志,如沙箱和模型选项(#18630)。
- 从 TUI 转录中移除泄露的审查提示(#18659)。
## 文档
- 新增并优化了 Codex 驱动代码审查所使用的代码审查技能说明(#18746、#18818)。
- 记录了有意持有锁的等待情况,并为这些情况启用了 Clippy 检查(#18423、#18698)。
- 更新了应用服务器协议文档,涵盖无线程 MCP 资源读取和命名空间动态工具(#18292、#18413)。
## 杂项
- 通过锁定修补后的 JS 和 Rust 依赖项,修复了高严重性依赖警报(#18167)。
- 在保留有用回溯信息的同时,降低了 Rust 开发构建的调试信息开销(#18844)。
- 根据当前架构刷新了生成的 Python 应用服务器 SDK 类型(#18862)。
## 更新日志
完整更新日志:https://github.com/openai/codex/compare/rust-v0.122.0...rust-v0.123.0
- #18662 功能:添加跟踪内存使用情况对话轮次的指标 @jif-oai
- #18659 杂项:从 TUI UX 中移除审查提示 @jif-oai
- #18661 功能:设置客户端使用的最低日志级别 @jif-oai
- #18094 [codex] 为后端调用使用后台代理任务认证 @adrian-openai
- #18441 避免错误的 shell 快照清理警告 @etraut-openai
- #18260 [codex] 为额外的后端调用使用后台任务认证 @adrian-openai
- #18657 修复:测试中的 auth.json 泄露 @jif-oai
- #18610 为 /mcp 添加详细诊断信息 @etraut-openai
- #18633 在 TUI 选择器中使用应用服务器线程名称 @etraut-openai
- #18591 在侧边对话中显示父线程状态 @etraut-openai
- #18361 codex:将 thread/name/set 和 thread/memoryModeSet 移至 ThreadStore @wiltzius-openai
- #18274 协议:规范化文件系统权限 @bolinfest
- #18403 重构:对异步串行化门使用信号量 @bolinfest
- #18586 更新 models.json @aibrahim-oai
- #18289 通过 app_server 连接 PatchUpdated 事件 @akshaynathan
- #18631 移除简单的 TUI legacy_core 重新导出 @etraut-openai
- #18697 [codex] 修复代理身份认证测试装置 @adrian-openai
- #18388 更新 models.json @github-actions
- #18167 [codex] 修复高严重性依赖警报 @caseysilver-oai
- #17692 [codex-analytics] 监护人审查分析架构优化 @rhan-oai
- #18722 杂项(guardian):禁用 mcps 和插件 @dylan-hurd-oai
- #18597 更新实时交接转录处理 @guinness-oai
- #18627 显示 TUI 技能刷新失败 @etraut-openai
- #18719 修复过时的模型测试装置 @aibrahim-oai
- #18714 添加实验性远程线程存储配置 @wiltzius-openai
- #18739 修复(tui):使 /copy 与回滚保持一致 @fcoury-oai
- #18701 [codex] 优先使用继承的生成代理模型 @tibo-openai
- #18632 使用应用服务器元数据作为 fork 父标题 @etraut-openai
- #18112 功能:级联线程归档 @jif-oai
- #18716 通过线程存储读取对话摘要 @wiltzius-openai
- #18635 添加实时静默工具 @guinness-oai
- #18254 uds:添加异步 Unix socket crate @euroelessar
- #18746 添加代码审查技能 @pakrym-oai
- #18208 添加会话配置加载器接口 @rasmusrygaard
- #18753 将 TUI 应用模块重构为子模块 @etraut-openai
- #18630 修复 exec 对根共享标志的继承 @etraut-openai
- #18027 [6/6] 断开连接后使 exec 客户端操作失败 @aibrahim-oai
- #17271 修复:修复 shell 快照后过时代理环境恢复 @viyatb-oai
- #18602 信任 Git 子目录时发出警告 @etraut-openai
- #18761 [codex] 在交接时发送实时转录增量 @guinness-oai
- #18435 /statusline & /title - 共享预览值 @canvrno-oai
- #18744 功能:添加内置 Amazon Bedrock 模型提供商 @celia-oai
- #18581 [1/4] 添加执行器 HTTP 请求协议 @aibrahim-oai
- #18418 重构:缩小异步锁范围 @bolinfest
- #18780 功能:支持更多插件 MCP 文件格式。 @xl-openai
- #18713 协议:在权限配置文件中保留全局扫描深度 @bolinfest
- #18795 修复(guardian)禁用功能时不要硬错误 @dylan-hurd-oai
- #18292 使 MCP 资源读取无线程 @mzeng-openai
- #18786 TUI 技能提及的回退显示名称 @canvrno-oai
- #18807 杂项(app-server)linguist 生成 @dylan-hurd-oai
- #18393 功能(自动审查):处理 request_permissions 调用 @dylan-hurd-oai
- #18763 将 remote_sandbox_config 添加到我们的配置要求中 @abhinav-oai
- #18794 组织上下文片段 @pakrym-oai
- #18423 杂项:记录有意持有锁的等待情况 @bolinfest
- #18698 杂项:启用持有锁的 Clippy 检查 @bolinfest
- #18413 [工具搜索] 支持命名空间的延迟动态工具 @pash-openai
- #18818 [codex] 优化代码审查技能措辞 @pakrym-oai
- #18271 在 TUI 中显示 bash 模式 @abhinav-oai
- #18741 修复(tui):为 VS Code WSL 禁用增强键 @fcoury-oai
- #18850 将外部代理配置移出核心 @pakrym-oai
- #18844 构建:减少 Rust 开发调试信息 @bolinfest
- #18848 功能:基线库 @jif-oai
- #18846 核心:将 test-log 设为开发依赖 @bolinfest
- #18428 应用服务器:定义设备密钥 v2 协议 @euroelessar
- #18093 在 MCP 工具元数据中传播线程 ID @rennie-openai
- #17836 [codex] 添加感知 tmux 的 OSC 9 通知 @caseychow-oai
- #18820 在用户 shell 命令期间排队后续输入 @etraut-openai
- #18858 稳定调试清除记忆集成测试 @jif-oai
- #18799 将 TUI 应用测试移至其覆盖的模块 @etraut-openai
- #18442 将应用服务器配置加载重构为 ConfigManager @pakrym-oai
- #18813 将 DeveloperInstructions 拆分为独立片段。 @pakrym-oai
- #18275 沙箱:语义化交叉权限配置文件 @bolinfest
- #18862 刷新生成的 Python 应用服务器 SDK 类型 @sdcoffey
- #15578 添加 Windows 沙箱统一执行运行时支持 @iceweasel-oai
- #18429 应用服务器:添加 codex-device-key crate @euroelessar
- #18872 应用服务器:修复 Bazel Clippy 在跟踪测试中的问题 @euroelessar
- #18885 在我修复时跳过损坏的测试 @iceweasel-oai
- #18873 杂项:默认多代理 v2 fork 为全部 @jif-oai
## New Features
- Added a built-in `amazon-bedrock` model provider with configurable AWS profile support (#18744).
- Added `/mcp verbose` for full MCP server diagnostics, resources, and resource templates while keeping plain `/mcp` fast (#18610).
- Made plugin MCP loading accept both `mcpServers` and top-level server maps in `.mcp.json` (#18780).
- Improved realtime handoffs so background agents receive transcript deltas and can explicitly stay silent when appropriate (#18597, #18761, #18635).
- Added host-specific `remote_sandbox_config` requirements for remote environments (#18763).
- Refreshed bundled model metadata, including the current `gpt-5.4` default (#18586, #18388, #18719).
## Bug Fixes
- Fixed `/copy` after rollback so it copies the latest visible assistant response, not a pre-rollback response (#18739).
- Queued normal follow-up text submitted while a manual shell command is running, preventing stuck `Working` states (#18820).
- Fixed Unicode/dead-key input in VS Code WSL terminals by disabling the enhanced keyboard mode there (#18741).
- Prevented stale proxy environment variables from being restored from shell snapshots (#17271).
- Made `codex exec` inherit root-level shared flags such as sandbox and model options (#18630).
- Removed leaked review prompts from TUI transcripts (#18659).
## Documentation
- Added and tightened the Code Review skill instructions used by Codex-driven reviews (#18746, #18818).
- Documented intentional await-across-lock cases and enabled Clippy linting for them (#18423, #18698).
- Updated app-server protocol docs for threadless MCP resource reads and namespaced dynamic tools (#18292, #18413).
## Chores
- Fixed high-severity dependency alerts by pinning patched JS and Rust dependencies (#18167).
- Reduced Rust dev build debug-info overhead while preserving useful backtraces (#18844).
- Refreshed generated Python app-server SDK types from the current schema (#18862).
## Changelog
Full Changelog: https://github.com/openai/codex/compare/rust-v0.122.0...rust-v0.123.0
- #18662 feat: add metric to track the number of turns with memory usage @jif-oai
- #18659 chore: drop review prompt from TUI UX @jif-oai
- #18661 feat: log client use min log level @jif-oai
- #18094 [codex] Use background agent task auth for backend calls @adrian-openai
- #18441 Avoid false shell snapshot cleanup warnings @etraut-openai
- #18260 [codex] Use background task auth for additional backend calls @adrian-openai
- #18657 fix: auth.json leak in tests @jif-oai
- #18610 Add verbose diagnostics for /mcp @etraut-openai
- #18633 Use app server thread names in TUI picker @etraut-openai
- #18591 Surface parent thread status in side conversations @etraut-openai
- #18361 codex: move thread/name/set and thread/memoryModeSet into ThreadStore @wiltzius-openai
- #18274 protocol: canonicalize file system permissions @bolinfest
- #18403 refactor: use semaphores for async serialization gates @bolinfest
- #18586 Update models.json @aibrahim-oai
- #18289 Wire the PatchUpdated events through app_server @akshaynathan
- #18631 Remove simple TUI legacy_core reexports @etraut-openai
- #18697 [codex] Fix agent identity auth test fixture @adrian-openai
- #18388 Update models.json @github-actions
- #18167 [codex] Fix high severity dependency alerts @caseysilver-oai
- #17692 [codex-analytics] guardian review analytics schema polishing @rhan-oai
- #18722 chore(guardian) disable mcps and plugins @dylan-hurd-oai
- #18597 Update realtime handoff transcript handling @guinness-oai
- #18627 Surface TUI skills refresh failures @etraut-openai
- #18719 Fix stale model test fixtures @aibrahim-oai
- #18714 Add experimental remote thread store config @wiltzius-openai
- #18739 fix(tui): keep /copy aligned with rollback @fcoury-oai
- #18701 [codex] prefer inherited spawn agent model @tibo-openai
- #18632 Use app server metadata for fork parent titles @etraut-openai
- #18112 feat: cascade thread archive @jif-oai
- #18716 Read conversation summaries through thread store @wiltzius-openai
- #18635 Add realtime silence tool @guinness-oai
- #18254 uds: add async Unix socket crate @euroelessar
- #18746 Add Code Review skill @pakrym-oai
- #18208 Add session config loader interface @rasmusrygaard
- #18753 Refactor TUI app module into submodules @etraut-openai
- #18630 Fix exec inheritance of root shared flags @etraut-openai
- #18027 [6/6] Fail exec client operations after disconnect @aibrahim-oai
- #17271 fix: fix stale proxy env restoration after shell snapshots @viyatb-oai
- #18602 Warn when trusting Git subdirectories @etraut-openai
- #18761 [codex] Send realtime transcript deltas on handoff @guinness-oai
- #18435 /statusline & /title - Shared preview values @canvrno-oai
- #18744 feat: add a built-in Amazon Bedrock model provider @celia-oai
- #18581 [1/4] Add executor HTTP request protocol @aibrahim-oai
- #18418 refactor: narrow async lock scopes @bolinfest
- #18780 feat: Support more plugin MCP file shapes. @xl-openai
- #18713 protocol: preserve glob scan depth in permission profiles @bolinfest
- #18795 fix(guardian) Dont hard error on feature disable @dylan-hurd-oai
- #18292 Make MCP resource read threadless @mzeng-openai
- #18786 Fallback display names for TUI skill mentions @canvrno-oai
- #18807 chore(app-server) linguist-generated @dylan-hurd-oai
- #18393 feat(auto-review) Handle request_permissions calls @dylan-hurd-oai
- #18763 Add remote_sandbox_config to our config requirements @abhinav-oai
- #18794 Organize context fragments @pakrym-oai
- #18423 chore: document intentional await-holding cases @bolinfest
- #18698 chore: enable await-holding clippy lints @bolinfest
- #18413 [tool search] support namespaced deferred dynamic tools @pash-openai
- #18818 [codex] Tighten code review skill wording @pakrym-oai
- #18271 show bash mode in the TUI @abhinav-oai
- #18741 fix(tui): disable enhanced keys for VS Code WSL @fcoury-oai
- #18850 Move external agent config out of core @pakrym-oai
- #18844 build: reduce Rust dev debuginfo @bolinfest
- #18848 feat: baseline lib @jif-oai
- #18846 core: make test-log a dev dependency @bolinfest
- #18428 app-server: define device key v2 protocol @euroelessar
- #18093 Propagate thread id in MCP tool metadata @rennie-openai
- #17836 [codex] Add tmux-aware OSC 9 notifications @caseychow-oai
- #18820 Queue follow-up input during user shell commands @etraut-openai
- #18858 Stabilize debug clear memories integration test @jif-oai
- #18799 Move TUI app tests to modules they cover @etraut-openai
- #18442 Refactor app-server config loading into ConfigManager @pakrym-oai
- #18813 Split DeveloperInstructions into individual fragments. @pakrym-oai
- #18275 sandboxing: intersect permission profiles semantically @bolinfest
- #18862 Refresh generated Python app-server SDK types @sdcoffey
- #15578 Add Windows sandbox unified exec runtime support @iceweasel-oai
- #18429 app-server: add codex-device-key crate @euroelessar
- #18872 app-server: fix Bazel clippy in tracing tests @euroelessar
- #18885 skip busted tests while I fix them @iceweasel-oai
- #18873 chore: default multi-agent v2 fork to all @jif-oai