0.78.0
新增功能
- 新增
Ctrl+G,可在已配置的外部编辑器($VISUAL/$EDITOR)中打开当前 prompt,并将编辑结果同步回 TUI。(#7606) - 支持感知项目的配置分层:加载仓库本地的
.codex/config.toml,遵循可配置的project_root_markers,并将其与系统配置(如/etc/codex/config.toml)合并。(#8354, #8359, #8461) - 在 macOS 上支持通过 MDM 提供的 TOML payload 下发企业管理的配置要求。(#8743)
- 改进
tui2的对话记录导航:支持多击选择、复制快捷键/入口,以及可拖拽的自动隐藏滚动条。(#8462, #8471, #8728) - Windows PowerShell 会话以 UTF-8 模式启动,以减少编码相关的 prompt/输出问题。(#7902)
- Exec policy 规则现在可包含人类可读的理由说明,且策略加载遵循统一的配置层栈。(#8349, #8453, #8751)
问题修复
- 修复当模型在单轮中返回多个 tool call 时导致的失败:现在会按 Chat Completions API 期望的格式发出 tool call。(#8556)
- 让
/review从会话的工作目录计算 diff,从而在运行时 cwd 覆盖的情况下也能正确检测 base branch。(#8738) - 干净地处理旧版 Chat Completions 流式终止符,避免误报 SSE 解析错误。(#8708)
- 修复一组
tui2渲染/输入边界情况(屏幕损坏、滚动粘滞以及选择/复制正确性)。(#8463, #8695, #8449) - 改进 CLI 打包期间
ripgrep下载失败时的诊断信息,使失败更易于调试。(#8486) - 避免解析 alpha/stable 版本字符串时发生 panic。(#8406)
其他变更
- TUI 性能调优:限制重绘调度,减少流式传输期间不必要的重新渲染,以降低 CPU 占用。(#8499, #8681, #8693)
- 更新
codex-rs中的 Rust 依赖。(#8414, #8596, #8597)
- 用指向开发者文档站点(包括 skills 文档)的链接替换并去重用户文档。(#8662, #8407)
- 澄清配置文档,包括
developer_instructions选项。(#8376, #8701) - 修复损坏的 README 链接。(#8682)
完整变更日志:https://github.com/openai/codex/compare/rust-v0.77.0...rust-v0.78.0
- #8407 将 skills 文档指向开发者文档站点 @etraut-openai
- #8406 fix: 不要在 alpha 版本上 panic @aibrahim-oai
- #8091 将 ghost_commit 标志引用更新为 undo @charlie-openai
- #8423 test(tui2): 为 VT100 测试重新启用 ANSI @joshka-oai
- #8419 fix(tui2): 限制 transcript 鼠标选择边界 @joshka-oai
- #8424 chore: 取消发布 undo @jif-oai
- #8376 docs: 添加
developer_instructions配置选项并更新描述 @448523760 - #8431 chore: 从文档中移除 undo @jif-oai
- #8410 chore(deps): 将 peter-evans/create-pull-request 从 7 升级到 8 @dependabot
- #8412 chore(deps): 在 /codex-rs 中将 test-log 从 0.2.18 升级到 0.2.19 @dependabot
- #8413 chore(deps): 在 /codex-rs 中将 landlock 从 0.4.2 升级到 0.4.4 @dependabot
- #8414 chore(deps): 在 /codex-rs 中将 clap 从 4.5.47 升级到 4.5.53 @dependabot
- #8416 chore(deps): 在 /codex-rs 中将 openssl-sys 从 0.9.109 升级到 0.9.111 @dependabot
- #7902 feat(windows) 以 utf-8 模式启动 powershell @dylan-hurd-oai
- #8349 添加 ExecPolicyManager @pakrym-oai
- #8354 feat: 支持将仓库内 .codex/config.toml 条目作为配置信息来源 @bolinfest
- #8359 feat: 在 config.toml 中添加对 project_root_markers 的支持 @bolinfest
- #8395 在用于 exec policy 的 bash 命令解析器中处理拼接节点 @ivanmurashko
- #8446 更新 models.json @github-actions
- #8444 在应用读取 ACL 时,为 cwd 使用 junction @iceweasel-oai
- #8447 移除最小客户端版本 @aibrahim-oai
- #8448 chore: 将 ConfigLayerStack 添加为 Config 的字段 @bolinfest
- #7606 feat: 在配置的外部编辑器中打开提示词 @sayan-oai
- #8449 fix(tui2): 复制 viewport 之外的 transcript 选择 @joshka-oai
- #8418 chore(tui): 在文件日志中包含 tracing targets @joshka-oai
- #8456 chore: 即使 config.toml 为空,也在 ConfigLayerStack 中包含 User 层 @bolinfest
- #8453 feat: 从 ConfigLayerStack 加载 ExecPolicyManager @bolinfest
- #8462 feat(tui2): 添加复制选择快捷键 + UI 提示 @joshka-oai
- #8461 feat: 遵循 /etc/codex/config.toml @bolinfest
- #8463 fix(tui2): 修复屏幕显示错乱 @joshka-oai
- #8458 chore: 在 rollout 日志文件中保存更多 turn 上下文信息 @apanasenko-oai
- #8466 fix(tui2): 在拖动时开始 transcript 选择 @joshka-oai
- #8293 [tui] 为 TUI 状态头添加可选详情 @sayan-oai
- #8471 feat(tui2): 添加多击 transcript 选择 @joshka-oai
- #8486 fix(codex-cli): 改进 ripgrep 下载诊断 @joshka-oai
- #8460 fix: 限制 unified exec 中 exec 命令的输出大小 @shijie-oai
- #8493 fix: 修复将临时文件写入 cwd 而非 TMPDIR 的测试 @bolinfest
- #8484 移除 reasoning 格式 @aibrahim-oai
- #8499 perf(tui): 将重绘调度限制为 60fps @joshka-oai
- #8496 feat: 引入 codex-utils-cargo-bin,作为 assert_cmd::Command 的替代方案 @bolinfest
- #8498 fix: 将测试路径声明为相对于
$CARGO_MANIFEST_DIR@bolinfest - #8307 [chore] 向 StreamErrorEvent 添加 additional_details + 贯通传递 @sayan-oai
- #8522 fix: 将 windows-sys 限制到 Windows 目标 @RunjiLiu
- #8595 chore(deps): 在 /codex-rs 中将 toml_edit 从 0.23.7 升级到 0.24.0+spec-1.1.0 @dependabot
- #8596 chore(deps): 在 /codex-rs 中将 tracing-subscriber 从 0.3.20 升级到 0.3.22 @dependabot
- #8597 chore(deps): 在 /codex-rs 中将 tokio 从 1.47.1 升级到 1.48.0 @dependabot
- #8598 chore(deps): 在 /codex-rs 中将 regex-lite 从 0.1.7 升级到 0.1.8 @dependabot
- #8491 在 models etag 不匹配时刷新 @aibrahim-oai
- #8483 使用 SandboxUsers 组处理 ACL,而不是分别授予每个 sandbox 用户 @iceweasel-oai
- #8676 记录 compaction 请求体 @pakrym-oai
- #8488 从 tui 中移除模型系列 @aibrahim-oai
- #8662 将用户文档替换为指向开发者文档站点的链接 @etraut-openai
- #8681 perf(tui2): 减少不必要的重绘 @joshka-oai
- #8682 修复 README 中的损坏链接 @etraut-openai
- #8677 在恢复时考虑最后的 token 计数 @aibrahim-oai
- #8687 当功能禁用时强制禁用远程模型刷新 @aibrahim-oai
- #8415 chore(deps): 在 /codex-rs 中将 tracing-opentelemetry 从 0.31.0 升级到 0.32.0 @dependabot
- #8688 为反馈提交附加更多标签 @pakrym-oai
- #8701 chore: 更新过时文档 @tibo-openai
- #8693 perf(tui2): 缓存 transcript 视图渲染 @joshka-oai
- #8697 fix: 提亮 transcript 复制提示 @joshka-oai
- #8629 ci: 阻止工作流在 fork 上运行 @leezenn
- #8695 fix(tui2): 避免在单元格边界处滚动粘滞 @joshka-oai
- #8716 fix(tui2): 在视口底部渲染复制 pill @joshka-oai
- #8718 tui2: 复制选择后取消高亮 @joshka-oai
- #8721 chore(deps): 在 /codex-rs 中将 clap_complete 从 4.5.57 升级到 4.5.64 @dependabot
- #8723 chore(deps): 在 /codex-rs 中将 tokio-stream 从 0.1.17 升级到 0.1.18 @dependabot
- #8724 chore(deps): 在 /codex-rs 中将 derive_more 从 2.0.1 升级到 2.1.1 @dependabot
- #8725 chore(deps): 在 /codex-rs 中将 insta 从 1.44.3 升级到 1.46.0 @dependabot
- #8556 fix: 修复聊天中的多个工具调用 @jif-oai
- #8738 fix: /review 遵循会话 cwd @tibo-openai
- #8694 [MCP] 清理 MCP 工具名称,以确保它们与 Responses APO 兼容 @gpeal
- #8728 feat(tui2): transcript 滚动条(自动隐藏 + 拖动) @joshka-oai
- #8708 fix(codex-api): 处理 Chat Completions DONE 哨兵值 @joshka-oai
- #8743 (MacOS) 从 MDM 加载配置要求 @gt-oai
- #8377 feat: 向 user_turn/turn_start app_server API 暴露 outputSchema @apanasenko-oai
- #8747 chore: GH 分页器 @jif-oai
- #8686 提高设置期间创建/更新防火墙规则的幂等性。 @iceweasel-oai
- #8683 绝不允许 sandbox 写入 .codex/ 或 .codex/.sandbox/ @iceweasel-oai
- #8459 chore: 改进 skills 渲染部分 @gverma-openai
- #7858 在设备认证提示链接中使用 issuer URL @abrar71
- #8492 尽力“隐藏” Sandbox 用户 @iceweasel-oai
- #8751 feat: 在 *.rules 中为 prefix_rule() 添加 justification 参数 @bolinfest