0.113.0
新增功能
- 新增内置
request_permissions工具,使运行中的回合可以在运行时请求额外权限,并为这些审批调用新增 TUI 渲染。(#13092, #14004) - 扩展了插件工作流,新增精选市场发现、更丰富的
plugin/list元数据、安装时认证检查,以及plugin/uninstall端点。(#13712, #13540, #13685, #14111) - 升级了 app-server 命令执行,支持流式 stdin/stdout/stderr 以及 TTY/PTY,并将
exec接入新的进程内 app server 路径。(#13640, #14005) - Web 搜索设置现在支持完整工具配置(例如过滤器和位置),而不仅仅是开/关。(#13675)
- 新增了新的 permission-profile 配置语言,并拆分文件系统/网络沙箱策略管线,以实现更精确的策略控制。(#13434, #13439, #13440, #13448, #13449, #13453)
- 图像生成现在将输出文件保存到当前工作目录。(#13607)
问题修复
- 修复了云端需求获取的认证错误处理,现在 401 会触发正常的认证恢复提示,而不是通用的工作区配置失败提示。(#14049)
- 修复了信任引导流程,避免在项目信任建立之前运行
git命令。(#13804) - 修复了 Windows 执行的一些边缘情况,包括 PTY
TerminateProcess成功处理不正确,以及更严格的沙箱启动 cwd 校验。(#13989, #13833, #13742) - 修复了插件启动行为,现在精选插件会按预期在 TUI 会话中加载。(#14050)
- 加强了网络代理策略解析,拒绝全局通配符(
*)域名,同时保留限定范围的通配符支持。(#13789) - 修复了 macOS 自动化权限的审批载荷兼容性,现在支持两种受支持的输入形式。(#13683)
其他变更
- 通过将日志迁移至专用的 SQLite 数据库、为反馈日志添加时间戳、清理旧数据并收紧保留期与行数上限,降低了日志与存储开销。(#13645, #13688, #13734, #13763, #13772, #13781)
- 通过将 CLI 版本发布至 winget,改进了 Windows 分发自动化。(#12943)
- 澄清
js_repl关于持久绑定和重新声明恢复的指导,以减少可避免的 REPL 错误。 (#13803)
完整变更日志:https://github.com/openai/codex/compare/rust-v0.112.0...rust-v0.113.0
- #13626 feat(otel): 安全 tracing @owenlin0
- #13560 优化 realtime 启动上下文格式 @aibrahim-oai
- #13615 从 rollout 历史重放 thread rollback @aibrahim-oai
- #13642 fix(tui): 清理待处理 steer 预览的换行 @charley-oai
- #13645 添加带时间戳的 SQLite /feedback 日志,且不更改 schema @charley-oai
- #13654 tui: 按最后更新时间排序 resume picker @charley-oai
- #13540 支持 plugin/list。@xl-openai
- #13677 chore: 移除未使用的旧版 macOS 权限类型 @celia-oai
- #13683 fix: 接受两种 macOS automation 输入形态,以兼容 approval payload @celia-oai
- #13687 refactor: 移除 proxy admin endpoint @viyatb-oai
- #13669 为 apply_patch 将当前 exe 复制到 CODEX_HOME/.sandbox-bin @iceweasel-oai
- #11874 fix(tui) 移除 trusted 设置的 config 检查 @dylan-hurd-oai
- #13685 在 plugin/install 中检查 app auth @sayan-oai
- #13697 更改声音 @aibrahim-oai
- #13607 为 Image-Gen 启用 CWD 保存 @won-openai
- #13621 [elicitations] 将 mcp 工具审批切换为使用 MCP 风格 elicitation payload。 @mzeng-openai
- #13619 feat: 使用真实数据的 status line @jif-oai
- #13734 feat: 清理 DB 中的旧 memories @jif-oai
- #13688 为 feedback 日志行添加时间戳 @etraut-openai
- #13742 fix: Windows 规范化 @jif-oai
- #13514 [rmcp-client] 从 streamable HTTP 404 会话中恢复 @caseychow-oai
- #13750 feat: 移除 sqlite db feature flag @jif-oai
- #13753 feat: 移除 discrepency metrics @jif-oai
- #13763 feat: 限制每个日志的行数 @jif-oai
- #13703 澄清 sandbox 权限覆盖 helper 的语义 @charley-oai
- #13770 fix(app-server): 修复 turn_start_shell_zsh_fork_executes_command_v2 flake @owenlin0
- #13630 feat(otel, core): 在 codex-core 中记录 turn TTFT 和 TTFM 指标 @owenlin0
- #13674 app-server: 全局发送
thread/name/updated事件 @euroelessar - #13772 将 sqlite 日志移动到专用数据库 @charley-oai
- #13620 chore: 改进 DB flushing @jif-oai
- #13711 feat: 结构化 plugin 解析 @sayan-oai
- #13781 将 SQLite 日志保留期缩短至 10 天 @charley-oai
- #13780 fix: 将 codex-rs/core/src/config/mod.rs 中的单元测试移到单独文件 @bolinfest
- #13783 fix: 将 codex-rs/core/src/codex.rs 中的单元测试移到单独文件 @bolinfest
- #13787 修复 bazel 构建 @bolinfest
- #13789 fix: 拒绝全局通配符网络代理域 @viyatb-oai
- #12943 Codex/winget 自动更新 @iceweasel-oai
- #13800 chore(otel): 重组 codex-otel crate @owenlin0
- #13797 feat: 添加 auth login 诊断 @joshka-oai
- #13695 utils/pty: 添加 streaming spawn 和 terminal sizing 原语 @euroelessar
- #13803 澄清 js_repl 绑定复用指导 @fjord-oai
- #13810 docs: 移除 auth login 日志记录计划 @joshka-oai
- #13434 config: 在 config.toml 中初步支持新的 permission profile config 语言 @bolinfest
- #13796 添加 realtime 启动上下文覆盖 @aibrahim-oai
- #13814 fix: 为构建 Codex 创建 devcontainer 时包含 libcap-dev 依赖 @bolinfest
- #13808 chore(otel): 将 OtelManager 重命名为 SessionTelemetry @owenlin0
- #13712 feat: 添加 curated plugin marketplace + Metadata 清理。 @xl-openai
- #13791 fix(core): 对 permissionless skill scripts 跳过 exec approval @celia-oai
- #13675 允许完整的 web search 工具配置 @rm-openai
- #13640 app-server: 为
command/exec添加 streaming 和 tty/pty 能力 @euroelessar - #13819 feat(app-server-protocol): 解决 json schema exporter 中的命名冲突 @owenlin0
- #13804 fix: 在项目信任建立之前避免调用 git @viyatb-oai
- #12752 fix: 支持 managed network allowlist 控制 @viyatb-oai
- #13439 sandboxing: 通过 runtime 传递 split sandbox policies @bolinfest
- #13440 protocol: 从 filesystem policies 推导有效文件访问权限 @bolinfest
- #13816 fix(core): 对 skill scripts 按 approval 来源遵循 reject policy @celia-oai
- #13833 app-server: windowsSandbox/setupStart 要求绝对 cwd @iceweasel-oai
- #13670 添加 Fast mode status-line 指示器 @etraut-openai
- #13445 safety: 在 apply_patch 中遵循 filesystem policy carveouts @bolinfest
- #13771 feat: 进一步简化 DB @jif-oai
- #13692 添加 guardian approval MVP @charley-oai
- #13851 tmp: 移除 artifact skills @jif-oai
- #13910 fix(core) 移除 guardian snapshot 测试 @dylan-hurd-oai
- #13911 fix(ci) 修复 guardian ci @dylan-hurd-oai
- #13896 修复首次 TokenCount 前的 TUI context window 显示 @etraut-openai
- #13448 seatbelt: 遵循 split filesystem sandbox policies @bolinfest
- #13921 chore: 纯文本提及时使用 @plugin 而不是 $plugin @sayan-oai
- #13807 [elicitations] 支持 mcp 工具调用的 always allow 选项。 @mzeng-openai
- #13449 linux-sandbox: 通过 helper 传递 split sandbox policies @bolinfest
- #13451 sandboxing: 扩大权限时保留 denied paths @bolinfest
- #13452 protocol: 保持 root carveouts 处于 sandboxed 状态 @bolinfest
- #13874 稳定 abort task follow-up 处理 @aibrahim-oai
- #13453 linux-sandbox: 在 bwrap 中遵循 split filesystem policies @bolinfest
- #13989 修复颠倒的 Windows PTY
TerminateProcess处理 @etraut-openai - #13912 fix(ci): 恢复 guardian 覆盖率和 bazel 单元测试 @charley-oai
- #13877 稳定 shell 序列化测试 @aibrahim-oai
- #13839 [app-server] 在批量写入 config 时支持热重载用户 config。 @mzeng-openai
- #14005 添加进程内 app server,并接入 exec 以使用它 @etraut-openai
- #13929 app-server: 在 exec approval 请求中包含实验性 skill metadata @celia-oai
- #14014 fix(core) 修补 otel 测试 @dylan-hurd-oai
- #13841 tui: 澄清待处理 steer follow-ups @charley-oai
- #13092 添加 request permissions 工具 @mousseau-oai
- #14027 fix(bazel) 添加缺失的 app-server-client BUILD.bazel @dylan-hurd-oai
- #14004 feat(tui) 渲染 request_permissions 调用 @dylan-hurd-oai
- #14052 稳定 app list 更新顺序测试 @aibrahim-oai
- #13897 guardian 初始反馈 / 调整 @charley-oai
- #13884 降低 app-server 测试超时压力 @aibrahim-oai
- #13872 稳定 zsh fork app-server 测试 @aibrahim-oai
- #13881 稳定 RMCP pid 文件清理测试 @aibrahim-oai
- #13883 稳定 PTY Python REPL 测试 @aibrahim-oai
- #14058 稳定 plan item app-server 测试 @aibrahim-oai
- #13943 将 websocket initialize 排在 handshake 之后 @aibrahim-oai
- #13885 稳定 thread resume replay 测试 @aibrahim-oai
- #13878 序列化 shell snapshot stdin 测试 @aibrahim-oai
- #13876 稳定 realtime 启动上下文测试 @aibrahim-oai
- #14050 fix(plugin): 同时为 TUI 加载 curated plugins。 @xl-openai
- #14049 fix: 正确处理 clound requirement fetch 中的 401 错误。 @xl-openai
- #14101 稳定 shell approval MCP 测试 @aibrahim-oai
- #14102 稳定中断任务 approval 清理 @aibrahim-oai
- #14103 稳定 guardian approval 覆盖率 @aibrahim-oai
- #14060 稳定已恢复的 rollout messages @aibrahim-oai
- #14114 fix(ci) 加快 shell_command::unicode_output 测试 @dylan-hurd-oai
- #14111 chore: plugin/uninstall endpoint @sayan-oai
- #14117 feat(otel): 集中管理 OTEL 指标名称和共享 tag builders @owenlin0
- #13880 稳定 RMCP streamable HTTP readiness 测试 @aibrahim-oai
- #14123 将保存信息传递给 model + ui 调整 @won-openai
- #13886 稳定 protocol schema fixture 生成 @aibrahim-oai