## 新特性
- 新增可选的SOCKS5代理监听器,支持策略执行和配置开关控制 (#9803)
- 计划模式现在可将提议方案流式传输到专用TUI视图,并新增功能开关控制的`/plan`快捷指令实现快速模式切换 (#9786, #10103)
- 新增`/apps`命令用于浏览TUI中的连接器,并支持在应用提示中插入`$`符号 (#9728)
- 应用服务器现在支持外部认证模式,可接收宿主应用的ChatGPT认证令牌并在需要时请求刷新 (#10012)
- 智能审批功能现默认开启,对MCP工具调用显示明确审批提示 (#10286, #10200)
- 引入基于SQLite的日志数据库,配备改进的日志客户端、线程ID过滤、保留策略和启发式着色功能 (#10086, #10087, #10150, #10151, #10229, #10228)
## 问题修复
- MCP工具图像输出现在能可靠渲染,即使图像块不在首位或部分格式错误 (#9815)
- 输入历史召回现在能恢复本地图像附件和富文本元素 (#9628)
- 文件搜索现在能跟踪会话工作目录变化,支持多根遍历且性能更优 (#9279, #9939, #10240)
- 恢复线程时不再立即更新`updated_at`字段,直到首次对话实际开始 (#9950)
- Shell快照不再继承标准输入,避免启动脚本导致的挂起问题 (#9735)
- 当WebSocket代理失败时,连接会自动回退到HTTP协议 (#10139)
## 文档
- 记录了应用服务器AuthMode的使用方式和行为 (#10191)
## 项目维护
- Rust工具链升级至1.93版本 (#10080)
- 更新仓库中使用的pnpm版本 (#9992, #10161)
- Bazel构建和运行文件处理改进,包括远程缓存压缩 (#10079, #10098, #10102, #10104)
## 更新日志
完整更新日志: https://github.com/openai/codex/compare/rust-v0.92.0...rust-v0.93.0
- #9988 优化:改进工具描述 @jif-oai
- #9991 优化:改进未使用的提示 @jif-oai
- #9994 维护:清理编排器提示 @jif-oai
- #10001 后端客户端:添加get_config_requirements_file功能 @gt-oai
- #9992 将pnpm更新至10.28.2以解决安全问题 @mjr-openai
- #9993 角色类型中的描述 @jif-oai
- #9944 TUI底部:右对齐上下文并清晰降级快捷方式摘要和模式 @charley-oai
- #9803 特性(网络代理):添加带策略执行的SOCKS5代理 @viyatb-oai
- #9950 修复(应用服务器, 核心):将初始上下文写入回滚文件延迟到首次对话 @owenlin0
- #10003 特性:支持在SDK中指定--config标志 @bolinfest
- #9797 移除沙盒全局变量 @iceweasel-oai
- #10009 维护:为new()方法引入*Args类型 @bolinfest
- #10011 真正修复Windows上codex压缩包的pwd问题 @iceweasel-oai
- #10007 移除从SKILL.toml回退加载的功能 @alexsong-oai
- #10008 为DangerFullAccess沙盒策略启用实时网络搜索 @sayan-oai
- #9815 修复:无论顺序如何都能渲染MCP图像输出 @Kbediako
- #9654 在回调响应中显示OAuth错误描述 @blevy-oai
- #10030 澄清外部编辑器环境变量消息 @joshka-oai
- #9949 询问用户界面的TUI底部改进 @charley-oai
- #9359 TUI:稳定WSL上的快捷方式覆盖层快照 @slkzgm
- #10040 修复:支持按轮次更新网络搜索模式 @sayan-oai
- #10041 修复:允许模式中Notice字段的未知字段 @sayan-oai
- #9628 恢复输入历史时的图像附件/文本元素(上/下键) @charley-oai
- #9982 [技能] 运行带有依赖规范的技能时自动安装MCP依赖 @mzeng-openai
- #9986 修复(核心)信息清理 @dylan-hurd-oai
- #9941 提升设置失败时的错误代码/消息详情 @iceweasel-oai
- #9489 特性(核心) RequestRule @dylan-hurd-oai
- #10026 添加执行策略TOML表示 @gt-oai
- #9821 特性:codex exec自动订阅新线程 @jif-oai
- #10004 特性:sqlite数据库第一阶段 @jif-oai
- #10083 特性:按日期排序元数据 @jif-oai
- #10092 更新shell-tool-mcp.yml @dylan-hurd-oai
- #10079 [bazel] 启用远程缓存压缩 @zbarsky-openai
- #10025 优化request_user_input的TUI交互和选项体验 @charley-oai
- #10080 升级至rust 1.93 @zbarsky-openai
- #10095 更新shell-tool-mcp.yml @dylan-hurd-oai
- #9939 文件搜索:提升文件查询性能 @nornagon-openai
- #10097 维护:弃用旧的网络搜索功能标志 @sayan-oai
- #10034 压缩功能 @aibrahim-oai
- #10028 允许在不启用基础实验标志的情况下启用提升的沙盒 @iceweasel-oai
- #10101 修复(CI) 修复shell-tool-mcp版本v2 @dylan-hurd-oai
- #10043 添加`tui.notifications_method`配置选项 @etraut-openai
- #10104 [bazel] 修复构建 @zbarsky-openai
- #10102 默认启用压缩,更新测试助手 @sayan-oai
- #10111 修复(CI) 更多shell-tool-mcp问题 @dylan-hurd-oai
- #10115 更新CI中shell-tool-mcp的pnpm工作流,使用corepack进行pnpm版本管理 @mjr-openai
- #10098 [bazel] 改进运行文件处理 @zbarsky-openai
- #10129 确保在对话开始后启动自动压缩 @aibrahim-oai
- #10116 维护(配置) 将个性作为特性 @dylan-hurd-oai
- #10123 添加应用服务器压缩项目通知测试 @aibrahim-oai
- #10114 维护(配置) 更新个性指令 @dylan-hurd-oai
- #10128 [CLI]从下拉菜单移除退出选项,但保留在自动补全中 @natea-oai
- #9728 [连接器] 支持连接器第2部分 - 斜杠命令和TUI @mzeng-openai
- #10133 维护(核心) 个性功能开发中 @dylan-hurd-oai
- #10125 当无法启动PowerShell时发送指标 @iceweasel-oai
- #10134 修复(TUI) 重新排序个性命令 @dylan-hurd-oai
- #10135 修复(CI) shell-mcp-tool缺少package.json @dylan-hurd-oai
- #10131 修复:在新手引导期间忽略按键释放事件 @joshka-oai
- #10138 修复:移除对corepack的引用 @bolinfest
- #10086 特性:添加日志数据库 @jif-oai
- #10089 特性:异步回填 @jif-oai
- #10087 特性:日志数据库客户端 @jif-oai
- #10149 维护:改进客户端 @jif-oai
- #10161 优化:更新npm @jif-oai
- #10163 [实验性] 优化:尝试加速apt安装 @jif-oai
- #10164 [实验性] 优化:尝试加速apt安装第2版 @jif-oai
- #10150 特性:向日志添加线程ID并在客户端中支持过滤 @jif-oai
- #10151 特性:添加日志保留策略,90天后自动删除 @jif-oai
- #10152 维护:统一日志查询 @jif-oai
- #10175 添加OpenAI文档MCP工具提示 @joshka-oai
- #10171 特性:减少span暴露 @jif-oai
- #10139 当WebSocket失败时回退到HTTP @pakrym-oai
- #10140 维护:确保pnpm-workspace.yaml保持最新 @bolinfest
- #9017 更好地处理环境变量相关的技能依赖 @xl-openai
- #10182 修复:统一shell-tool-mcp.yml和rust-release.yml中的`npm publish`调用 @bolinfest
- #10180 添加特性启用/禁用子命令 @joshka-oai
- #10184 修复:/approvals -> /permissions @bolinfest
- #10179 移除WebSocket线格式 @pakrym-oai
- #10186 更新注释以更清晰地表明在主斜杠命令菜单中跳过`quit`的意图 @natea-oai
- #10118 [Codex][CLI] 在429错误时显示模型容量指南 @ccy-oai
- #10012 特性(应用服务器):支持外部认证模式 @owenlin0
- #10103 TUI:添加功能开关控制的/plan斜杠命令以切换到计划模式 @charley-oai
- #10191 维护(应用服务器):记录AuthMode文档 @owenlin0
- #10130 [特性] 在会话回滚文件中持久化动态工具 @celia-oai
- #10181 为Go计划类型添加错误消息 @willwang-openai
- #10198 特性(TUI):将员工反馈跟进引导至内部链接 @joshka-oai
- #10194 从yaml加载 @alexsong-oai
- #10147 维护(个性) 带回退的新模式 @dylan-hurd-oai
- #10200 MCP工具调用审批(简化版本) @mzeng-openai
- #10154 特性:为`/ps`命令添加输出 @jif-oai
- #10217 优化:实际运行测试 @jif-oai
- #10177 在启动工具提示中添加社区链接 @joshka-oai
- #10210 维护:计划模式不包含自由形式问题,始终包含isOther @shijie-oai
- #10218 特性:回填计时指标 @jif-oai
- #10220 维护:统一指标 @jif-oai
- #8991 对话命名 @pap-openai
- #10167 从云端获取需求 @gt-oai
- #10225 探索者提示 @jif-oai
- #10222 修复:确保shell存在 @jif-oai
- #10232 维护:不再清理数据库 @jif-oai
- #10229 特性:改进日志客户端 @jif-oai
- #10228 特性:日志的启发式着色 @jif-oai
- #10237 优化:修复包含多行元数据的数据库 @jif-oai
- #10208 特性:重构CodexAuth使无效状态无法表示 @bolinfest
- #10212 维护(特性) 实验性:个性功能 @dylan-hurd-oai
- #10211 维护(特性) 实验性:智能审批 @dylan-hurd-oai
- #10190 从需求加载执行策略规则 @gt-oai
- #10195 计划模式:添加TL;DR检查点和客户端行为说明 @baumann-oai
- #10239 维护:修复合并竞争导致的构建失败 @bolinfest
- #9786 计划模式:流式传输提议方案,发出计划项并在TUI中渲染 @charley-oai
- #10063 TUI:隐藏代码模式底部标签 @charley-oai
- #10244 维护:将类型名称中的ChatGpt重命名为Chatgpt @bolinfest
- #10238 计划模式提示 @aibrahim-oai
- #10251 修复部署 @charley-oai
- #10255 计划提示 @aibrahim-oai
- #10253 使计划高亮使用弹窗灰色背景 @charley-oai
- #10207 跳过将codex主目录加载为项目层 @daniel-oai
- #10256 更新文案 @pakrym-oai
- #9735 核心:阻止shell_snapshot继承标准输入 @swordfish444
- #10262 修复主分支 @pakrym-oai
- #10265 从斜杠命令列表中隐藏/approvals @pakrym-oai
- #10267 更新announcement_tip.toml @pakrym-oai
- #10240 文件搜索:多根遍历 @nornagon-openai
- #10266 修复:不自动为azure启用网络搜索 @sayan-oai
- #9279 修复:会话工作目录变化时更新文件搜索目录 @yuvrajangadsingh
- #10249 在解析前验证CODEX_HOME @etraut-openai
- #10272 维护:为TruncationPolicy实现Mul trait @bolinfest
- #10241 在exec和应用服务器中接入云端需求 @gt-oai
- #10263 在需求中添加enforce_residency字段 @gt-oai
- #10276 为WebSearchAction添加缺失字段并更新应用服务器类型 @sayan-oai
- #10283 为企业版也开启云端需求 @gt-oai
- #10287 修复注释和文档中的小错别字 @ruyut
- #10286 特性(核心) 启用智能审批 @dylan-hurd-oai
## New Features
- Added an optional SOCKS5 proxy listener with policy enforcement and config gating. (#9803)
- Plan mode now streams proposed plans into a dedicated TUI view, plus a feature-gated `/plan` shortcut for quick mode switching. (#9786, #10103)
- Added `/apps` to browse connectors in TUI and `$` insertion for app prompts. (#9728)
- App-server can now run in external auth mode, accepting ChatGPT auth tokens from a host app and requesting refreshes when needed. (#10012)
- Smart approvals are now enabled by default, with explicit approval prompts for MCP tool calls. (#10286, #10200)
- Introduced a SQLite-backed log database with an improved logs client, thread-id filtering, retention, and heuristic coloring. (#10086, #10087, #10150, #10151, #10229, #10228)
## Bug Fixes
- MCP tool image outputs render reliably even when image blocks aren’t first or are partially malformed. (#9815)
- Input history recall now restores local image attachments and rich text elements. (#9628)
- File search now tracks session CWD changes and supports multi-root traversal with better performance. (#9279, #9939, #10240)
- Resuming a thread no longer updates `updated_at` until the first turn actually starts. (#9950)
- Shell snapshots no longer inherit stdin, avoiding hangs from startup scripts. (#9735)
- Connections fall back to HTTP when WebSocket proxies fail. (#10139)
## Documentation
- Documented app-server AuthMode usage and behavior. (#10191)
## Chores
- Upgraded the Rust toolchain to 1.93. (#10080)
- Updated pnpm versions used in the repo. (#9992, #10161)
- Bazel build and runfiles handling improvements, including remote cache compression. (#10079, #10098, #10102, #10104)
## Changelog
Full Changelog: https://github.com/openai/codex/compare/rust-v0.92.0...rust-v0.93.0
- #9988 nit: better tool description @jif-oai
- #9991 nit: better unused prompt @jif-oai
- #9994 chore: clean orchestrator prompt @jif-oai
- #10001 backend-client: add get_config_requirements_file @gt-oai
- #9992 update pnpm to 10.28.2 to address security issues @mjr-openai
- #9993 description in role type @jif-oai
- #9944 TUI footer: right-align context and degrade shortcut summary + mode cleanly @charley-oai
- #9803 feat(network-proxy): add a SOCKS5 proxy with policy enforcement @viyatb-oai
- #9950 fix(app-server, core): defer initial context write to rollout file until first turn @owenlin0
- #10003 feat: make it possible to specify --config flags in the SDK @bolinfest
- #9797 remove sandbox globals. @iceweasel-oai
- #10009 chore: introduce *Args types for new() methods @bolinfest
- #10011 really fix pwd for windows codex zip @iceweasel-oai
- #10007 Remove load from SKILL.toml fallback @alexsong-oai
- #10008 enable live web search for DangerFullAccess sandbox policy @sayan-oai
- #9815 Fix: Render MCP image outputs regardless of ordering @Kbediako
- #9654 Show OAuth error descriptions in callback responses @blevy-oai
- #10030 Clarify external editor env var message @joshka-oai
- #9949 Ask user question UI footer improvements @charley-oai
- #9359 tui: stabilize shortcut overlay snapshots on WSL @slkzgm
- #10040 fix: enable per-turn updates to web search mode @sayan-oai
- #10041 fix: allow unknown fields on Notice in schema @sayan-oai
- #9628 Restore image attachments/text elements when recalling input history (Up/Down) @charley-oai
- #9982 [skills] Auto install MCP dependencies when running skils with dependency specs. @mzeng-openai
- #9986 fix(core) info cleanup @dylan-hurd-oai
- #9941 error code/msg details for failed elevated setup @iceweasel-oai
- #9489 feat(core) RequestRule @dylan-hurd-oai
- #10026 Add exec policy TOML representation @gt-oai
- #9821 feat: codex exec auto-subscribe to new threads @jif-oai
- #10004 feat: sqlite 1 @jif-oai
- #10083 feat: sort metadata by date @jif-oai
- #10092 Update shell-tool-mcp.yml @dylan-hurd-oai
- #10079 [bazel] Enable remote cache compression @zbarsky-openai
- #10025 Refine request_user_input TUI interactions and option UX @charley-oai
- #10080 Upgrade to rust 1.93 @zbarsky-openai
- #10095 Update shell-tool-mcp.yml @dylan-hurd-oai
- #9939 file-search: improve file query perf @nornagon-openai
- #10097 chore: deprecate old web search feature flags @sayan-oai
- #10034 compaction @aibrahim-oai
- #10028 allow elevated sandbox to be enabled without base experimental flag @iceweasel-oai
- #10101 fix(ci) fix shell-tool-mcp version v2 @dylan-hurd-oai
- #10043 Added `tui.notifications_method` config option @etraut-openai
- #10104 [bazel] Fix the build @zbarsky-openai
- #10102 default enable compression, update test helpers @sayan-oai
- #10111 fix(ci) more shell-tool-mcp issues @dylan-hurd-oai
- #10115 update the ci pnpm workflow for shell-tool-mcp to use corepack for pnpm versioning @mjr-openai
- #10098 [bazel] Improve runfiles handling @zbarsky-openai
- #10129 Ensure auto-compaction starts after turn started @aibrahim-oai
- #10116 chore(config) personality as a feature @dylan-hurd-oai
- #10123 Add app-server compaction item notifications tests @aibrahim-oai
- #10114 chore(config) Update personality instructions @dylan-hurd-oai
- #10128 removing quit from dropdown menu, but not autocomplete [cli] @natea-oai
- #9728 [connectors] Support connectors part 2 - slash command and tui @mzeng-openai
- #10133 chore(core) personality under development @dylan-hurd-oai
- #10125 emit a metric when we can't spawn powershell @iceweasel-oai
- #10134 fix(tui) reorder personality command @dylan-hurd-oai
- #10135 fix(ci) missing package.json for shell-mcp-tool @dylan-hurd-oai
- #10131 fix: ignore key release events during onboarding @joshka-oai
- #10138 fix: remove references to corepack @bolinfest
- #10086 feat: add log db @jif-oai
- #10089 feat: async backfill @jif-oai
- #10087 feat: log db client @jif-oai
- #10149 chore: improve client @jif-oai
- #10161 nit: update npm @jif-oai
- #10163 [experimental] nit: try to speed up apt-install @jif-oai
- #10164 [experimental] nit: try to speed up apt-install 2 @jif-oai
- #10150 feat: adding thread ID to logs + filter in the client @jif-oai
- #10151 feat: add log retention and delete them after 90 days @jif-oai
- #10152 chore: unify log queries @jif-oai
- #10175 Add OpenAI docs MCP tooltip @joshka-oai
- #10171 feat: reduce span exposition @jif-oai
- #10139 Fall back to http when websockets fail @pakrym-oai
- #10140 chore: ensure pnpm-workspace.yaml is up-to-date @bolinfest
- #9017 Better handling skill depdenencies on ENV VAR. @xl-openai
- #10182 fix: unify `npm publish` call across shell-tool-mcp.yml and rust-release.yml @bolinfest
- #10180 Add features enable/disable subcommands @joshka-oai
- #10184 fix: /approvals -> /permissions @bolinfest
- #10179 Remove WebSocket wire format @pakrym-oai
- #10186 updating comment to better indicate intent of skipping `quit` in the main slash command menu @natea-oai
- #10118 [Codex][CLI] Show model-capacity guidance on 429 @ccy-oai
- #10012 feat(app-server): support external auth mode @owenlin0
- #10103 tui: add feature-gated /plan slash command to switch to Plan mode @charley-oai
- #10191 chore(app-server): document AuthMode @owenlin0
- #10130 [feat] persist dynamic tools in session rollout file @celia-oai
- #10181 add error messages for the go plan type @willwang-openai
- #10198 feat(tui): route employee feedback follow-ups to internal link @joshka-oai
- #10194 load from yaml @alexsong-oai
- #10147 chore(personality) new schema with fallbacks @dylan-hurd-oai
- #10200 MCP tool call approval (simplified version) @mzeng-openai
- #10154 feat: add output to `/ps` @jif-oai
- #10217 nit: actually run tests @jif-oai
- #10177 Add community links to startup tooltips @joshka-oai
- #10210 Chore: plan mode do not include free form question and always include isOther @shijie-oai
- #10218 feat: backfill timing metric @jif-oai
- #10220 chore: unify metric @jif-oai
- #8991 Conversation naming @pap-openai
- #10167 Fetch Requirements from cloud @gt-oai
- #10225 explorer prompt @jif-oai
- #10222 fix: make sure the shell exists @jif-oai
- #10232 chore: do not clean the DB anymore @jif-oai
- #10229 feat: improve logs client @jif-oai
- #10228 feat: heuristic coloring of logs @jif-oai
- #10237 nit: fix db with multiple metadata lines @jif-oai
- #10208 feat: refactor CodexAuth so invalid state cannot be represented @bolinfest
- #10212 chore(feature) Experimental: Personality @dylan-hurd-oai
- #10211 chore(feature) Experimental: Smart Approvals @dylan-hurd-oai
- #10190 Load exec policy rules from requirements @gt-oai
- #10195 plan mode: add TL;DR checkpoint and client behavior note @baumann-oai
- #10239 chore: fix the build breakage that came from a merge race @bolinfest
- #9786 Plan mode: stream proposed plans, emit plan items, and render in TUI @charley-oai
- #10063 Tui: hide Code mode footer label @charley-oai
- #10244 chore: rename ChatGpt -> Chatgpt in type names @bolinfest
- #10238 Plan mode prompt @aibrahim-oai
- #10251 Fix deploy @charley-oai
- #10255 plan prompt @aibrahim-oai
- #10253 Make plan highlight use popup grey background @charley-oai
- #10207 Skip loading codex home as project layer @daniel-oai
- #10256 Update copy @pakrym-oai
- #9735 core: prevent shell_snapshot from inheriting stdin @swordfish444
- #10262 Fix main @pakrym-oai
- #10265 Hide /approvals from the slash-command list @pakrym-oai
- #10267 Update announcement_tip.toml @pakrym-oai
- #10240 file-search: multi-root walk @nornagon-openai
- #10266 fix: dont auto-enable web_search for azure @sayan-oai
- #9279 fix: update file search directory when session CWD changes @yuvrajangadsingh
- #10249 Validate CODEX_HOME before resolving @etraut-openai
- #10272 chore: implement Mul for TruncationPolicy @bolinfest
- #10241 Wire up cloud reqs in exec, app-server @gt-oai
- #10263 Add enforce_residency to requirements @gt-oai
- #10276 add missing fields to WebSearchAction and update app-server types @sayan-oai
- #10283 Turn on cloud requirements for business too @gt-oai
- #10287 Fix minor typos in comments and documentation @ruyut
- #10286 feat(core) Smart approvals on @dylan-hurd-oai