0.131.0
新增功能
- TUI 现在提供更丰富的会话控制与显示:数据驱动的服务层级命令、混合 token 用量、权限/审批模式、有效工作区根目录,以及响应式 Markdown 表格。(#21745, #21906, #21991, #21669, #21677, #22052, #22612)
@提及现在可在同一个选择器中搜索文件、目录、插件和技能,并由 app-server 插件元数据提供支持。(#19068, #22375)- 插件工作流新增了市场 CLI 命令、版本感知共享、共享检出、更清晰的共享工作区分组,以及默认启用的插件钩子。(#21396, #22397, #22425, #22435, #22549)
- 远程工作流现在支持由守护进程管理的
codex remote-control、运行时启用/禁用 API、状态读取,以及由注册表支持/配置的远程环境。(#20718, #22218, #22562, #22578, #22877, #20667, #21323) - Python SDK 已迁移至
openai-codex/openai_codex,并带有固定的运行时生成类型、并发回合路由、审批模式以及集成测试覆盖。(#21778, #21891, #21893, #21896, #21905, #21910, #22014) - 新增
codex doctor,用于提供可支持诊断的运行时、认证、终端、网络、配置和本地状态检查。(#22336)
问题修复
- 修复了若干 TUI 交互与渲染问题,包括 URL 换行、浅色模式选中项对比度、tmux 中的 Shift+Enter、
/reviewMCP 启动状态、/sideEsc 处理以及网络审批历史文本。(#21760, #21950, #21943, #21624, #22710, #22229) - 加强了 Windows 沙箱在拒绝读取规则、限定写入根目录、防火墙策略失效以及 PowerShell 边界情况方面的行为。(#18202, #21479, #22353, #21400, #22643)
- 在权限提升期间保留了托管读取限制,并清理了工作区根目录权限配置解析。(#15977, #22624, #22683)
- 通过保留 SQLite 数据、在状态无法打开时安全失败、增加恢复路径以及弱化可选元数据同步失败,提升了 app-server 与本地状态启动的安全性。(#21831, #21847, #22580, #22734, #22899)
- 通过一致使用根工作树钩子、在辅助命令中忽略仓库钩子/fsmonitor 配置、绑定本地 MCP OAuth 回调以及撤销被取代的登录令牌,提升了 Git 与认证的可靠性。(#21969, #22843, #22652, #20237, #21747)
- 通过延长 exec-server 传输超时、降低
taskkill清理的噪音以及非排队式插件读取,减少了远程与 Windows 清理摩擦。(#21825, #21759, #22058, #22703)
其他变更
- 在 Rust CI、精确 PR-head checkout、Windows Bazel sharding、未签名 macOS artifacts 和已签名 macOS promotion 方面提升了 CI 与发布可靠性。(#21604, #21628, #21835, #22408, #22559, #22649, #22737, #22788, #22900)
- 将庞大的 TUI ChatWidget、history 和 composer 代码拆分为更聚焦的模块,未改变预期行为。(#21866, #22269, #22407, #22433, #22518, #22537, #22704, #22581, #22656)
- 继续抽取扩展和工具内部实现,包括共享工具契约以及 guardian 和 memory 扩展 plumbing。(#21736, #21737, #21738, #22138, #22147, #22216, #22258, #22344, #22476, #22480, #22485, #22498)
- 随着默认设置趋于稳定,移除了过时的工具路径、feature flags、config gates 和 legacy hooks。(#21651, #21805, #22173, #22246, #22565, #22711, #22717, #22724, #22730)
- 澄清了不应将通用 Codex 产品文档添加到本仓库,而 app-server API 文档仍在范围内。(#21772)
- 更新了 plugin-creator 指南,以适配简化后的本地插件交接链接。(#22240)
- 记录了远程环境以及桌面端持有的 config namespace 的新 app-server/API 契约。(#21323, #22584)
完整变更日志: https://github.com/openai/codex/compare/rust-v0.130.0...rust-v0.131.0
- #21550 [codex] 使 shutdown pending-touch 测试具备确定性 @jif-oai
- #21697 允许在 config TOML 中使用字符串 service tiers @aibrahim-oai
- #21687 [codex] 默认启用 apply_patch freeform @aibrahim-oai
- #19896 更新 models.json @github-actions
- #21669 在状态行中显示混合 token 计数 @etraut-openai
- #21677 在 TUI 状态行中显示权限和审批模式 @etraut-openai
- #21757 api: 发送带连字符的 session 和 thread headers @jif-oai
- #21763 nit: 注释 @jif-oai
- #21749 codex-otel: 一致地校验 provider span 属性 @bbrown-oai
- #21767 chore: thread tui @jif-oai
- #21443 [sandboxing] 从 Seatbelt 网络策略中移除 Darwin 用户缓存写入 @evawong-oai
- #21604 修复因缺少
bwrap导致的rust-ci-full失败 @zanie-oai - #21628 在
rust-ci-full中使用CARGO_NET_GIT_FETCH_WITH_CLI,以实现更可靠的 git fetch @zanie-oai - #21745 [codex] 泛化 service tier 斜杠命令 @aibrahim-oai
- #21772 澄清 AGENTS.md 中的 docs 文件夹指南 @etraut-openai
- #21622 [codex] 解决更多 GHA 规范性问题 @ww-oai
- #21662 feat: 在远程 enrollment 中使用 installation ID @ddr-oai
- #20667 从 CODEX_HOME 加载已配置环境 @starr-openai
- #21776 更新 models.json @github-actions
- #21787 在 Python 运行时暂存中支持资源二进制文件 @aibrahim-oai
- #21784 在发布时发布 Python 运行时 wheels @aibrahim-oai
- #21601 发送 accepted line fingerprint 分析事件 @alexsong-oai
- #21465 移除 ToolName 显示辅助函数 @pakrym-oai
- #20619 [codex] 从 app 请求桌面端 attestation @jiamingz42
- #21810 Revert "在发布时发布 Python 运行时 wheels" @aibrahim-oai
- #21651 [codex] 删除函数式 apply_patch @pakrym-oai
- #21805 [codex] 移除旧版 after tool use hooks @pakrym-oai
- #21616 为
cargo shear启用--deny-warnings@charliemarsh-oai - #21497 为可发现工具列表使用缓存的 connector 目录 @mzeng-openai
- #21835 ci: 在 workflows 中检出 PR head commits @bolinfest
- #21794 使环境 provider 快照不包含路径 @starr-openai
- #21831 app-server: 支持 daemon 安全的重启处理 @euroelessar
- #20293 支持 openai 库工具 @lt-oai
- #21323 [codex] 支持 executor registry 远程环境 @miz-openai
- #21825 增加 exec-server 环境传输超时 @starr-openai
- #20718 [daemon] 添加 app-server daemon 生命周期管理 @euroelessar
- #21840 feat: 添加 Bedrock Mantle 客户端 agent header @celia-oai
- #21847 sqlite: 不再进行破坏性版本升级 @owenlin0
- #21652 Reapply "将 skills watcher 移至 app-server" @pakrym-oai
- #21290 将 file watcher 移出 core @pakrym-oai
- #21867 feat: 添加角色感知的插件分享上下文 API @xl-openai
- #21875 [codex] 压缩 network context 渲染 @sayan-oai
- #21778 按 ID 路由 Python SDK turn 通知 @aibrahim-oai
- #21906 [codex] 将 TUI service tier 命令改为小写 @aibrahim-oai
- #21819 tests: 覆盖 sandbox link 写入行为 @bolinfest
- #21760 fix(tui): 保留 URL 旁边的自动换行正文 @fcoury-oai
- #21950 fix(tui): 提升浅色模式选择项对比度 @fcoury-oai
- #21755 改进 TUI 中的 hooks 信任流程 @abhinav-oai
- #21870 避免因 agent metadata hydration 阻塞 TUI @etraut-openai
- #21866 将 ChatWidget 状态拆分为职责明确的模块 @etraut-openai
- #21991 在 config 中将 'priority' service tier 持久化为 fast @aibrahim-oai
- #21943 fix(tui): 在 tmux csi-u panes 中保留 Shift+Enter @fcoury-oai
- #21759 fix(tui): 在 Windows 上抑制 MCP 拆除时的 taskkill 输出 @fcoury-oai
- #22039 按用户去重 issue digest 交互 @etraut-openai
- #22052 feat(tui): 在 TUI 中渲染响应式 Markdown 表格 @fcoury-oai
- #20825 读取已安装 Git 插件的缓存元数据 @xli-oai
- #21736 extension: 添加初始的 typed extension API @jif-oai
- #21737 extension: 将 extension registries 接入 sessions @jif-oai
- #21738 extension: 将 git attribution 移入 extension @jif-oai
- #22138 refactor: 将可执行工具契约抽取到 codex-tool-api @jif-oai
- #22140 feat: 移除
CodexExtension@jif-oai - #22143 [codex] 将未知的 contributed tools 默认设为 mutating @jif-oai
- #22147 feat: 将 extension tool bundles 接入 core @jif-oai
- #22163 feat: 移动 extensions tool @jif-oai
- #22113 添加 x-codex-ws-stream-request-start-ms @andmis
- #21860 将 /goal 命令持久化到历史记录 @etraut-openai
- #22141 [codex] 加固 overflow auto-compaction 恢复 @aibrahim-oai
- #22170 Revert "[codex] 加固 overflow auto-compaction 恢复" @aibrahim-oai
- #22106 修复 side conversation 配置继承 @etraut-openai
- #22045 基于反馈改进 goal continuation @etraut-openai
- #21981 为 goal-first threads 使用 goal preview 元数据 @etraut-openai
- #21843 app-server: 移除 TCP websocket listener @euroelessar
- #22173 chore: 移除内置 MCPs @jif-oai
- #21954 修复 goal 更新并在 TUI 中添加
/goal edit命令 @etraut-openai - #22110 使 auto-review 拒绝短路使用滚动 review 窗口 @won-openai
- #21431 [codex-analytics] 向 turn events 添加 turn 工具计数 @rhan-oai
- #22154 添加进程级 SQLite 遥测 @jif-oai
- #19068 统一 TUI 中的 mentions @canvrno-oai
- #20305 fix(exec-policy) 减少使用 is_known_safe_command @dylan-hurd-oai
- #22058 fix(exec-server): 抑制 Windows taskkill 输出 @fcoury-oai
- #22178 fix(app-server): 为远程客户端进行 thread history 脱敏 @owenlin0
- #15977 fix(permissions): 在提权期间保留 managed deny-read @viyatb-oai
- #21061 feat(connectors): 支持 managed app 工具审批要求 @viyatb-oai
- #22188 [elicitation] 当启用 auth_elicitation 时,通告新的 url elicitation 能力。@mzeng-openai
- #22192 config: 在 TUI keymap config 中接受
minus@fcoury-oai - #21853 daemon: 在验证二进制 rollout 后刷新 updater @euroelessar
- #21747 [login] 重新登录时撤销被取代的 auth tokens @cooper-oai
- #20147 feat: 添加 network proxy feature flag @viyatb-oai
- #21891 [1/8] 固定 Python SDK 运行时依赖 @aibrahim-oai
- #21893 [2/8] 从固定版本的 runtime 生成 Python SDK 类型 @aibrahim-oai
- #21895 [3/8] 在 CI 中运行 Python SDK 测试 @aibrahim-oai
- #21896 [4/8] 定义 Python SDK 公共 API 表面 @aibrahim-oai
- #21905 [5/8] 将 Python SDK 包重命名为 openai-codex @aibrahim-oai
- #21910 [6/8] 添加 high-level Python SDK 审批模式 @aibrahim-oai
- #22014 [7/8] 添加 Python SDK app-server 集成 harness @aibrahim-oai
- #22021 [8/8] 添加 Python SDK Ruff 格式化 @aibrahim-oai
- #18748 [codex-analytics] 发送 terminal review events @rhan-oai
- #22159 添加 Windows hook command overrides @abhinav-oai
- #22218 更新 codex remote-control 以启动 daemon @owenlin0
- #22180 停止上传 accepted line fingerprints @alexsong-oai
- #21617 支持多环境 apply_patch 选择 @starr-openai
- #22198 添加 production startup 和 TTFT 遥测 @mzeng-openai
- #21963 [exec-server] 通过 HTTP upgrade 提供 websocket listener @euroelessar
- #21946 fix(tui): 处理隐藏的 app git directives @fcoury-oai
- #21595 简化 MCP tool handler 管道 @pakrym-oai
- #22221 feat(skills): 将 plugin creator 默认设为 personal share flow @efrazer-oai
- #21861 将 sandbox context 应用于本地 view_image 读取 @starr-openai
- #20527 支持 PreToolUse updatedInput 重写 @abhinav-oai
- #22243 [codex] 在 compaction 期间过滤旧版 warning messages @pakrym-oai
- #22254 [codex] 让 handlers 自行支持并行工具 @pakrym-oai
- #18202 feat(sandbox): 添加 Windows deny-read 对等支持 @viyatb-oai
- #22265 feat: 规范化 remote plugin summary identities。@xl-openai
- #22216 feat: 将 guardian 作为 extension(contributors 部分)@jif-oai
- #22311 [rollout-trace] 向 inference calls 添加 x-codex-inference-call-id header。@cassirer-openai
- #21206 feat(tui): 添加 ambient terminal pets @fcoury-oai
- #22323 fix: uv lock @jif-oai
- #22207 [codex] 收紧 unified exec sandbox 设置 @bookholt-oai
- #22382 tools: 移除 is_mutating dispatch gating @pakrym-oai
- #22383 chore(config) include_collaboration_mode_instructions @dylan-hurd-oai
- #22377 code-mode: 在 runtime 中传递嵌套 tool kind @pakrym-oai
- #22392 test(tui): 放宽 configured pet 加载超时 @fcoury-oai
- #22343 feat(exec-server): 使用 protobuf relay frames @apanasenko-oai
- #20509 [codex] 移除 workspace owner usage nudge gate @richardopenai
- #22256 重构带命名空间的 tool spec 注册 @pakrym-oai
- #22280 code-mode: 添加 pending-aware code mode 执行 @cconger
- #22266 core: 装箱 multi-agent handler futures @bolinfest
- #22398 [codex] 为 tool_search 添加 search term 覆盖 @pakrym-oai
- #22236 统一 store 之上的 thread metadata 更新 @wiltzius-openai
- #22269 将 chatwidget 状态重构为多个模块 @etraut-openai
- #22381 [codex] 移除 tool search bucket limit override @sayan-oai
- #22386 将 Feature::RemoteControl 标记为已移除 @owenlin0
- #22240 docs(skills): 简化 plugin creator deeplink 结构 @efrazer-oai
- #22397 feat: 暴露 plugin 版本并限制 plugin 分享 @xl-openai
- #22404 恢复带 auth guard 的 app-server websocket listener @etraut-openai
- #22258 feat: 通过 providers 路由 guardian review model 选择 @celia-oai
- #22268 hooks: 对 hooks 使用新的 session IDs 而非 thread IDs,并将父级的 session ID 应用于 subagents 的 hooks @eternal-openai
- #20319 添加 allow_managed_hooks_only hook 要求 @eternal-openai
- #22413 移除 CODEX_RS_SSE_FIXTURE 测试 hook @pakrym-oai
- #22406 tools: 从 specs 推断 code-mode namespace 描述 @pakrym-oai
- #22261 将 tool search entries 封装到 handlers 中 @pakrym-oai
- #22425 feat: 按可发现性拆分 shared workspace plugins @xl-openai
- #22414 在
codex --remote中添加 UDS 支持 @etraut-openai - #22407 将 chatwidget 输入流重构为多个模块 @etraut-openai
- #22439 移除不可用的 MCP placeholder tool 回填 @sayan-oai
- #21969 在 linked worktrees 中使用 root repo hooks @abhinav-oai
- #21768 添加 --dangerously-bypass-hook-trust CLI flag @abhinav-oai
- #22435 feat: 添加 plugin share checkout @xl-openai
- #22355 chore: 将 view_image sandbox 测试保留在临时目录 @jif-oai
- #22344 extension-api: 添加 approval review contributor flow @jif-oai
- #22359 feat: 抽取共享 tool executor 接口 @jif-oai
- #22369 将 extension tools 重构为基于共享 ToolExecutor @jif-oai
- #22338 [app-server] 对 login issuer override 常量加门控 @cassirer-openai
- #22437 [codex] 将 plugin/list 与 config serialization queue 隔离 @xli-oai
- #22476 feat: 添加 thread lifecycle contributor hooks @jif-oai
- #22479 nit: codeowners @jif-oai
- #22480 feat: 添加 turn lifecycle contributors @jif-oai
- #22482 fix: 在隐式 shutdown 时发送 thread stop lifecycle @jif-oai
- #22485 feat: 添加 token usage contributor hook @jif-oai
- #22443 将 macOS signing secrets 限定到 release environment @shijie-oai
- #22490 feat: 将 extension scope ids 移入 ExtensionData @jif-oai
- #22491 使 context contributors 异步化 @jif-oai
- #22214 feat(tui): 移除 Zellij TUI workarounds @fcoury-oai
- #22139 为 spawned agents 添加 service tier overrides @aibrahim-oai
- #22488 feat: 添加 config-change extension contributor @jif-oai
- #22498 feat: memories ext @jif-oai
- #22503 fix: main @jif-oai
- #22347 feat(tui): 标准化 picker 导航键 @fcoury-oai
- #22500 refactor: 拆分 memories extension crate 模块 @jif-oai
- #22433 将 chatwidget protocol flows 重构为多个模块(第 3 阶段)@etraut-openai
- #22505 fix: 阻止 fmt 更新 Python SDK lockfile @jif-oai
- #22326 [rollout-trace] 为 MCP calls 添加 trace ID。@cassirer-openai
- #20559 config: 添加严格 config 解析 @bolinfest
- #22489 为延迟注册引入 tool exposure @jif-oai
- #22193 fix: 移除带下划线的 id headers @jif-oai
- #22246 [codex] 移除未使用的旧版 shell tools @pakrym-oai
- #22520 revert: 将 Feature::RemoteControl 标记为已移除 @owenlin0
- #22513 Revert "将 macOS signing secrets 限定到 release environment" @shijie-oai
- #22514 feat: 将 multi-agent v2 暴露为 model-only tools @jif-oai
- #22366 将 Codex product SKU 传递给 ChatGPT backend @ericning-o
- #22519 弃用 TurnContext cwd 和 resolve_path @pakrym-oai
- #22518 将 chatwidget settings surfaces 重构为多个模块(第 4 阶段)@etraut-openai
- #21479 [codex] 限定 Windows sandbox write-root capability SIDs @adrianbravo-oai
- #22353 windows-sandbox: 当防火墙策略无效时使 elevated setup 失败 @iceweasel-oai
- #22527 [codex] 为 plugin-service rollout 复用 Apps MCP path override @adaley-openai
- #22412 chore(config) 移除 Feature::CodexGitCommit @dylan-hurd-oai
- #22501 chore(config) 移除 tools.view_image @dylan-hurd-oai
- #22533 fix: 防止 codex-backend 窃取 originator @owenlin0
- #22408 将 Bazel Windows 测试分片到多个 jobs @starr-openai
- #22542 为 filesystem helpers 使用所选环境的 cwd @pakrym-oai
- #20237 向本地 MCP OAuth redirects 添加 callback ids @stevenlee-oai
- #22549 默认启用 plugin hooks @abhinav-oai
- #22375 使用 plugin/list 获取用于 mentions 的 plugins 列表 @canvrno-oai
- #21235 [codex] 修复 external borrowed slices 的 TUI 换行 @canvrno-oai
- #22336 feat(cli): 添加 codex doctor 诊断 @fcoury-oai
- #22543 清理 instructions @sayan-oai
- #21400 在 elevated Windows sandbox 中避免 PowerShell profiles @iceweasel-oai
- #22528 使 multi_agent_v2 wait_agent 超时可配置 @andmis
- #22529 转储过大的 PreToolUse additionalContext @abhinav-oai
- #22556 feat: namespace in ext @jif-oai
- #22535 移除重新出现的
/collab斜杠命令 @etraut-openai - #22537 将 chatwidget orchestration 重构为多个模块(第 5 阶段)@etraut-openai
- #22564 [codex] 规范化 shared workspace plugin IDs @xl-openai
- #22559 添加未签名的 macOS release artifacts @shijie-oai
- #22574 弃用 issue labeler @maxb-openai
- #22555 移除 connector_openai 前缀过滤 @ericning-o
- #22580 fix: 如果 state db 无法打开,则阻止 appserver 启动 @ddr-oai
- #22565 chore(config) 移除 experimental_use_freeform_apply_patch @dylan-hurd-oai
- #22562 改进 remote-control daemon UX @owenlin0
- #22578 在运行时启用/禁用 remote control,而非通过 features @owenlin0
- #22573 简化 TUI 启动测试覆盖 @etraut-openai
- #22594 放宽 remote plugin sync gate @xli-oai
- #22587 将启动 NUX impressions 推迟到启动成功后 @etraut-openai
- #22560 feat: 使 ToolExecutor 成为 async trait @jif-oai
- #22494 将 turn item contributors 接入 stream output @jif-oai
- #17141 feat: 添加分层的 --profile-v2 config files @jif-oai
- #22643 [codex] 将 PowerShell stop-parsing forms 视为不支持 @bookholt-oai
- #22646 修复 abort-path turn extension data plumbing @jif-oai
- #22624 permissions: 规范化 workspace_roots 和 danger-full-access 名称 @bolinfest
- #22649 Chore: 改进已发布的 unsigned artifacts @shijie-oai
- #22581 tui: 拆分 composer attachment 和 popup state @etraut-openai
- #21396 [codex] 添加 plugin marketplace CLI 命令 @caseychow-oai
- #22576 tests: 避免环境临时 sandbox roots @starr-openai
- #22652 [codex] 在 Git metadata 读取中忽略 fsmonitor config @bookholt-oai
- #22229 fix(tui): 按 target 渲染 network approval history @fcoury-oai
- #22547 对 SIWC users 优先使用从 backend 获取的 model list @jeevnayak
- #22666 [codex] 修复 plugin CLI active user layer 编译 @caseychow-oai
- #22575 支持显式 MCP OAuth client IDs @mzeng-openai
- #22512 test: 隔离 exec review policy config 测试 @bolinfest
- #22572 修复 remote environment 测试 fixtures @starr-openai
- #22563 tests: 为 live cli 隔离 codex home @starr-openai
- #18161 [codex] 支持多个强制 ChatGPT workspaces @rreichel3-oai
- #22702 使 rust-release-prepare 使用环境 secret @sayan-oai
- #22703 将 plugin list 和 read requests 移出队列 @xli-oai
- #22687 修复 Windows sandbox clippy clones @starr-openai
- #22711 chore(features) 移除 Feature::ApplyPatchFreeform @dylan-hurd-oai
- #22717 chore(config) 移除 windows_wsl_setup_acknowledged @dylan-hurd-oai
- #22695 精简 TUI 对 legacy core helper 的使用 @etraut-openai
- #21624 修复 /review 模式 MCP 启动渲染问题 @canvrno-oai
- #22684 移除 SSE fixture loaders @pakrym-oai
- #22730 [codex] 对已移除 feature flags 分组 @dylan-hurd-oai
- #22724 [codex] 移除 experimental instructions file config @dylan-hurd-oai
- #22237 向 MCP turn metadata 添加
user_input_requested_during_turn@mchen-oai - #22737 ci: 支持已签名 macOS release promotion @bolinfest
- #22303 稳定 compact rollback follow-up 测试 @dylan-hurd-oai
- #22683 permissions: 使用 constraints 解析 profile identity @bolinfest
- #22734 tui: 恢复本地 state db 启动失败 @etraut-openai
- #22584 [codex] 添加 opaque desktop config namespace @guinness-oai
- #22710 防止 Esc 关闭或回退
/side@etraut-openai - #22704 TUI: 将 history cells 拆分为职责明确的模块 @etraut-openai
- #22611 app-server: 使用 permission ids 和 runtime workspace roots @bolinfest
- #22612 tui/exec: 在 summaries 中显示 effective workspace roots @bolinfest
- #22788 修复已签名 macOS release promotion 后续 jobs @shijie-oai
- #22647 使用 profile-v2 时拒绝旧版 [profiles] @jif-oai
- #22809 [codex] 对 remote compaction v2 使用 compaction_trigger item @jif-oai
- #22636 简化 tool executor 和 registry plumbing @jif-oai
- #22820 移除 zombie tools spec 模块 @jif-oai
- #22828 为 remote compaction v2 运行 compact hooks @jif-oai
- #22841 将 memory prompt injection 移至 app-server extension @jif-oai
- #22789 guardian: 为 review sandbox 使用 permission profile @bolinfest
- #22656 tui: 拆分剩余的 composer draft 和 footer state @etraut-openai
- #22843 在 git helpers 中忽略已配置 hooks @bookholt-oai
- #22790 context: 移除旧版 permissions instructions helper @bolinfest
- #22791 telemetry: 根据 permission profiles 标记 sandboxes @bolinfest
- #22872 从 Codex config 转发 apps MCP product SKU @kumquatexpress
- #22582 Workflow 更新 @viyatb-oai
- #22792 app-server: 停止返回 thread permission profiles @bolinfest
- #22795 core: 直接构造 test permission profiles @bolinfest
- #22900 为已签名 macOS promotion 禁用 DMG staging @shijie-oai
- #22877 feat(app-server): 更新 remote control APIs 以改善 UX @owenlin0
- #22899 [codex] 放宽 SQLite metadata sync 失败处理 @wiltzius-openai