0.107.0
新增功能
- 现在可以将线程分叉为子代理,从而更轻松地在不离开当前对话的情况下分支工作。 (#12499)
- 实时语音会话现在允许你选择麦克风和扬声器设备、持久保存这些选择,并以更契合转录的格式发送音频。 (#12849, #12850, #13030)
- 自定义工具现在可以返回多模态输出,包括图像等结构化内容,而不再局限于纯文本。 (#12948)
- 应用服务器现在暴露更丰富的模型可用性和升级元数据,TUI 会利用这些信息通过限次显示的工具提示说明受套餐限制的模型。 (#12958, #12972, #13021)
- 记忆现在可配置,并且新增了
codex debug clear-memories命令,可在需要时完全重置已保存的记忆状态。 (#12997, #12999, #13002, #13085)
问题修复
- 使用
thread/resume重新连接时,现在会恢复待处理的审批和输入请求,而不再让客户端不同步。 (#12560) thread/start不再阻塞无关的 app-server 请求,从而减少在 MCP 认证检查等慢启动路径中的卡顿。 (#13033)- 交互式终端会话不再重复打印最终助手响应。 (#13082)
- 大型粘贴内容占位符现在能在文件补全后正确保留,修复了
0.106.0引入的回归。 (#13070) - 对于未携带套餐信息的 ChatGPT 账户,现在能正确处理账户读取,而不再触发反复登录问题。 (#13072)
- TUI 中的 Diff 渲染现在能更好地遵循主题颜色,并在 Windows Terminal 及其他低色彩环境中显示得更清晰。 (#13016, #13037)
- MCP OAuth 登录流程现在会为需要
resource参数的服务器正确转发已配置的oauth_resource值。 (#12866)
其他变更
- 通过改进 Linux 上的受限只读处理,并在 Windows 上避开
~/.ssh等敏感目录,收紧了 sandbox 文件系统行为。(#12369, #12835) - 提权的 shell 命令在重新运行时现在会保留其 sandbox 配置,从而填补了审批可能丢失预期限制的缺口。(#12839)
- 更新了 sandbox 升级指引,使由 sandbox 网络访问导致的依赖安装失败更明确地被视为升级候选。 (#13051)
完整更新日志:https://github.com/openai/codex/compare/rust-v0.106.0...rust-v0.107.0
- #12925 chore: 让 awaiter 更安静 @jif-oai
- #12499 feat: 多 agent 分叉 thread @jif-oai
- #12837 在 rollout history 中记录 js_repl 嵌套工具响应 @fjord-oai
- #12774 feat: 添加 post-compaction sub-agent 信息 @jif-oai
- #12929 移除噪音日志 @pakrym-oai
- #12835 不授予 sandbox 对 ~/.ssh 和其他几个目录的读取权限。 @iceweasel-oai
- #12839 feat: 在升级请求中包含 sandbox 配置 @bolinfest
- #12940 feat: 向 memories 添加 git 信息 @jif-oai
- #12727 tui: 使用 thread_id 进行 resume/fork cwd 解析 @charley-oai
- #12950 允许客户端选择不发送 summary @pakrym-oai
- #12944 fix: 按字母顺序排序 codex features 列表 @bolinfest
- #12849 添加 realtime 音频设备配置 @aibrahim-oai
- #12957 test: 将 unix_escalation 测试移到同级文件 @bolinfest
- #12947 feat: 向 turn 环境上下文添加本地日期/时区 @celia-oai
- #12959 使 realtime 音频测试具有确定性 @aibrahim-oai
- #12958 Feat: cxa-1833 更新 model/list @shijie-oai
- #12850 添加 realtime 音频设备选择器 @aibrahim-oai
- #12948 支持多模态自定义工具输出 @fjord-oai
- #12745 [apps] 使用 force_fetch=true 改进 app/list @mzeng-openai
- #12866 为 MCP 登录流程添加 oauth_resource 处理 @etraut-openai
- #12936 添加后台任务以刷新 requirements 本地缓存 @alexsong-oai
- #12972 添加模型可用性 NUX 元数据 @aibrahim-oai
- #12981 添加 realtime websocket 追踪 @aibrahim-oai
- #12968 notify: 在 legacy hook payload 中包含 client @bolinfest
- #12997 feat: 添加 use memories 配置 @jif-oai
- #12999 feat: 生成 memories 配置 @jif-oai
- #13002 feat: 在 phase 1 提取中使用 memory 模式 @jif-oai
- #13001 chore: 临时移除 awaiter @jif-oai
- #13011 fix: 更稳定的 notify 脚本 @jif-oai
- #12970 fix: 为 permission profile 文件根使用 AbsolutePathBuf @bolinfest
- #13016 fix(tui): 将 Windows Terminal 的 diff ansi16 提升为 truecolor @fcoury
- #13030 将 TUI 语音转录音频与 4o ASR 对齐 @nornagon-openai
- #13047 app-server: 消除 running thread resume 测试的不稳定性 @bolinfest
- #12560 app-server: 在
thread/resume时重放待处理的 item 请求 @euroelessar - #13055 fix: 在 ubuntu-24.04-arm 上禁用 CI 中的 Bazel 构建,直到能够使其稳定 @bolinfest
- #12964 execpolicy: 添加 host_executable() 路径映射 @bolinfest
- #13051 澄清针对 sandbox 相关网络故障的升级指引 @daniel-oai
- #12612 统一 rollout 重建与 resume/fork TurnContext hydration @charley-oai
- #13067 [apps] 稳定 app list updated 事件。 @mzeng-openai
- #12369 feat(linux-sandbox): 在 bwrap 中支持受限的 ReadOnlyAccess @viyatb-oai
- #13037 fix(tui): 支持主题感知的 diff 背景及回退行为 @fcoury
- #13070 在文件补全期间保持 large-paste 占位符完整 @etraut-openai
- #13072 处理 ChatGPT 账户缺少 plan 信息的情况 @etraut-openai
- #13021 添加模型可用性 NUX 工具提示 @aibrahim-oai
- #13080 app-server: 添加在测试客户端中监听事件的能力 @euroelessar
- #13082 在交互式会话中抑制 stdout 上重复的 assistant 输出 @etraut-openai
- #13033 fix(app-server): 使 thread/start 非阻塞 @owenlin0
- #13046 core: 在 zsh-fork 中采用 host_executable() 规则 @bolinfest
- #13084 app-server: 向
Thread对象添加ephemeral字段 @euroelessar - #13085 feat: 添加 debug clear-memories 命令以彻底清除 memories 状态 @sayan-oai