← 返回更新日志

OpenClaw v2026.9.35

2026-10-27 · GitHub 原文
这是一个仅限网关的 `extended-stable`(扩展稳定版)版本,目前相当于我们的 LTS。此版本基于 2026 年 9 月底的 OpenClaw,并包含关键安全更新、可靠性和性能修复,以及新模型支持等功能。发布此版本时,OpenClaw 的最新版本为 [2026.10.7](https://github.com/openclaw/openclaw/releases#release-v2026.10.7) ## 2026.9.35 ### 亮点 - **在服务管理器下内存更稳定:** 即使网关服务传入进程级 `--max-old-space-size`,工作进程堆上限现在也会生效;空闲的 Codex app-server 客户端会在 30 秒后退出;归档工作进程会在会话删除操作之间复用,因此长期运行的网关不再持续累积内存。修复 #179515、#169797、#165663。(#166581、#171490、#168387、#171156、#175091)感谢 @valkyriweb 和 @RomneyDa。 - **更新更常顺利完成:** 更新期间运行的 Doctor 现在会在迁移后移除遗留的未知配置键,接受旧版 OAuth 目录缺失的情况,保留缺少 `meta` 的有效配置,正确处理已完成且已提供候选版本的软件包发布,并且不再因超大型会话历史记录而发生栈溢出。修复 #174618、#183479。(#175404、#180174、#183703、#180414) - **网关保持响应:** 特制的 Microsoft Teams HTML、形似工具调用的回复,以及长篇流式 HTML 或 JSX 回答,不再导致网关事件循环一次阻塞数秒。(#183438、#183252、#174833、#175472、#180765)感谢 @LeizhenZhang 和 @JasonBuildAI。 - **回复能够送达用户:** 在“工具搜索”下,消息工具会保持直接可见;未执行工具调用后以及压缩期间,模型回退均可正常工作;超时的 MCP 会话不再破坏下一轮交互;达到输出上限的 Claude CLI 轮次会快速失败,而不是卡住 15 分钟。修复 #176045。(#179450、#183282、#182189、#159931)感谢 @hehuang139、@pstarkgit、@aniketkrs 和 @Terwox。 - **Codex 原生子代理能够正确收尾:** 原生子代理完成、被中断或完成后续操作后,不再阻塞父代理;无法投递的完成结果不会被重新激活;网关重启后,已完成的孙级代理不再重放。(#173018、#175246、#179050、#179099、#177577、#181839)感谢 @quqi1599、@wtfichigo、@linancn 和 @sunlit-deng。 - **默认情况下更安全:** 在允许列表模式下,`test -v` 的 exec 操作数现在需要审批;通过通用节点调用发出的浏览器代理命令会被拒绝;生成视频的下载会使用 SSRF 防护;`openclaw mcp list`/`show` 以及日志会对凭据进行脱敏。(#180880、#179880、#182425、#180321、#183193)感谢 @eleqtrizit、@brandon-julio-t 和 @LeizhenZhang。 - **SQLite 3.54 数据安全:** Doctor 和更新快照现在会修复因 SQLite 分词器变更而遗留的全文索引,而不是隔离代理数据库。修复 #176220。(#176234、#181206) ### 变更 - **Kimi K3.1 Pro:** `moonshot/kimi-k3.1-pro`、`kimi/k3.1-pro` 及其 Highspeed 变体现在支持 K3 的思考、工作量和视频控制;K3.1 会在本地拒绝 `off`,而不是由提供商返回 400 错误。(#181923)感谢 @obviyus。 - **已知问题文档:** 记录了 `--preserve-symlinks` 插件捕获规避方案、2026.8.35 更新程序的架构警告,以及发布日志设备编号变更后的恢复方法。相关问题 #175591、#170031。(#184143)感谢 @RomneyDa。 ### 修复 - **凭据和内容边界:** `test`/`[` 的 `-v` 操作数现在需要审批;拒绝通用节点调用中的浏览器代理命令;保护生成视频的下载;对 MCP 检查输出和 Google OAuth 客户端密钥进行脱敏;在回复被禁用的轮次中排除 commentary 内容;并防止私有媒体出现在静默轮次中。(#180880、#179880、#182425、#180321、#183193、#178518、#129244)感谢 @eleqtrizit、@brandon-julio-t、@LeizhenZhang 和 @obviyus。 - **回复投递和回退:** 在“工具搜索”下保持消息工具可见;允许在工具调用未执行后以及压缩期间进行模型回退;Anthropic 使用额度耗尽时立即回退;在空的 `length` 停止原因后恢复未完成的工具工作;并避免将被拒绝的 Claude CLI 草稿包含在最终回复中。修复 #176045、#176179。(#169091、#179450、#183282、#176186、#153728、#168764)感谢 @hehuang139、@pstarkgit、@sunlit-deng、@zhangguiping-xydt 和 @ruel225。 - **网关响应能力:** 限制针对 Microsoft Teams HTML、形似工具调用的回复以及长篇流式标记内容所执行的正则表达式和标签扫描。(#183438、#183252、#174833、#175472、#180765)感谢 @LeizhenZhang 和 @JasonBuildAI。 - **Claude CLI 会话:** 检查孤立工具调用时忽略请求回显;将被拒绝的恢复检查点归类为会话已过期;在达到输出上限而停滞时立即结束;并防止 announce 唤醒重置 CLI 聊天。(#172026、#159931、#181308、#176218)感谢 @Terwox、@mushuiyu886 和 @eliavb43。 - **代理运行时:** 释放已完成的尝试回调;取消子任务后完成父级移交;限制大批量子代理完成事件;在并发会话重置期间保留内存捕获;当 macOS 工作区的字母大小写不一致时仍能加载技能;并阻止实用模型(包括自定义 GLM 标题模型)返回仅含思考过程的回复。(#183884、#178893、#172068、#181081、#181236、#169920、#172580)感谢 @brianmcguire 和 @jason-allen-oneal。 - **Codex:** 退出空闲且无所有者的 app-server 客户端;在完成轮次中保持原生工具声明稳定;在宿主执行工作期间维持原生存活状态;并正确处理原生子代理的完成、中断、后续操作和重启重放。修复 #165663。(#168387、#183286、#181839、#173018、#175246、#179050、#179099、#177577)感谢 @sunlit-deng、@quqi1599、@wtfichigo 和 @linancn。 - **渠道:** Slack Socket Mode 可从单次 `invalid_auth` 中恢复,Slack 中继连接可从无提示的网络中断中恢复;仅为 Matrix 控制命令标记命令来源;确保 Telegram 偏移检查点在 Bun 上正常工作;为回调保留实时语音传输运行时;并确保渠道账户在已退出的运行被取消后仍会重启。修复 #179398。(#181056、#182368、#179506、#178909、#179462、#182433)感谢 @mushuiyu886、@xiaopan-xydt、@brianmcguire 和 @shoaibulhaque。 - **MCP 和 GitHub 工具:** 允许并发代理在无需独占租约的情况下读取最新的共享 MCP OAuth 凭据;并接受来自个人资料在连接后才附加的操作员所执行的 GitHub PR 发布。(#179997、#169400)感谢 @maliv2 和 @Gigaxel。 - **网关、状态和就绪性:** 在没有转发标头的情况下响应可信代理的就绪探针;限制渠道身份准入等待时间,避免停滞的准入过程锁死 WAL 检查点;防止排队的启动任务占用临时 SQLite 读取器作用域;避免首次宿主准入期间写入器停滞;恢复过期 Linux 锁时保留仍然有效的状态锁所有者;并在清退资源清单后完成工作进程关闭。相关问题 #143524。(#182823、#172244、#182615、#171549、#175118、#168862)感谢 @ericcaiwx-star、@xialonglee 和 @xiaopan-xydt。 - **更新、安装和 Doctor:** 更新期间移除无归属的配置键;接受旧版 OAuth 目录缺失的情况;保留缺少 `meta` 的有效配置;在准入期间将调试日志从 JSON 标准输出中分流;限制激活后 Doctor 步骤和更新基线检查的耗时;从 `/` 启动时恢复 Node 运行时;接受仅额外增加了执行位、内容未发生变化的 dist 文件;在 Windows 交换过程中允许缺少可选软件包;在 Windows 上以隐藏方式启动 SQLite 辅助进程;无论 umask 如何,都以 `0700` 权限创建状态目录;允许组可写插件中的密钥解析器通过准入;停止状态的备份期间允许 SQLite 读取器运行;导入文件名与标头不同的记录;先读取 cron 历史记录身份信息,再读取载荷;避免超大型会话历史记录导致栈溢出;正确处理已完成且已提供候选版本的软件包发布;并且当网关使用的 Node 不满足目标版本的 `engines.node` 要求时,在暂存前拒绝注册表更新,而不是切换后陷入崩溃循环。修复 #174618、#183479、#183149。(#180769、#175404、#180174、#183703、#182850、#173862、#181906、#178112、#181141、#181596、#174969、#179538、#181127、#180827、#178146、#174530、#180414)感谢 @jalehman 和 @wangmiao0668000666。 - **插件:** 替换悬空的依赖目录联接,而不是拒绝插件迁移;跨文件系统复制原生捕获内容;并允许原生配套组件准入过程中仅 ctime 发生变化的 stat 偏差。(#179549、#179445、#179949)感谢 @coaiMax。 - **SQLite 全文索引:** 在 Doctor 和更新快照中修复 SQLite 3.54 分词器变更后遗留的 FTS 索引,而不是隔离代理数据。修复 #176220。(#176234、#181206) - **发布验证兼容性:** 包含当前完整发布验证所需的发布回顾第 5 批工具(准入固定版本、紧凑复用计划、插件 SDK 修订版本渲染)。(#181920)感谢 @RomneyDa。 ### 完整贡献记录 2026.9.35 维护审计涵盖从 `beaee570a5d4`(2026-10-21)到 `f227543e4815` 的全部 3,595 个 `main` 提交,以及开放的 P0/P1 问题和 操作员请求处理的 PR。来自 77 个带编号 PR 的 78 项修复和 3 项分支专属 修复已被应用或适配;其余项目被归类为不受影响、已覆盖,或因注明的原因被排除。 完整的 PR 清单、适配项、排除项以及对 2026.9.34 审计的更正,均保存在 [2026.9.35 扩展稳定版向后移植审计](../docs/releases/2026.9.35-backport-audit.md)中。 上方的分组说明仍作为用户影响摘要。 ### 发布验证 - npm 软件包:https://www.npmjs.com/package/openclaw/v/2026.9.35 - 注册表 tarball:https://registry.npmjs.org/openclaw/-/openclaw-2026.9.35.tgz - 完整性:`sha512-1wVhWrYXsEgy4iVHAg0CEd4J7Vp4blc8XvIKVg463UYNxYVgUitg3pWdCKPxDIRgetQ6t5ViEftSn5J0UI7x9A==` - 发布 SHA:`2ff91b9c5ed26aff603c6d5466fc642ae9d50e72` - 完整发布 CI 报告:https://github.com/openclaw/releases/blob/main/evidence/2026.9.35/release-evidence.md - 发布流程:https://github.com/openclaw/openclaw/actions/runs/40430868801 - npm 预检:https://github.com/openclaw/openclaw/actions/runs/40416259133 - 完整发布验证:https://github.com/openclaw/openclaw/actions/runs/40415713477 - 插件 npm 发布:https://github.com/openclaw/openclaw/actions/runs/40431530924 - 插件 ClawHub 发布:没有常规 OIDC 候选项 - 插件 ClawHub 引导:不需要 - OpenClaw npm 发布:https://github.com/openclaw/openclaw/actions/runs/40433786628 - npm Telegram Beta 端到端测试:未提供