## 新功能
- 应用服务器集成现支持 Unix 套接字传输、适合分页的恢复/分支操作、粘性环境以及远程线程配置/存储管道。(#18255、#18892、#18897、#18908、#19008、#19014)
- 应用服务器插件管理可安装远程插件并升级已配置的插件市场。(#18917、#19074)
- 权限配置文件现可在 TUI 会话、用户回合、MCP 沙箱状态、权限提升以及应用服务器 API 之间完整往返传递。(#18284、#18285、#18286、#18287、#19231)
- 模型提供商现负责模型发现功能,并向应用客户端公开 AWS/Bedrock 账户状态。(#18950、#19048)
- `codex exec --json` 现可向程序化消费者报告推理令牌使用情况。(#19308)
- 部署追踪现可记录工具、代码模式、会话及多智能体关系,并提供调试缩减命令以供检查。(#18878、#18879、#18880)
## 问题修复
- 中断 `/review` 并退出 TUI 将不再导致在委托启动或取消订阅时界面卡死。(#18921)
- 执行服务器在进程退出后不再丢弃缓冲输出,且能正确等待流关闭。(#18946、#19130)
- 应用服务器现尊重明确标记为不受信任的项目配置,而非自动持久化信任。(#18626)
- WebSocket 应用服务器客户端在大量回合和工具输出通知期间更不易断开连接。(#19246)
- Windows 沙箱启动能更好处理多个 CLI 版本和已安装的应用目录,且后台 `Start-Process` 调用不再显示可见的 PowerShell 窗口。(#19044、#19180、#19214)
- 配置/模式处理现会拒绝冲突的 MultiAgentV2 线程限制、解析相对智能体角色配置路径、隐藏不支持的 MCP 持有者令牌字段,并拒绝无效的 `js_repl` 图像 MIME 类型。(#19129、#19261、#19294、#19292)
## 文档
- 应用服务器文档及生成的模式已针对新传输、线程、市场、粘性环境及权限配置文件 API 进行更新。(#18255、#18897、#19014、#19074、#19231)
- 部署追踪文档现已涵盖调试追踪缩减工作流程。(#18880)
## 维护任务
- 已根据最新模型目录和推理默认值更新 `models.json` 及相关核心、应用服务器、SDK 和 TUI 测试 fixture。(#19323)
- Windows Bazel CI 现使用稳定的 PATH 和共享查询启动路径以提高缓存复用率。(#19161、#19232)
- 插件市场添加/移除/启动同步内部逻辑已从 `codex-core` 移出,且策划的插件缓存版本现使用短 SHA。(#19099、#19095)
- 在导致 Alpha 启动失败后,已回退 macOS 签名权限变更。(#19167、#19350)
- 已稳定易失败的批准弹窗及插件 MCP 工具发现测试。(#19178、#19191)
## 更新日志
完整更新日志:https://github.com/openai/codex/compare/rust-v0.124.0...rust-v0.125.0
- #19129 拒绝 multi_agent_v2 中的 agents.max_threads @jif-oai
- #19130 exec-server:在观察到退出后等待关闭 @jif-oai
- #19149 更新安全检查措辞 @etraut-openai
- #18284 tui:同步会话权限配置文件 @bolinfest
- #18710 [codex] 修复插件市场帮助用法 @xli-oai
- #19127 feat:移除生成的智能体上下文指令 @jif-oai
- #18892 添加远程线程配置加载器原型 @rasmusrygaard
- #19014 为 thread/resume 和 thread/fork 添加 excludeTurns 参数 @ddr-oai
- #18882 [codex] 通过 ThreadStore 路由实时线程写入 @wiltzius-openai
- #19008 [codex] 实现远程线程存储方法 @wiltzius-openai
- #18626 尊重明确的不受信任项目配置 @etraut-openai
- #18255 app-server:添加 Unix 套接字传输 @euroelessar
- #19167 ci:添加 macOS 钥匙串权限 @euroelessar
- #19099 将市场添加/移除及启动同步移出核心。 @xl-openai
- #19168 对回退理由使用“自动审查”措辞 @maja-openai
- #18908 添加远程线程配置端点 @rasmusrygaard
- #18285 tui:在用户回合中携带权限配置文件 @bolinfest
- #18286 mcp:在沙箱状态中包含权限配置文件 @bolinfest
- #18878 [rollout_trace] 追踪工具和代码模式边界 @cassirer-openai
- #18287 shell-escalation:携带已解析的权限配置文件 @bolinfest
- #18946 fix(exec-server):在流关闭前保留输出 @bolinfest
- #19074 添加应用服务器市场升级 RPC @xli-oai
- #19180 为 .sandbox-bin 中的命令运行程序二进制文件使用版本特定后缀 @iceweasel-openai
- #19178 稳定批准弹窗禁用行测试 @etraut-openai
- #18921 修复 /review 中断和 TUI 退出卡顿 @etraut-openai
- #19191 稳定插件 MCP 工具测试 @etraut-openai
- #19194 将 hooks 模式 fixture 标记为已生成 @abhinav-openai
- #18288 tests:将批准 fixture 与主机规则隔离 @bolinfest
- #19044 引导 Windows 对 Start-Process 调用使用 -WindowStyle Hidden @iceweasel-openai
- #19214 不在已安装 codex 目录上尝试 ACL @iceweasel-openai
- #19161 ci:为缓存稳定的 Windows Bazel PATH 推导 @bolinfest
- #18811 refactor:通过 AuthProvider 路由 Codex 认证 @efrazer-openai
- #19246 增加应用服务器 WebSocket 出站缓冲区 @etraut-openai
- #19048 feat:从 account/read 公开 AWS 账户状态 @celia-openai
- #18880 [rollout_trace] 添加调试追踪缩减命令 @cassirer-openai
- #18897 添加粘性环境 API 和线程状态 @starr-openai
- #18879 [rollout_trace] 追踪会话和多智能体边缘 @cassirer-openai
- #19095 feat:为策划的插件缓存条目使用短 SHA 版本 @xl-openai
- #18950 feat:让模型提供商拥有模型发现权 @celia-openai
- #19206 app-server:在 sqlite 中持久化设备键绑定 @euroelessar
- #18917 [codex] 支持远程插件安装写入 @xli-oai
- #19231 permissions:使配置文件代表执行 @bolinfest
- #19261 从层解析相对智能体角色配置路径 @etraut-openai
- #19232 ci:为目标发现查询复用 Bazel CI 启动 @bolinfest
- #19292 拒绝不支持的 js_repl 图像 MIME 类型 @etraut-openai
- #19247 chore:将截断策略应用于 unified_exec @sayan-openai
- #19294 从配置模式中隐藏不支持的 MCP bearer_token @etraut-openai
- #19308 在 exec JSON 使用情况中显示推理令牌 @etraut-openai
- #19323 更新 models.json 及相关 fixture @sayan-openai
- #19350 修复 Alpha 构建 @jif-oai
## New Features
- App-server integrations now support Unix socket transport, pagination-friendly resume/fork, sticky environments, and remote thread config/store plumbing. (#18255, #18892, #18897, #18908, #19008, #19014)
- App-server plugin management can install remote plugins and upgrade configured marketplaces. (#18917, #19074)
- Permission profiles now round-trip across TUI sessions, user turns, MCP sandbox state, shell escalation, and app-server APIs. (#18284, #18285, #18286, #18287, #19231)
- Model providers now own model discovery, with AWS/Bedrock account state exposed to app clients. (#18950, #19048)
- `codex exec --json` now reports reasoning-token usage for programmatic consumers. (#19308)
- Rollout tracing now records tool, code-mode, session, and multi-agent relationships, with a debug reducer command for inspection. (#18878, #18879, #18880)
## Bug Fixes
- Interrupting `/review` and exiting the TUI no longer leaves the interface wedged on delegate startup or unsubscribe. (#18921)
- Exec-server no longer drops buffered output after process exit and now waits correctly for stream closure. (#18946, #19130)
- App-server now respects explicitly untrusted project config instead of auto-persisting trust. (#18626)
- WebSocket app-server clients are less likely to disconnect during bursts of turn and tool-output notifications. (#19246)
- Windows sandbox startup handles multiple CLI versions and installed app directories better, and background `Start-Process` calls avoid visible PowerShell windows. (#19044, #19180, #19214)
- Config/schema handling now rejects conflicting MultiAgentV2 thread limits, resolves relative agent-role config paths, hides unsupported MCP bearer-token fields, and rejects invalid `js_repl` image MIME types. (#19129, #19261, #19294, #19292)
## Documentation
- App-server docs and generated schemas were refreshed for the new transport, thread, marketplace, sticky environment, and permission-profile APIs. (#18255, #18897, #19014, #19074, #19231)
- Rollout-trace documentation now covers the debug trace reduction workflow. (#18880)
## Chores
- Refreshed `models.json` and related core, app-server, SDK, and TUI fixtures for the latest model catalog and reasoning defaults. (#19323)
- Windows Bazel CI now uses a stable PATH and shared query startup path for better cache reuse. (#19161, #19232)
- Plugin marketplace add/remove/startup-sync internals moved out of `codex-core`, and curated plugin cache versions now use short SHAs. (#19099, #19095)
- Reverted a macOS signing entitlement change after it caused alpha startup failures. (#19167, #19350)
- Stabilized flaky approval-popup and plugin MCP tool-discovery tests. (#19178, #19191)
## Changelog
Full Changelog: https://github.com/openai/codex/compare/rust-v0.124.0...rust-v0.125.0
- #19129 Reject agents.max_threads with multi_agent_v2 @jif-oai
- #19130 exec-server: wait for close after observed exit @jif-oai
- #19149 Update safety check wording @etraut-openai
- #18284 tui: sync session permission profiles @bolinfest
- #18710 [codex] Fix plugin marketplace help usage @xli-oai
- #19127 feat: drop spawned-agent context instructions @jif-oai
- #18892 Add remote thread config loader protos @rasmusrygaard
- #19014 Add excludeTurns parameter to thread/resume and thread/fork @ddr-oai
- #18882 [codex] Route live thread writes through ThreadStore @wiltzius-openai
- #19008 [codex] Implement remote thread store methods @wiltzius-openai
- #18626 Respect explicit untrusted project config @etraut-openai
- #18255 app-server: add Unix socket transport @euroelessar
- #19167 ci: add macOS keychain entitlements @euroelessar
- #19099 Move marketplace add/remove and startup sync out of core. @xl-openai
- #19168 Use Auto-review wording for fallback rationale @maja-openai
- #18908 Add remote thread config endpoint @rasmusrygaard
- #18285 tui: carry permission profiles on user turns @bolinfest
- #18286 mcp: include permission profiles in sandbox state @bolinfest
- #18878 [rollout_trace] Trace tool and code-mode boundaries @cassirer-openai
- #18287 shell-escalation: carry resolved permission profiles @bolinfest
- #18946 fix(exec-server): retain output until streams close @bolinfest
- #19074 Add app-server marketplace upgrade RPC @xli-oai
- #19180 use a version-specific suffix for command runner binary in .sandbox-bin @iceweasel-oai
- #19178 Stabilize approvals popup disabled-row test @etraut-openai
- #18921 Fix /review interrupt and TUI exit wedges @etraut-openai
- #19191 Stabilize plugin MCP tools test @etraut-openai
- #19194 Mark hooks schema fixtures as generated @abhinav-oai
- #18288 tests: isolate approval fixtures from host rules @bolinfest
- #19044 guide Windows to use -WindowStyle Hidden for Start-Process calls @iceweasel-oai
- #19214 do not attempt ACLs on installed codex dir @iceweasel-oai
- #19161 ci: derive cache-stable Windows Bazel PATH @bolinfest
- #18811 refactor: route Codex auth through AuthProvider @efrazer-oai
- #19246 Increase app-server WebSocket outbound buffer @etraut-openai
- #19048 feat: expose AWS account state from account/read @celia-oai
- #18880 [rollout_trace] Add debug trace reduction command @cassirer-openai
- #18897 Add sticky environment API and thread state @starr-openai
- #18879 [rollout_trace] Trace sessions and multi-agent edges @cassirer-openai
- #19095 feat: Use short SHA versions for curated plugin cache entries @xl-openai
- #18950 feat: let model providers own model discovery @celia-oai
- #19206 app-server: persist device key bindings in sqlite @euroelessar
- #18917 [codex] Support remote plugin install writes @xli-oai
- #19231 permissions: make profiles represent enforcement @bolinfest
- #19261 Resolve relative agent role config paths from layers @etraut-openai
- #19232 ci: reuse Bazel CI startup for target-discovery queries @bolinfest
- #19292 Reject unsupported js_repl image MIME types @etraut-openai
- #19247 chore: apply truncation policy to unified_exec @sayan-oai
- #19294 Hide unsupported MCP bearer_token from config schema @etraut-openai
- #19308 Surface reasoning tokens in exec JSON usage @etraut-openai
- #19323 Update models.json and related fixtures @sayan-oai
- #19350 fix alpha build @jif-oai