0.135.0
新增功能
codex doctor现在能为支持案例报告更丰富的环境、Git、终端、app-server 和 thread 清单诊断信息。 (#24261, #24311, #24305)- 当 TUI 通过远程传输连接时,
/status会显示远程连接详情和服务器版本。 (#24420) - Vim 模式新增了文本对象编辑、改进的单词/行尾行为,以及可配置的中断 turn 键绑定。 (#24382, #24380, #24766)
/permissions现在能识别命名权限配置文件,并显示已配置的自定义配置文件。 (#21559)- 打包后的 Codex 构建版本可以在受支持的 macOS 和 Linux 目标平台上发现并使用捆绑的已修补 zsh 辅助程序。 (#23756, #24171)
- Python SDK 现在为 thread 和 turn API 公开友好的
Sandbox预设。 (#24772) - 设置
CODEX_NON_INTERACTIVE=1后,install.sh/install.ps1支持非交互式安装模式。 (#21567)
问题修复
- Markdown 表格和多行列表在 TUI 中渲染更易读,列宽更合理,并采用应用风格的表格格式。 (#24489, #24346, #24351)
- TUI 输出在 macOS 和 Zellij 上更稳定,避免 stderr/composer 损坏和原始输出重叠。 (#24459, #24479, #24593)
- 斜杠命令补全现在会为接受内联参数的命令保留已有草稿文本。 (#23950)
- 较旧的 tmux/iTerm control-mode 会话不再因不支持的键盘增强设置而丢失正常的
Ctrl-C处理。 (#24371) - 应用提及现在会排除不可访问或已禁用的应用,而不是提供不可用的
suggestions。 (#24625) - 恢复流程现在会在请求时包含非交互式 exec 会话,并遵循空闲缓存线程的 cwd 覆盖设置。 (#24503, #24528)
其他变更
- 更新了 Rust 工具链版本锁定以及 SQLx/SQLite 依赖。(#24684, #24728)
- 将内存运行时状态迁移到专用的 SQLite 数据库中。(#24591)
- 移除了剩余的旧版 config-profile 使用方,并将更多 TUI 配置/插件状态改为经由 app-server 自有的 API 流转。(#24076, #24254, #24255, #24265, #24266, #24257)
- 集中了 Responses 重试处理与 MCP 工具命名逻辑,以减少内部重复的底层实现。(#24131, #21576)
- 澄清了图像查看工具的 detail 行为,并移除了过时的 TUI composer 文档引用。 (#23949, #24641)
- 更新了 Python SDK 文档、示例和 notebook 内容,以使用新的 sandbox preset API。 (#24772)
完整变更日志:https://github.com/openai/codex/compare/rust-v0.134.0...rust-v0.135.0
- #24164 fix(remote-control): 限制重连 backoff @apanasenko-oai
- #23756 package: 在 Codex 包中包含 zsh fork @bolinfest
- #23757 默认将 function tools 纳入 tool hooks @abhinav-oai
- #24171 package: 添加 x64 macOS codex-zsh artifact @bolinfest
- #24159 code-mode: 按键合并存储值 @cconger
- #23983 fix: 修复上传和安装时的 plugin bundle archive 处理 @xl-openai
- #24261 feat(doctor): 添加环境诊断 @fcoury-oai
- #24311 在 codex doctor 中报告 app-server 版本 @etraut-openai
- #24314 tui: 标注 compact rate-limit 百分比 @etraut-openai
- #24420 在 /status 中显示远程连接详情 @etraut-openai
- #24317 在 TUI 启动期间遵守 hook trust bypass @etraut-openai
- #24254 TUI config 清理:oss_provider @etraut-openai
- #24255 TUI config 清理:trusted projects @etraut-openai
- #24265 TUI config 清理:MCP inventory @etraut-openai
- #24305 添加 doctor thread inventory 审计 @etraut-openai
- #24346 fix(tui): 改进 markdown 表格列分配 @fcoury-oai
- #24351 fix(tui): 改进多行 markdown 列表可读性 @fcoury-oai
- #24459 fix(tui): 防止 macos stderr 损坏 composer @fcoury-oai
- #24479 fix(process-hardening): 保留 macos malloc 诊断信息 @fcoury-oai
- #24474 记录 rollout writer OS 错误 @etraut-openai
- #24076 chore: 停止使用旧版 config profiles @jif-oai
- #24131 集中化 Responses 重试策略 @rhan-oai
- #23858 [wip] goal shift @jif-oai
- #24555 chore: 移除孤立的 codex memories MCP crate @jif-oai
- #24558 chore: 将 memory prompt builder 移入 extension @jif-oai
- #24562 添加 ad-hoc memory note 工具 @jif-oai
- #24567 将 metrics client 接入 memories extension @jif-oai
- #24588 fix: 移除 flake @jif-oai
- #24583 向 memories extension 添加 memory tool 调用指标 @jif-oai
- #24586 接入 app-server extension event sink @jif-oai
- #24532 为 TUI MCP inventory 使用 thread config @etraut-openai
- #24105 [codex] 将 active turn task 设为单数 @pakrym-oai
- #21576 将 MCP tool naming mode 移入 manager @pakrym-oai
- #24503 tui: 在 resume 列表中包含 exec sessions @etraut-openai
- #24600 feat: 在 config 中门控 dedicated memories 工具 @jif-oai
- #21559 tui: 添加具名 permission profile 选择器 @viyatb-oai
- #24608 feat: 向 compaction metric 添加 manual 和 remote_v2 标签 @jif-oai
- #24611 test: 清理 apply_patch allow-session artifact @jif-oai
- #24609 移除 reserved namespaces 去重 @pakrym-oai
- #23964 将 slash 输入逻辑移出 chat composer @canvrno-oai
- #24615 添加 goal extension 遥测一致性 @jif-oai
- #24371 fix(tui): 对未知 tmux 格式避免 modifyOtherKeys @fcoury-oai
- #24626 fix: 在 thread resume 后恢复 goal accounting @jif-oai
- #24591 将 memory state 移至专用 SQLite DB @jif-oai
- #23823 独立 websearch extension @sayan-oai
- #24593 fix(tui): 在 zellij 中将原始输出保持在 composer 上方 @fcoury-oai
- #24625 tui: 将不可访问的应用排除在 mentions 之外 @canvrno-oai
- #24154 添加实验性 turn additional context @pakrym-oai
- #24473 fix(remote-control): 显示 websocket 任务停滞情况 @apanasenko-oai
- #24528 对空闲缓存 threads 遵循 resume cwd 覆盖 @etraut-openai
- #24160 添加 forked_from_thread_id turn metadata @owenlin0
- #24646 使 direct 成为 standalone websearch 唯一允许的调用方 @sayan-oai
- #23949 澄清 view_image 工具描述 @fjord-oai
- #24266 TUI config 清理:plugin mentions @etraut-openai
- #24320 避免为 alternate layouts 重复升级 marketplace @etraut-openai
- #23813 windows-sandbox: 移除 SandboxPolicy runner plumbing @bolinfest
- #24652 [codex] 移除普通 image wrapper spans @pakrym-oai
- #24623 将 Windows sandbox 日志附加到反馈报告 @iceweasel-oai
- #24644 恢复旧版 image detail 值 @rhan-oai
- #24655 [codex-analytics] 向 runtime events 添加分组 session id @marksteinbrick-oai
- #24658 [codex] 移除过时的 goal continuation turn marker @pakrym-oai
- #24660 fix: 不要压缩 standalone websearch schema @sayan-oai
- #24667 fix(core): 为停滞的 tool-listing handoff 添加插桩 @apanasenko-oai
- #24684 将 Rust toolchain pins 升级到 1.95.0 @anp-oai
- #21567 fix: 添加非交互式安装脚本模式 @efrazer-oai
- #24707 允许远程 plugins 运行时启用 @xl-openai
- #24714 fix(auto-review) 对 auto review threads 跳过 legacy notify @dylan-hurd-oai
- #24690 回退 "添加 Bedrock Mantle GovCloud 区域 (#23860)" @celia-oai
- #24628 feat: 在 goal extension 中处理 goal 使用限制 @jif-oai
- #24746 修复 guardian review 测试用户输入 @jif-oai
- #24744 feat: 添加 thread idle 生命周期 hook @jif-oai
- #24751 截断 forked rollouts 时丢弃 startup context @jif-oai
- #24257 TUI config 清理:plugin marketplace @etraut-openai
- #24380 fix(tui): 完善 vim word-end 和 line-end 行为 @fcoury-oai
- #24728 升级 SQLx 以采用更新的捆绑 SQLite @jif-oai
- #24637 fix: 以非交互方式运行 standalone 更新 @efrazer-oai
- #24778 将 vercel webhook url 设为 env secret @sayan-oai
- #23950 fix: 补全带参数的 slash 命令时保留草稿文本 @canvrno-oai
- #24641 [codex] 移除过时的 composer narrative 文档引用 @canvrno-oai
- #24368 [codex] 向 turn headers 添加 compaction metadata @ningyi-oai
- #24772 [codex] 添加易用的 Python SDK sandbox presets @aibrahim-oai
- #24382 feat(tui): 添加 vim text object 绑定 @fcoury-oai
- #24766 feat(tui): 使 turn interruption 快捷键可配置 @fcoury-oai
- #24489 feat(tui): 以 app 样式渲染 markdown 表格 [1 of 2] @fcoury-oai
- #24713 chore: 为 Bedrock 启用 namespace tools @celia-oai