## 显著变更
- 引入基于 Rust SDK 的实验性 MCP 客户端 (#4252)
- 新增 `responses-api-proxy` 组件,简化和保障响应处理/代理的安全性 (#4246)
- 添加安全模式:`CODEX_SECURE_MODE=1` 限制进程可观测性 (#4220)
- `codex exec` 事件更加明确,包括 `item.started` 和改进的输出显示 (#4177, #4250, #4113)
- 更安全的命令执行:核心的危险命令检查及 Windows 特定安全措施 (#4211, #4119)
- 用户体验改进:改进 `/status` 的展示清晰度与详细信息、无分页会话列表、审批移至 `ListSelectionView`、优化 MCP 工具调用样式、流式传输期间隐藏状态指示器 (#3194, #4275, #3871, #4101, #4196)
- 稳定性与正确性:修复压缩时的 token 用量问题、SSE 挂载可靠性、改进编辑历史会话的 bug (#4281, #4264, #4237)
- IDE 扩展可靠性:修复当 `.codex` 目录缺失时使用 API 密钥登录的问题 (#4258)
- 内部代码清理与重构,涉及状态、页脚逻辑及未使用代码 (#4174, #4259, #4310)
## 已合并的 PR
- [#4304] /status 后续跟进 (#4304)
- [#4310] 维护:移除死代码;移除帧计数和状态化渲染辅助函数 (#4310)
- [#4252] [MCP] 引入基于官方 Rust SDK 的实验性 MCP 客户端 (#4252)
- [#4255] 添加待办事项列表工具支持 (#4255)
- [#4246] 特性:引入 responses-api-proxy (#4246)
- [#4281] 修复:压缩时的 token 用量问题 (#4281)
- [#4113] 成功时显示 exec 输出,并精简显示 (#4113)
- [#4275] 将审批移至 ListSelectionView (#4275)
- [#4259] 将页脚逻辑重构至新文件 (#4259)
- [#4229] 重构:状态 - 2 (#4229)
- [#4211] 核心:添加潜在危险命令检查 (#4211)
- [#4264] 确保 SSE 仅挂载一次 (#4264)
- [#4254] 添加 codex exec 测试辅助函数 (#4254)
- [#4258] 修复 IDE 扩展中当 `.codex` 目录不存在时使用 API 密钥登录失败的问题 (#4258)
- [#4256] 修复沙箱文档中的拼写错误 (#4256)
- [#4250] [codex exec] 添加 item.started 并支持命令执行 (#4250)
- [#4251] 修复 (#4251)
- [#4248] 修复缩小窗口宽度时的 bug (#4248)
- [#4067] 确保测试在沙箱中顺利通过 (#4067)
- [#4204] 修复错误消息 (#4204)
- [#4177] 添加明确的 codex exec 事件 (#4177)
- [#4194] 维护:从 stream_responses() 中重构出 attempt_stream_responses() (#4194)
- [#4237] 修复:ESC 键与队列消息会覆盖编辑器中的草稿 (#4237)
- [#4220] 特性:添加 CODEX_SECURE_MODE=1 支持以限制进程可观测性 (#4220)
- [#4196] 改进 /status (#4196)
- [#4174] 重构:全面状态重构 (#4174)
- [#4205] github:将工作流中的 codespell 操作更新至 v2.1 (#4205)
- [#4195] 为非 gpt-5 模型发送文本参数 (#4195)
- [#4188] 维护:删除 env_flags 中未使用的值 (#4188)
- [#4119] 添加 Windows 特定方法检查命令是否安全 (#4119)
- [#3194] 无分页会话列表 (#3194)
- [#3871] 改进 MCP 工具调用样式 (#3871)
- [#4101] 答案流开始时隐藏状态指示器 (#4101)
- [#4160] 简化工具实现 (#4160)
## Notable Changes
- Experimental Rust SDK–based MCP client introduced (#4252)
- New `responses-api-proxy` component to simplify and secure response handling/proxying (#4246)
- Added secure mode: `CODEX_SECURE_MODE=1` to restrict process observability (#4220)
- More explicit `codex exec` events, including `item.started` and improved output display (#4177, #4250, #4113)
- Safer command execution: dangerous command checks in core and Windows-specific safety (#4211, #4119)
- UX improvements: revamped `/status` with clearer presentation and details, pageless session list, approvals moved to `ListSelectionView`, better MCP tool call styling, and hiding status indicator during streaming (#3194, #4275, #3871, #4101, #4196)
- Stability and correctness: token usage fix for compaction, SSE mounting reliability, and improving bugs on editing previous conversations (#4281, #4264, #4237)
- IDE extension reliability: fix login with API key when `.codex` directory is missing (#4258)
- Internal cleanup and refactors for state, footer logic, and unused code (#4174, #4259, #4310)
## Merged PRs
- [#4304] /status followup (#4304)
- [#4310] chore: dead code removal; remove frame count and stateful render helpers (#4310)
- [#4252] [MCP] Introduce an experimental official rust sdk based mcp client (#4252)
- [#4255] Add todo-list tool support (#4255)
- [#4246] feat: introduce responses-api-proxy (#4246)
- [#4281] fix: token usage for compaction (#4281)
- [#4113] Show exec output on success with trimmed display (#4113)
- [#4275] Move approvals to use ListSelectionView (#4275)
- [#4259] Refactor the footer logic to a new file (#4259)
- [#4229] ref: state - 2 (#4229)
- [#4211] core: add potentially dangerous command check (#4211)
- [#4264] Actually mount sse once (#4264)
- [#4254] Add codex exec testing helpers (#4254)
- [#4258] Fixed login failure with API key in IDE extension when a `.codex` directory doesn't exist (#4258)
- [#4256] fix typo in sandbox doc (#4256)
- [#4250] [codex exec] Add item.started and support it for command execution (#4250)
- [#4251] fix (#4251)
- [#4248] fix bug when resizing to a smaller width (#4248)
- [#4067] make tests pass cleanly in sandbox (#4067)
- [#4204] Fix error message (#4204)
- [#4177] Add explicit codex exec events (#4177)
- [#4194] chore: refactor attempt_stream_responses() out of stream_responses() (#4194)
- [#4237] fix: esc w/ queued messages overwrites draft in composer (#4237)
- [#4220] feat: add support for CODEX_SECURE_MODE=1 to restrict process observability (#4220)
- [#4196] revamp /status (#4196)
- [#4174] ref: full state refactor (#4174)
- [#4205] github: update codespell action to v2.1 in workflow (#4205)
- [#4195] Send text parameter for non-gpt-5 models (#4195)
- [#4188] chore: drop unused values from env_flags (#4188)
- [#4119] adds a windows-specific method to check if a command is safe (#4119)
- [#3194] pageless session list (#3194)
- [#3871] improve MCP tool call styling (#3871)
- [#4101] hide the status indicator when the answer stream starts (#4101)
- [#4160] Simplify tool implemetations (#4160)