## 新功能
- **插件现为一流工作流**:Codex 可在启动时同步产品范围的插件,在 `/plugins` 中浏览它们,并通过更清晰的认证/设置处理来安装或移除它们。(#15041, #15042, #15195, #15215, #15217, #15264, #15275, #15342, #15580, #15606, #15802)
- **子代理现使用可读的基于路径的地址**(如 `/root/agent_a`),并支持结构化代理间通信和代理列表,用于多代理 v2 工作流。(#15313, #15515, #15556, #15570, #15621, #15647)
- **`/title` 终端标题选择器**现同时在经典 TUI 和应用服务器 TUI 中生效,使并行会话更易区分。(#12334, #15860)
- **应用服务器客户端**现可发送 `!` shell 命令、监视文件系统变更,并使用持有者令牌认证连接到远程 WebSocket 服务器。(#14988, #14533, #14847, #14853)
- **图像工作流更顺畅**:`view_image` 现为代码模式返回图像 URL,生成的图像可从 TUI 重新打开,且图像生成历史在恢复后仍保留。(#15072, #15154, #15223)
- **提示词历史回忆**现可在应用服务器 TUI 中使用,包括跨会话回忆。(#14945)
## 问题修复
- `tui_app_server` 不再重复显示实时推理摘要或 `/review` 输出,并在背压下保留转录文本而非丢弃它。(#15758, #15839, #15759)
- `tui_app_server` 中的 ChatGPT 登录现重新打开本地浏览器,在 `Ctrl+C` 时干净取消,且当您未登录时不再导致启动失败。(#15672, #15673, #15670)
- **提前退出现可靠地恢复终端状态**,避免退出后 shell 状态损坏;tmux 用户还可在 `Shift+Left` 上使用可工作的队列消息编辑快捷键。(#15671, #15480)
- **Linux 沙盒化工具调用**在较旧发行版(使用旧版 `bubblewrap`)上更可靠,Windows 受限令牌沙盒现支持更多拆分策略 carveout 布局。(#15693, #14172)
- **远程多代理会话**现显示代理名称而非原始 ID,并能从过时的回合转向竞争中更优雅地恢复。(#15513, #15714, #15163)
- **插件支持的提及和产品管控**现行为更可预测,修复了显式提及丢失上下文或插件被错误过滤的情况。(#15372, #15263, #15279)
## 文档
- 扩展了应用服务器和执行服务器的文档/模式固定装置,涵盖执行服务器设置、文件系统监视 RPC、实时转录通知,以及新的 Python `thread.run(...)` 快速入门流程。(#15089, #14533, #15344, #15088)
## 杂项
- **应用服务器支持的 TUI 现默认启用**,插件/应用部署标志已在正常构建中翻转开启。(#15661, #15713, #15719, #15820)
- 作为持续工具表面清理的一部分,移除了遗留的工件工具,并停用了旧的 `read_file` 和 `grep_files` 处理程序。(#15851, #15864, #15773, #15775)
## 更新日志
完整更新日志:https://github.com/openai/codex/compare/rust-v0.116.0...rust-v0.117.0
- #14945 feat(tui):在应用服务器 TUI 中恢复编写器历史记录 @fcoury
- #15092 fix:尝试修复 ci.yml 中的 "Stage npm package" 步骤 @bolinfest
- #15075 将工具错误传播到代码模式 @pakrym-oai
- #15072 从 view_image 工具返回图像 URL @pakrym-oai
- #15076 为自定义提示词添加启动弃用警告 @etraut-openai
- #15102 还原 "fix:强化插件功能管控" @xl-openai
- #15077 在实时交接输出中添加最终消息前缀 @aibrahim-oai
- #13494 使 SQLite 反馈日志与反馈格式化程序对齐 @charley-oai
- #14888 功能:在线程恢复时重用持久化的模型和推理努力 @shijie-oai
- #15111 不为 v2 实时添加转录 @aibrahim-oai
- #15103 添加 update_plan 代码模式结果 @pakrym-oai
- #15100 添加 apply_patch 代码模式结果 @pakrym-oai
- #15104 fix:强化插件功能管控 @xl-openai
- #15089 添加执行服务器存根服务器和协议文档 @starr-openai
- #15042 支持精选插件 @alexsong-oai
- #15088 添加 Python SDK thread.run 便捷方法 @shaqayeq-oai
- #15119 从执行服务器中移除 stdio 传输 @pakrym-oai
- #14632 feat(core, tracing):在 WebSocket 上创建回合跨度 @owenlin0
- #15011 将会话和回合头转发到 MCP HTTP 请求 @nicholasclark-openai
- #15118 [钩子] 为 Stop 和 UserPromptSubmit 添加 turn_id 扩展 @eternal-openai
- #14970 简单目录提及 @canvrno-oai
- #14988 将 thread/shellCommand 添加到应用服务器 API 表面 @etraut-openai
- #15041 feat:支持产品范围的插件。 @xl-openai
- #15056 feat:添加代理网络的图形表示 @jif-oai
- #15163 fix:代理已关闭的情况 @jif-oai
- #15125 将环境抽象移入执行服务器 @pakrym-oai
- #15180 chore:为配置文件添加指标 @jif-oai
- #15175 chore:morpheus 不生成记忆 @jif-oai
- #15185 还原 "将会话和回合头转发到 MCP HTTP 请求" @nicholasclark-openai
- #14867 [钩子] 使用用户消息 > 开发者消息进行提示词延续 @eternal-openai
- #15196 添加实验性执行服务器 URL 处理 @pakrym-oai
- #15198 发布用于参数注释 lint 的可运行 DotSlash 包 @bolinfest
- #15090 添加执行服务器进程和文件系统 RPC @starr-openai
- #15201 以不同方式记录自动审查者批准来源 @gabec-openai
- #12334 feat(tui):添加 /title 终端标题配置 @yvolovich-cyber
- #15206 feat(tracing):用 turn_id 标记应用服务器回合跨度 @owenlin0
- #15216 将终端模块移至 terminal-detection crate @aibrahim-oai
- #15207 为 Windows 破坏性命令添加特定工具指导 @iceweasel-oai
- #15154 向 TUI 添加完整图像路径 @won-openai
- #15217 feat:公开插件/读取的 needs_auth。 @xl-openai
- #15190 通过 _meta 贯穿 MCP 回合元数据 @nicholasclark-openai
- #15220 feat(app-server):添加 mcpServer/startupStatus/updated 通知 @owenlin0
- #15222 将保存目录更改为 codex_home @won-openai
- #15232 重构执行服务器文件系统在本地和远程之间的分割 @pakrym-oai
- #15021 V8 Bazel 构建 @cconger
- #15150 将认证代码移入登录 crate @aibrahim-oai
- #15195 [插件] 在调用 plugin/install 时安装 MCP @mzeng-openai
- #15254 core:添加全缓冲区执行捕获策略 @bolinfest
- #15263 fix:区分缺失和空的插件产品 @xl-openai
- #15253 将功能拆分为 codex-features crate @aibrahim-oai
- #15233 将执行进程拆分为本地和远程实现 @starr-openai
- #15199 使用已发布的 DotSlash 包进行参数注释 lint @bolinfest
- #15215 初始插件 TUI 菜单 - 列表和只读。 tui + tui_app_server @canvrno-oai
- #15252 暂时在 Windows 上禁用钩子 @eternal-openai
- #15264 feat:添加一次性启动远程插件同步 @xl-openai
- #15262 添加守护者后续提醒 @charley-oai
- #15223 Feat/恢复图像生成历史 @won-openai
- #15275 feat:在精选插件同步中优先使用 git @xl-openai
- #14869 添加远程环境 CI 矩阵和集成测试 @pakrym-oai
- #15218 为 codex-tui 添加临时应用服务器发起者回退 @etraut-openai
- #15328 尝试修复 bazel @jif-oai
- #15324 添加远程测试技能 @pakrym-oai
- #15313 feat:将多代理更改为使用类似路径的系统而非 UUID @jif-oai
- #15244 将 Python SDK 应用服务器 stdio 固定为 Windows 上的 UTF-8 @shaqayeq-oai
- #15337 提升 aws-lc-rs @cconger
- #15203 添加我们新构建的 v8 的 v8-poc 使用者 @cconger
- #15273 [应用] 在 yolo 模式下使用 ARC。 @mzeng-openai
- #15128 chore(core) 移除 Feature::PowershellUtf8 @dylan-hurd-oai
- #15344 在 v2 中添加实时转录通知 @aibrahim-oai
- #15285 在标志后隐藏 TUI /plugins 菜单 @canvrno-oai
- #15114 fix:允许受限文件系统配置文件读取辅助可执行文件 @celia-oai
- #15231 chore(core) 更新 prefix_rule 指导 @dylan-hurd-oai
- #15036 fix(core) 在未沙盒化时禁用 command_might_be_dangerous @dylan-hurd-oai
- #15348 向精选插件传递平台参数 @alexsong-oai
- #15276 在 v8 上进行代码模式 @cconger
- #15372 [插件] 修复插件显式提及上下文管理。 @mzeng-openai
- #15366 chore(context) 包含守护者批准上下文 @dylan-hurd-oai
- #15390 从 tui_app_server 中移除遗留应用服务器通知处理 @etraut-openai
- #15409 为 macosx 添加 JIT 授权 @cconger
- #15414 从 tui_app_server 中移除遗留认证和通知处理 @etraut-openai
- #15376 [应用] 改进 TUI 的应用工具加载。 @mzeng-openai
- #15415 chore(exec_policy) ExecPolicyRequirementScenario 测试 @dylan-hurd-oai
- #15464 移除 smart_approvals 别名迁移 @charley-oai
- #15443 core:快照 fork 启动上下文注入 @charley-oai
- #15480 在 tmux 中使用 Shift+Left 编辑队列消息 @charley-oai
- #15317 nit:guard -> registry @jif-oai
- #15338 fix:当系统 bwrap 缺少 --argv0 时回退到 vendored bubblewrap @bolinfest
- #15520 fix:cargo deny @jif-oai
- #15279 将插件标记为插件,并隐藏给定插件的技能/应用 @canvrno-oai
- #15259 tui:在手动 /compact 期间排队后续操作 @charley-oai
- #15515 feat:结构化多代理输出 @jif-oai
- #15357 修复:主动认证刷新以首先重新加载受保护的磁盘状态 @celia-oai
- #15342 插件 TUI 安装/卸载 @canvrno-oai
- #15540 chore:拆分子代理 v2 实现 @jif-oai
- #15516 将守护者响应 API 错误纳入拒绝理由 @charley-oai
- #15378 feat:支持按名称禁用技能。 @xl-openai
- #15529 在 TUI 中统一实时停止处理 @aibrahim-oai
- #15557 fix:主 TUI @jif-oai
- #15556 feat:用于子代理通信的新操作类型 @jif-oai
- #15211 [钩子] 添加非流式(非 stdin 风格)仅 shell 的 PreToolUse 支持 @eternal-openai
- #15560 feat:使用 serde 区分代理间通信 @jif-oai
- #15426 chore(core) 将审批审查者添加到 UserTurn @dylan-hurd-oai
- #15562 [codex] 添加回滚上下文重复快照 @charley-oai
- #15570 feat:多代理 v2 的自定义监视器 @jif-oai
- #15575 feat:多代理 v2 的自定义监视器 @jif-oai
- #15576 feat:多代理 v2 的自定义监视器 @jif-oai
- #15360 fix:使用 OsString 而非 String 构建 PATH 环境变量 @bolinfest
- #15239 添加 fork 快照模式 @charley-oai
- #15554 添加插件创建者作为系统技能 @alexsong-oai
- #15592 将 landlock 助手提取到 codex-sandboxing @pakrym-oai
- #15593 将 macOS 沙盒构建器移入 codex-sandboxing @pakrym-oai
- #15478 [codex-cli][app-server] 在返回的错误中更新自助业务使用限制副本 @dhruvgupta-oai
- #15600 将 imagegen 技能移入系统技能 @dkundel-openai
- #15599 将沙盒策略转换移入 codex-sandboxing @pakrym-oai
- #15580 从 plugins/list 结果中移除过滤器 @canvrno-oai
- #15581 稳定 macOS CI 测试超时 @dylan-hurd-oai
- #15613 nit:拆分 v2 等待 @jif-oai
- #15614 fix:flaky 测试 @jif-oai
- #15621 feat:为子代理 v2 列出代理 @jif-oai
- #15623 nit:在列出代理时优化 @jif-oai
- #15549 允许全局网络允许列表通配符 @rreichel3-oai
- #15424 完成将 codex exec 移至应用服务器 @etraut-openai
- #15603 将沙盒管理器和转换提取到 codex-sandboxing @pakrym-oai
- #15484 chore(deps):将 pnpm/action-setup 从 4 升级到 5 @dependabot
- #14777 将 vedantmgoyal9/winget-releaser 从 19e706d4c9121098010096f9c495a70a7518b30f 升级到 7bd472be23763def6e16bd06cc8b1cdfab0e2fd5 @dependabot
- #15558 [Codex TUI] - 按安装状态优先、字母顺序其次对 /plugins TUI 菜单排序 @canvrno-oai
- #15598 在插件安装/卸载后刷新提及列表 @canvrno-oai
- #15624 feat:禁用 notifier v2 并在代理交互时开始回合 @jif-oai
- #15605 [codex] 稳定 compact resume 和 fork snapshot flaky 测试 @charley-oai
- #15658 尝试修复 git 故障 @jif-oai
- #15657 尝试修复 git 故障 @jif-oai
- #15656 尝试修复 git 故障 @jif-oai
- #15655 尝试修复 git 故障 @jif-oai
- #15654 尝试修复 git 故障 @jif-oai
- #15653 尝试修复 git 故障 @jif-oai
- #15652 尝试修复 git 故障 @jif-oai
- #15651 尝试修复 git 故障 @jif-oai
- #15650 尝试修复 git 故障 @jif-oai
- #15606 漂亮的插件标签,在 MCP 工具刷新期间保留插件应用来源 @canvrno-oai
- #15579 将语音空间保持超时增加到 1 秒 @aibrahim-oai
- #15093 core:使 FileWatcher 可重用 @euroelessar
- #15547 app-server:向 `command/exec` 添加背压和批处理 @euroelessar
- #15647 feat:通信模式 v2 @jif-oai
- #15438 feat:在 plugin/list 中包含市场加载错误 @xl-openai
- #15545 chore:使用访问令牌过期进行主动认证刷新 @celia-oai
- #15530 chore:在永久令牌失败后停止应用服务器认证刷新风暴 @celia-oai
- #15577 在回滚期间修剪回合前上下文更新 @charley-oai
- #15660 在禁用的 TUI 列表行上隐藏数字前缀 @canvrno-oai
- #15644 fix:在移除 shell-tool-mcp 后保留 zsh-fork 发布资产 @bolinfest
- #15670 tui_app_server:在未登录时容忍缺失的速率限制 @etraut-openai
- #15564 将 git 实用程序移至专用 crate @aibrahim-oai
- #15669 清理 TUI /plugins 行对齐 @canvrno-oai
- #15671 tui:在提前退出时始终恢复终端 @etraut-openai
- #15672 tui_app_server:在本地浏览器中打开 ChatGPT 登录 @etraut-openai
- #15673 tui_app_server:在 Ctrl+C 退出前取消活动登录 @etraut-openai
- #15676 调整 /plugin 菜单措辞 @canvrno-oai
- #15666 抑制插件安装 MCP OAuth URL 控制台垃圾信息 @canvrno-oai
- #15573 [插件] 工具建议和应用的额外管控。 @mzeng-openai
- #15665 从沙盒执行请求中移除 sandbox_permissions @pakrym-oai
- #15572 将字符串截断助手移入 codex-utils-string @aibrahim-oai
- #14533 app-server:添加文件系统监视支持 @euroelessar
- #15674 在 tui 和 tui_app_server 中使用延迟 shimmer 进行插件加载头 @canvrno-oai
- #15689 app-server:在初始化响应中返回 codex home @euroelessar
- #15363 fix:将 rmcp-client 环境变量保留为 OsString @bolinfest
- #15700 在插件的 $mentions 中移除应用和技能的血统过滤 @canvrno-oai
- #15692 在 TUI /plugin 详情中添加法律链接 @canvrno-oai
- #15351 在 MDM 工作区写入根中展开 ~ @evawong-oai
- #15548 将部署提取到其自己的 crate 中 @aibrahim-oai
- #15699 [codex] 将 fork 上下文注入推迟到第一个回合 @charley-oai
- #15601 [app-server] 添加覆盖功能标志的方法。 @mzeng-openai
- #15708 TUI 插件菜单清理 - 隐藏应用 ID @canvrno-oai
- #15677 修复过时的快速入门集成断言 @shaqayeq-oai
- #15713 [插件] 翻转标志。 @mzeng-openai
- #15719 [插件] 翻转更多标志。 @mzeng-openai
- #14172 fix:在 Windows 受限令牌沙盒中支持拆分 carveout @viyatb-oai
- #15714 修复 tui_app_server 中的过时回合转向回退 @etraut-openai
- #15722 [插件] 为工具搜索添加标志。 @mzeng-openai
- #15734 更新插件创建者技能。 @xl-openai
- #15766 chore:tty 指标 @jif-oai
- #15519 fix(core):mcp 缺失注释的默认审批行为 @fouad-openai
- #15775 chore:移除 grep_files 处理程序 @jif-oai
- #15710 对 cwd 状态使用 AbsolutePathBuf @pakrym-oai
- #15778 feat:渲染库 v1 @jif-oai
- #15758 fix(tui):避免重复的实时推理摘要 @fcoury
- #15773 chore:移除 read_file 处理程序 @jif-oai
- #15776 feat:添加多线程日志查询 @jif-oai
- #15744 提取 codex-instructions crate @aibrahim-oai
- #15339 添加非交互式恢复过滤器选项 @nornagon-openai
- #15746 提取 codex-utils-plugins crate @aibrahim-oai
- #15747 提取 codex-plugin crate @aibrahim-oai
- #15748 提取 codex-analytics crate @aibrahim-oai
- #15707 阐明 MDM 路径解析的 codex_home 基础 @evawong-oai
- #15513 fix(tui_app_server):修复远程子代理切换和代理名称 @fcoury
- #14856 [应用][tool_suggest] 移除 tool_suggest 对工具搜索的依赖。 @mzeng-openai
- #14847 feat:为应用服务器添加 WebSocket 认证 @viyatb-oai
- #15759 fix(tui_app_server):在背压下保留转录事件 @fcoury
- #15749 提取 codex-core-skills crate @aibrahim-oai
- #15798 在 `getAuthStatus` 中避免重复认证刷新 @etraut-openai
- #15659 添加 MCP 工具调用跨度 @nicholasclark-openai
- #15789 将 ChatGPT `hc` 计划视为企业版 @arnavdugar-openai
- #15802 TUI 插件菜单润色 @canvrno-oai
- #15785 为执行服务器 URL 添加缓存环境管理器 @pakrym-oai
- #15806 向 tui_app_server 添加 ReloadUserConfig @canvrno-oai
- #15810 app-server:组织应用服务器以允许更多传输 @euroelessar
- #15800 [mcp] 改进自定义 MCP 引出 @mzeng-openai
- #15531 [钩子] 添加非流式(非 stdin 风格)仅 shell 的 PostToolUse 支持 @eternal-openai
- #15820 [插件] 翻转标志开启。 @mzeng-openai
- #15825 修复 tui_app_server 中的引用命令渲染 @etraut-openai
- #14853 通过客户端连接远程应用服务器认证 @etraut-openai
- #15817 在 Windows 上展开主目录相对路径 @tiffanycitra
- #15693 fix:在不回退到 vendored bwrap 的情况下修复旧系统 bubblewrap 兼容性 @viyatb-oai
- #15784 feat:用自定义库替换 askama @jif-oai
- #15851 feat:丢弃工件工具和功能 @jif-oai
- #15861 feat:清理生成 v1 @jif-oai
- #15691 feat:执行服务器为统一执行做准备 @jif-oai
- #15864 chore:丢弃工件库 @jif-oai
- #15812 core:移除对技能脚本的特殊 execve 处理 @bolinfest
- #15869 fix:flaky @jif-oai
- #15877 chore:要求代理 md 不要玩弄 PID @jif-oai
- #15866 feat:在 `exec-server` 中使用 `ProcessId` @jif-oai
- #15829 [插件] 更新可建议插件列表。 @mzeng-openai
- #15880 fix:最大深度代理仍具有 v2 工具 @jif-oai
- #15839 修复应用服务器 TUI 中的重复 /review 消息 @etraut-openai
- #15805 添加 MCP 连接器指标 @nicholasclark-openai
- #15661 默认启用 `tui_app_server` 功能 @etraut-openai
- #15835 fix:为 apply_patch 测试工具程序 futures 装箱 @bolinfest
- #15796 [codex] 从安全允许列表中阻止不安全的 git 全局选项 @adrian-openai
- #15813 添加中间通配符测试覆盖率 @evawong-oai
- #15881 fix:root 作为 std 代理 @jif-oai
- #15860 feat(tui):为 tui 应用服务器添加终端标题支持 @fcoury
- #15885 [mcp] 修复 legacy_tools @mzeng-openai
## New Features
- Plugins are now a first-class workflow: Codex can sync product-scoped plugins at startup, browse them in `/plugins`, and install or remove them with clearer auth/setup handling. (#15041, #15042, #15195, #15215, #15217, #15264, #15275, #15342, #15580, #15606, #15802)
- Sub-agents now use readable path-based addresses like `/root/agent_a`, with structured inter-agent messaging and agent listing for multi-agent v2 workflows. (#15313, #15515, #15556, #15570, #15621, #15647)
- The `/title` terminal-title picker now works in both the classic TUI and the app-server TUI, making parallel sessions easier to tell apart. (#12334, #15860)
- App-server clients can now send `!` shell commands, watch filesystem changes, and connect to remote websocket servers with bearer-token auth. (#14988, #14533, #14847, #14853)
- Image workflows got smoother: `view_image` now returns image URLs for code mode, generated images are reopenable from the TUI, and image-generation history survives resume. (#15072, #15154, #15223)
- Prompt history recall now works in the app-server TUI, including across sessions. (#14945)
## Bug Fixes
- `tui_app_server` no longer duplicates live reasoning summaries or `/review` output, and it preserves transcript text instead of dropping it under backpressure. (#15758, #15839, #15759)
- ChatGPT login in `tui_app_server` now opens the local browser again, cancels cleanly on `Ctrl+C`, and no longer fails startup when you're logged out. (#15672, #15673, #15670)
- Early exits now restore terminal state reliably, avoiding broken shell state after quitting; tmux users also get a working queued-message edit shortcut on `Shift+Left`. (#15671, #15480)
- Linux sandboxed tool calls are more reliable on older distributions with older `bubblewrap`, and Windows restricted-token sandboxing now supports more split-policy carveout layouts. (#15693, #14172)
- Remote multi-agent sessions now show agent names instead of raw IDs and recover more gracefully from stale turn-steering races. (#15513, #15714, #15163)
- Plugin-backed mentions and product gating now behave more predictably, fixing cases where explicit mentions lost context or plugins were filtered incorrectly. (#15372, #15263, #15279)
## Documentation
- Expanded the app-server and exec-server docs/schema fixtures to cover exec-server setup, filesystem watch RPCs, realtime transcript notifications, and the new Python `thread.run(...)` quickstart flow. (#15089, #14533, #15344, #15088)
## Chores
- The app-server-backed TUI is now enabled by default, and the plugin/app rollout flags have been flipped on in normal builds. (#15661, #15713, #15719, #15820)
- Removed the legacy artifact tool and retired the old `read_file` and `grep_files` handlers as part of ongoing tool-surface cleanup. (#15851, #15864, #15773, #15775)
## Changelog
Full Changelog: https://github.com/openai/codex/compare/rust-v0.116.0...rust-v0.117.0
- #14945 feat(tui): restore composer history in app-server tui @fcoury
- #15092 fix: try to fix "Stage npm package" step in ci.yml @bolinfest
- #15075 Propagate tool errors to code mode @pakrym-oai
- #15072 Return image URL from view_image tool @pakrym-oai
- #15076 Add a startup deprecation warning for custom prompts @etraut-openai
- #15102 Revert "fix: harden plugin feature gating" @xl-openai
- #15077 Add final message prefix to realtime handoff output @aibrahim-oai
- #13494 Align SQLite feedback logs with feedback formatter @charley-oai
- #14888 Feat: reuse persisted model and reasoning effort on thread resume @shijie-oai
- #15111 don't add transcript for v2 realtime @aibrahim-oai
- #15103 Add update_plan code mode result @pakrym-oai
- #15100 Add apply_patch code mode result @pakrym-oai
- #15104 fix: harden plugin feature gating @xl-openai
- #15089 Add exec-server stub server and protocol docs @starr-openai
- #15042 Support featured plugins @alexsong-oai
- #15088 Add Python SDK thread.run convenience methods @shaqayeq-oai
- #15119 Remove stdio transport from exec server @pakrym-oai
- #14632 feat(core, tracing): create turn spans over websockets @owenlin0
- #15011 Forward session and turn headers to MCP HTTP requests @nicholasclark-openai
- #15118 [hooks] turn_id extension for Stop & UserPromptSubmit @eternal-openai
- #14970 Simple directory mentions @canvrno-oai
- #14988 Add thread/shellCommand to app server API surface @etraut-openai
- #15041 feat: support product-scoped plugins. @xl-openai
- #15056 feat: add graph representation of agent network @jif-oai
- #15163 fix: case where agent is already closed @jif-oai
- #15125 Move environment abstraction into exec server @pakrym-oai
- #15180 chore: add metrics for profile @jif-oai
- #15175 chore: morpheus does not generate memories @jif-oai
- #15185 Revert "Forward session and turn headers to MCP HTTP requests" @nicholasclark-openai
- #14867 [hooks] use a user message > developer message for prompt continuation @eternal-openai
- #15196 Add experimental exec server URL handling @pakrym-oai
- #15198 Publish runnable DotSlash package for argument-comment lint @bolinfest
- #15090 Add exec-server process and filesystem RPCs @starr-openai
- #15201 Log automated reviewer approval sources distinctly @gabec-openai
- #12334 feat(tui): add /title terminal title configuration @yvolovich-cyber
- #15206 feat(tracing): tag app-server turn spans with turn_id @owenlin0
- #15216 Move terminal module to terminal-detection crate @aibrahim-oai
- #15207 add specific tool guidance for Windows destructive commands @iceweasel-oai
- #15154 adding full imagepath to tui @won-openai
- #15217 feat: expose needs_auth for plugin/read. @xl-openai
- #15190 Plumb MCP turn metadata through _meta @nicholasclark-openai
- #15220 feat(app-server): add mcpServer/startupStatus/updated notification @owenlin0
- #15222 changed save directory to codex_home @won-openai
- #15232 Refactor ExecServer filesystem split between local and remote @pakrym-oai
- #15021 V8 Bazel Build @cconger
- #15150 Move auth code into login crate @aibrahim-oai
- #15195 [plugins] Install MCPs when calling plugin/install @mzeng-openai
- #15254 core: add a full-buffer exec capture policy @bolinfest
- #15263 fix: Distinguish missing and empty plugin products @xl-openai
- #15253 Split features into codex-features crate @aibrahim-oai
- #15233 Split exec process into local and remote implementations @starr-openai
- #15199 Use released DotSlash package for argument-comment lint @bolinfest
- #15215 Initial plugins TUI menu - list and read only. tui + tui_app_server @canvrno-oai
- #15252 Disable hooks on windows for now @eternal-openai
- #15264 feat: Add One-Time Startup Remote Plugin Sync @xl-openai
- #15262 Add guardian follow-up reminder @charley-oai
- #15223 Feat/restore image generation history @won-openai
- #15275 feat: prefer git for curated plugin sync @xl-openai
- #14869 Add remote env CI matrix and integration test @pakrym-oai
- #15218 Add temporary app-server originator fallback for codex-tui @etraut-openai
- #15328 try to fix bazel @jif-oai
- #15324 Add remote test skill @pakrym-oai
- #15313 feat: change multi-agent to use path-like system instead of uuids @jif-oai
- #15244 Pin Python SDK app-server stdio to UTF-8 on Windows @shaqayeq-oai
- #15337 Bump aws-lc-rs @cconger
- #15203 Add v8-poc consumer of our new built v8 @cconger
- #15273 [apps] Use ARC for yolo mode. @mzeng-openai
- #15128 chore(core) Remove Feature::PowershellUtf8 @dylan-hurd-oai
- #15344 Add realtime transcript notification in v2 @aibrahim-oai
- #15285 Gate tui /plugins menu behind flag @canvrno-oai
- #15114 fix: allow restricted filesystem profiles to read helper executables @celia-oai
- #15231 chore(core) update prefix_rule guidance @dylan-hurd-oai
- #15036 fix(core) disable command_might_be_dangerous when unsandboxed @dylan-hurd-oai
- #15348 Pass platform param to featured plugins @alexsong-oai
- #15276 Code mode on v8 @cconger
- #15372 [plugins] Fix plugin explicit mention context management. @mzeng-openai
- #15366 chore(context) Include guardian approval context @dylan-hurd-oai
- #15390 Remove legacy app-server notification handling from tui_app_server @etraut-openai
- #15409 Add JIT entitlement for macosx @cconger
- #15414 Remove legacy auth and notification handling from tui_app_server @etraut-openai
- #15376 [apps] Improve app tools loading for TUI. @mzeng-openai
- #15415 chore(exec_policy) ExecPolicyRequirementScenario tests @dylan-hurd-oai
- #15464 Remove smart_approvals alias migration @charley-oai
- #15443 core: snapshot fork startup context injection @charley-oai
- #15480 Use Shift+Left to edit queued messages in tmux @charley-oai
- #15317 nit: guard -> registry @jif-oai
- #15338 fix: fall back to vendored bubblewrap when system bwrap lacks --argv0 @bolinfest
- #15520 fix: cargo deny @jif-oai
- #15279 Label plugins as plugins, and hide skills/apps for given plugin @canvrno-oai
- #15259 tui: queue follow-ups during manual /compact @charley-oai
- #15515 feat: structured multi-agent output @jif-oai
- #15357 Fix: proactive auth refresh to reload guarded disk state first @celia-oai
- #15342 Plugins TUI install/uninstall @canvrno-oai
- #15540 chore: split sub-agent v2 implementation @jif-oai
- #15516 Thread guardian Responses API errors into denial rationale @charley-oai
- #15378 feat: support disable skills by name. @xl-openai
- #15529 Unify realtime stop handling in TUI @aibrahim-oai
- #15557 fix: main tui @jif-oai
- #15556 feat: new op type for sub-agents communication @jif-oai
- #15211 [hooks] add non-streaming (non-stdin style) shell-only PreToolUse support @eternal-openai
- #15560 feat: use serde to differenciate inter agent communication @jif-oai
- #15426 chore(core) Add approvals reviewer to UserTurn @dylan-hurd-oai
- #15562 [codex] Add rollback context duplication snapshot @charley-oai
- #15570 feat: custom watcher for multi-agent v2 @jif-oai
- #15575 feat: custom watcher for multi-agent v2 @jif-oai
- #15576 feat: custom watcher for multi-agent v2 @jif-oai
- #15360 fix: build PATH env var using OsString instead of String @bolinfest
- #15239 Add fork snapshot modes @charley-oai
- #15554 Add plugin-creator as system skill @alexsong-oai
- #15592 Extract landlock helpers into codex-sandboxing @pakrym-oai
- #15593 Move macOS sandbox builders into codex-sandboxing @pakrym-oai
- #15478 [codex-cli][app-server] Update self-serve business usage limit copy in error returned @dhruvgupta-oai
- #15600 move imagegen skill into system skills @dkundel-openai
- #15599 Move sandbox policy transforms into codex-sandboxing @pakrym-oai
- #15580 Remove filter from plugins/list result @canvrno-oai
- #15581 Stabilize macOS CI test timeouts @dylan-hurd-oai
- #15613 nit: split v2 wait @jif-oai
- #15614 fix: flaky test @jif-oai
- #15621 feat: list agents for sub-agent v2 @jif-oai
- #15623 nit: optim on list agents @jif-oai
- #15549 Allow global network allowlist wildcard @rreichel3-oai
- #15424 Finish moving codex exec to app-server @etraut-openai
- #15603 Extract sandbox manager and transforms into codex-sandboxing @pakrym-oai
- #15484 chore(deps): bump pnpm/action-setup from 4 to 5 @dependabot
- #14777 Bump vedantmgoyal9/winget-releaser from 19e706d4c9121098010096f9c495a70a7518b30f to 7bd472be23763def6e16bd06cc8b1cdfab0e2fd5 @dependabot
- #15558 [Codex TUI] - Sort /plugins TUI menu by installed status first, alpha second @canvrno-oai
- #15598 Refresh mentions list after plugin install/uninstall @canvrno-oai
- #15624 feat: disable notifier v2 and start turn on agent interaction @jif-oai
- #15605 [codex] Stabilize compact resume and fork snapshot flaky tests @charley-oai
- #15658 try to fix git glitch @jif-oai
- #15657 try to fix git glitch @jif-oai
- #15656 try to fix git glitch @jif-oai
- #15655 try to fix git glitch @jif-oai
- #15654 try to fix git glitch @jif-oai
- #15653 try to fix git glitch @jif-oai
- #15652 try to fix git glitch @jif-oai
- #15651 try to fix git glitch @jif-oai
- #15650 try to fix git glitch @jif-oai
- #15606 Pretty plugin labels, preserve plugin app provenance during MCP tool refresh @canvrno-oai
- #15579 Increase voice space hold timeout to 1s @aibrahim-oai
- #15093 core: Make FileWatcher reusable @euroelessar
- #15547 app-server: Add back pressure and batching to `command/exec` @euroelessar
- #15647 feat: communication pattern v2 @jif-oai
- #15438 feat: include marketplace loading error in plugin/list @xl-openai
- #15545 chore: use access token expiration for proactive auth refresh @celia-oai
- #15530 chore: stop app-server auth refresh storms after permanent token failure @celia-oai
- #15577 Trim pre-turn context updates during rollback @charley-oai
- #15660 Hide numeric prefixes on disabled TUI list rows @canvrno-oai
- #15644 fix: keep zsh-fork release assets after removing shell-tool-mcp @bolinfest
- #15670 tui_app_server: tolerate missing rate limits while logged out @etraut-openai
- #15564 Move git utilities into a dedicated crate @aibrahim-oai
- #15669 Clean up TUI /plugins row allignment @canvrno-oai
- #15671 tui: always restore the terminal on early exit @etraut-openai
- #15672 tui_app_server: open ChatGPT login in the local browser @etraut-openai
- #15673 tui_app_server: cancel active login before Ctrl+C exit @etraut-openai
- #15676 Tweak /plugin menu wording @canvrno-oai
- #15666 Suppress plugin-install MCP OAuth URL console spam @canvrno-oai
- #15573 [plugins] Additional gating for tool suggest and apps. @mzeng-openai
- #15665 Drop sandbox_permissions from sandbox exec requests @pakrym-oai
- #15572 Move string truncation helpers into codex-utils-string @aibrahim-oai
- #14533 app-server: add filesystem watch support @euroelessar
- #15674 Use delayed shimmer for plugin loading headers in tui and tui_app_server @canvrno-oai
- #15689 app-server: Return codex home in initialize response @euroelessar
- #15363 fix: keep rmcp-client env vars as OsString @bolinfest
- #15700 Remove provenance filtering in $mentions for apps and skills from plugins @canvrno-oai
- #15692 Add legal link to TUI /plugin details @canvrno-oai
- #15351 Expand ~ in MDM workspace write roots @evawong-oai
- #15548 Extract rollout into its own crate @aibrahim-oai
- #15699 [codex] Defer fork context injection until first turn @charley-oai
- #15601 [app-server] Add a method to override feature flags. @mzeng-openai
- #15708 TUI plugin menu cleanup - hide app ID @canvrno-oai
- #15677 Fix stale quickstart integration assertion @shaqayeq-oai
- #15713 [plugins] Flip the flags. @mzeng-openai
- #15719 [plugins] Flip on additional flags. @mzeng-openai
- #14172 fix: support split carveouts in windows restricted-token sandbox @viyatb-oai
- #15714 Fix stale turn steering fallback in tui_app_server @etraut-openai
- #15722 [plugins] Add a flag for tool search. @mzeng-openai
- #15734 Update plugin creator skill. @xl-openai
- #15766 chore: tty metric @jif-oai
- #15519 fix(core): default approval behavior for mcp missing annotations @fouad-openai
- #15775 chore: remove grep_files handler @jif-oai
- #15710 Use AbsolutePathBuf for cwd state @pakrym-oai
- #15778 feat: rendering library v1 @jif-oai
- #15758 fix(tui): avoid duplicate live reasoning summaries @fcoury
- #15773 chore: remove read_file handler @jif-oai
- #15776 feat: add multi-thread log query @jif-oai
- #15744 Extract codex-instructions crate @aibrahim-oai
- #15339 Add non-interactive resume filter option @nornagon-openai
- #15746 Extract codex-utils-plugins crate @aibrahim-oai
- #15747 Extract codex-plugin crate @aibrahim-oai
- #15748 Extract codex-analytics crate @aibrahim-oai
- #15707 Clarify codex_home base for MDM path resolution @evawong-oai
- #15513 fix(tui_app_server): fix remote subagent switching and agent names @fcoury
- #14856 [apps][tool_suggest] Remove tool_suggest's dependency on tool search. @mzeng-openai
- #14847 feat: add websocket auth for app-server @viyatb-oai
- #15759 fix(tui_app_server): preserve transcript events under backpressure @fcoury
- #15749 Extract codex-core-skills crate @aibrahim-oai
- #15798 Avoid duplicate auth refreshes in `getAuthStatus` @etraut-openai
- #15659 Add MCP tool call spans @nicholasclark-openai
- #15789 Treat ChatGPT `hc` plan as Enterprise @arnavdugar-openai
- #15802 TUI plugin menu polish @canvrno-oai
- #15785 Add cached environment manager for exec server URL @pakrym-oai
- #15806 Add ReloadUserConfig to tui_app_server @canvrno-oai
- #15810 app-server: Organize app-server to allow more transports @euroelessar
- #15800 [mcp] Improve custom MCP elicitation @mzeng-openai
- #15531 [hooks] add non-streaming (non-stdin style) shell-only PostToolUse support @eternal-openai
- #15820 [plugins] Flip flags on. @mzeng-openai
- #15825 Fix quoted command rendering in tui_app_server @etraut-openai
- #14853 Wire remote app-server auth through the client @etraut-openai
- #15817 Expand home-relative paths on Windows @tiffanycitra
- #15693 fix: fix old system bubblewrap compatibility without falling back to vendored bwrap @viyatb-oai
- #15784 feat: replace askama by custom lib @jif-oai
- #15851 feat: drop artifact tool and feature @jif-oai
- #15861 feat: clean spawn v1 @jif-oai
- #15691 feat: exec-server prep for unified exec @jif-oai
- #15864 chore: drop artifacts lib @jif-oai
- #15812 core: remove special execve handling for skill scripts @bolinfest
- #15869 fix: flaky @jif-oai
- #15877 chore: ask agents md not to play with PIDs @jif-oai
- #15866 feat: use `ProcessId` in `exec-server` @jif-oai
- #15829 [plugins] Update the suggestable plugins list. @mzeng-openai
- #15880 fix: max depth agent still has v2 tools @jif-oai
- #15839 Fix duplicate /review messages in app-server TUI @etraut-openai
- #15805 Add MCP connector metrics @nicholasclark-openai
- #15661 Enable `tui_app_server` feature by default @etraut-openai
- #15835 fix: box apply_patch test harness futures @bolinfest
- #15796 [codex] Block unsafe git global options from safe allowlist @adrian-openai
- #15813 Add wildcard in the middle test coverage @evawong-oai
- #15881 fix: root as std agent @jif-oai
- #15860 feat(tui): add terminal title support to tui app server @fcoury
- #15885 [mcp] Fix legacy_tools @mzeng-openai