0.100.0
新增功能
- 新增实验性、受特性门控的 JavaScript REPL 运行时(
js_repl),可跨工具调用保持状态,并支持可选的运行时路径覆盖。(#10674) - 在协议、后端客户端和 TUI 状态界面中新增对多个同时生效的速率限制的支持。(#11260)
- 重新引入 app-server websocket 传输,采用入站/出站分离架构,并新增连接感知的线程恢复订阅。(#11370, #11474)
- 在 TUI 中新增内存管理斜杠命令(
/m_update、/m_drop),并扩展了内存读取/指标相关的基础设施。(#11569, #11459, #11593) - 在 ChatGPT 连接器处理中启用了 Apps SDK 应用。(#11486)
- 在 Linux 和 Windows 上提升了沙箱能力,并引入新的
ReadOnlyAccess策略结构,用于可配置的读取访问。(#11381, #11341, #11387)
问题修复
- 修复了 websocket 增量输出重复的问题,阻止了
response.completed之后的追加操作,并将response.incomplete视为错误路径。(#11383, #11402, #11558) - 提升了 websocket 会话稳定性:空闲时继续处理 ping,并在快速重连期间抑制嘈杂的首次重试错误。(#11413, #11548)
- 修复了过期的 thread 条目:在列出 thread 时丢弃缺失的 rollout 文件并清理陈旧的 DB 元数据。(#11572)
- 修复了 Windows 终端(尤其是 VS Code 集成终端)中多行粘贴的可靠性问题,通过提高粘贴突发的时间容差。(#9348)
- 修复了在合并部分 rate-limit 更新时
limit_name被错误继承的问题。(#11557) - 通过将文件监听器的防抖时间从 1s 提高到 10s,减少了在编辑过程中反复出现的 skill 解析错误刷屏。(#11494)
其他变更
- 将
codex-common拆分为职责更聚焦的codex-utils-*crates,以简化 Rust workspace 各组件之间的依赖边界。(#11422) - 提升了 Rust 发布流水线在 Windows 和 musl 目标上的吞吐量与可靠性,包括 Windows 并行构建和 musl 链接修复。(#11488, #11500, #11556)
- 通过排除重复的
cargo-timing.html产物,防止 GitHub release 资源上传冲突。(#11564)
- 新增 JS REPL 文档,以及启用和配置该功能的配置/schema 指南。 (#10674)
- 更新了 app-server README 中的 app-server websocket 传输文档。 (#11370)
完整变更日志: https://github.com/openai/codex/compare/rust-v0.99.0...rust-v0.100.0
- #11383 在增量 websocket 连接中不要重新发送输出项 @pakrym-oai
- #11246 chore: 在 rollout 会话中持久化 turn_id,并让 turn_id 基于 uuid @celia-oai
- #11260 feat: 支持多个速率限制 @xl-openai
- #11412 tui: 在 /debug-config 中显示非文件层内容 @bolinfest
- #11405 从
codex-core中移除test-supportfeature,并用显式 test toggles 替换 @bolinfest - #11428 fix: 修复不稳定的测试 @jif-oai
- #11429 feat: 改进 thread 列表 @jif-oai
- #11422 feat: 将 codex-common 拆分为更小的 utils crates @bolinfest
- #11439 feat: 新的 memory prompts @jif-oai
- #11305 缓存云端 requirements @gt-oai
- #11452 nit: 提高最大 raw memories 数量 @jif-oai
- #11455 feat: 在整合完成后关闭 mem agent @jif-oai
- #11454 fix: memories 的可选 schema @jif-oai
- #11449 feat: 为 phase 2 memory 设置 policy @jif-oai
- #11420 chore: 将 disable_websockets 重命名为 websockets_disabled @sayan-oai
- #11402 不要在 response.completed 之后尝试追加 @pakrym-oai
- #11462 clean: 清理 memory rollout recorder @jif-oai
- #11381 feat(core): 将 Linux bubblewrap sandbox 提升为 Experimental @viyatb-oai
- #11389 从
codex-core中提取codex-config@bolinfest - #11370 重新应用“为 app-server 添加支持 websocket 的传输层” @maxj-oai
- #11470 feat: 如果 Constrained<WebSearchMode> 不支持 Disabled,则 panic @bolinfest
- #11475 feat: 从 CI 中移除 "cargo check individual crates" @bolinfest
- #11459 feat: memory 读取路径 @jif-oai
- #11471 chore: 清理 memories 中的 rollout 提取 @jif-oai
- #9348 fix(tui): 在 Windows 上将粘贴突发字符间隔提高到 30ms @yuvrajangadsingh
- #11464 chore: sub-agent 永不请求批准 @jif-oai
- #11414 将反馈链接转换为可点击链接 @pakrym-oai
- #11480 chore: 更新 mem prompt @jif-oai
- #11485 fix: 修复 Constrained 导入 @owenlin0
- #11341 提升 Windows Sandbox @iceweasel-oai
- #10674 添加受 feature gate 控制的 freeform js_repl core runtime @fjord-oai
- #11419 refactor: 重构 codex app-server ThreadState @maxj-oai
- #11413 推送 ping @pakrym-oai
- #11488 feat: 使用更强大的机器构建 Windows 发布版本 @bolinfest
- #11479 nit: memory 截断 @jif-oai
- #11494 将文件监视器防抖时长从 1s 增加到 10s @etraut-openai
- #11335 添加 AfterToolUse hook @gt-oai
- #11500 feat: 并行构建 Windows 支持二进制文件 @bolinfest
- #11290 chore(tui) 简化 /status Permissions @dylan-hurd-oai
- #11503 让 codex-sdk 依赖 openai/codex @pakrym-oai
- #11474 app-server: thread 恢复订阅 @maxj-oai
- #11277 添加 seatbelt policy 规则以允许 os.cpus @etraut-openai
- #11506 chore: 向 ws 客户端注入 originator/residency headers @apanasenko-oai
- #11497 在 resume/fork/rollback/task start 中恢复先前模型 @aibrahim-oai
- #11513 feat: 尝试修复我在实际使用中发现的资源解析逻辑 bug @bolinfest
- #11509 将 search_tool feature 合并到 apps 中 @apanasenko-oai
- #11388 将 model cap 改为 server overload @willwang-openai
- #11504 使用先前模型上下文进行预采样 compact @aibrahim-oai
- #11516 将 auto-compact 限制到 context window @aibrahim-oai
- #11520 模型切换后更新 context window @aibrahim-oai
- #11519 在 tui 中使用 slug @pakrym-oai
- #11522 fix: 向 bazel.yml 添加 --test_verbose_timeout_warnings @bolinfest
- #11526 fix: 移除错误的 Cargo.lock 文件 @bolinfest
- #11521 test(app-server): 通过使用基于文件的 MCP OAuth 凭据稳定 app/list thread feature-flag 测试 @bolinfest
- #11387 feat: 使 sandbox 读取访问可通过
ReadOnlyAccess配置 @bolinfest - #11486 [apps] 允许 Apps SDK apps。 @mzeng-openai
- #11532 修复编译 @sayan-oai
- #11531 教会 codex 自我测试 @pakrym-oai
- #11540 ci: 从 Rust 发布工作流中移除 actions/cache @bolinfest
- #11542 ci(windows): 在 rust-release-windows 中使用 DotSlash 处理 zstd @bolinfest
- #11498 build(linux-sandbox): 在 Linux 上始终编译 vendored bubblewrap;移除 CODEX_BWRAP_ENABLE_FFI @viyatb-oai
- #11545 fix: 使 project_doc skill-render 测试具有确定性 @bolinfest
- #11543 ci: 在 Rust CI 和发布工作流中捕获 cargo 耗时 @bolinfest
- #11539 将 rmcp 升级到 0.15 @gpeal
- #11548 隐藏首次 websocket 重试 @pakrym-oai
- #11551 为 model cache 添加日志 @aibrahim-oai
- #11556 修复 rust-release 中 musl 链接和发布资产上传失败 @bolinfest
- #11558 处理 response.incomplete @pakrym-oai
- #11557 fix: 停止继承 rate-limit 的 limit_name @xl-openai
- #11564 rust-release: 从发布资产中排除 cargo-timing.html @bolinfest
- #11546 fix: 更新 memory 写入 prompt @zuxin-oai
- #11448 修复 test flake @gt-oai
- #11569 feat: mem 斜杠命令 @jif-oai
- #11573 修复不稳定的 pre_sampling_compact 切换测试 @jif-oai
- #11571 feat: mem 移除 cot @jif-oai
- #11572 确保 list_threads 丢弃过期的 rollout 文件 @jif-oai
- #11575 fix: 修复 mem 的 db 相关问题 @jif-oai
- #11581 nit: 升级 DB 版本 @jif-oai
- #11577 feat: 使用 model 信息截断 @jif-oai
- #11590 chore: 清理 consts @jif-oai
- #11593 feat: 为 memories 添加 metrics @jif-oai
- #11579 修复 macOS 上的配置测试 @gt-oai
- #11600 feat: 添加 sanitizer 以脱敏 secrets @jif-oai
- #11609 chore: 移除对 dynamic tools 的 mcp 验证 @jif-oai