← 返回更新日志

OpenClaw v2026.10.5-beta.2 预发布

2026-10-12 · GitHub 原文
## 2026.10.5-beta.2 ### 亮点 - **更新流程完成并可恢复:** `openclaw update` 现在会处理过期的交接租约、已完成的回执,以及旧版 2026.9.8 恢复记录,不再因 `update-recovery-pending` 而停止;同时保留服务堆限制和 webhook 监听器,处理 Windows 短名称路径,并且不再将已接受的交接或成功的更新报告为失败。(#169038, #169027, #168388, #168889, #169035, #169292, #168927, #168993, #169037, #169454, #168905) 感谢 @mkdelta221、@waynegault、@chedong、@k94118、@bluet、@sirius1024、@RomneyDa、@sayitfast 和 @hannesrudolph。 - **Doctor 保留插件和数据:** 当路径安全检查阻止已安装插件时,Doctor 会保留这些插件的配置;对于格式错误的 UTF-8 根记忆文件会保持原样;恢复副本会在迁移移动 Canvas 和 Memory Core 文件之前先捕获它们,即使安装中没有配置任何代理也是如此。(#168111, #169029, #169436, #169516) 感谢 @obviyus、@wangmiao0668000666 和 @RomneyDa。 - **已批准的工具调用保持批准状态:** hook 不再能够在受信任的内联批准之后更改工具参数;会转换参数的插件必须针对最终参数重新请求批准。(#142700) 感谢 @giodl73-repo 和 @giodl73。 - **子代理消息来源追踪:** 跨会话消息从首次请求到重放都会保留其 `[Inter-session message]` 安全封装,因此父会话发送的指令不会被呈现给子会话,仿佛它们是直接的用户指令。(#169130, #169238) 感谢 @RomneyDa。 - **控制界面的会话轮次持续运行:** 配对设备发起的聊天轮次能够经受普通的配对活动,例如节点心跳、其他设备的更新和标签页重新连接;真正的撤销操作仍会停止这些轮次。(#169457, #169134) 感谢 @Oldrich333。 ### 变更 - **工具批准 hook:** 普通 hook 不再能够在受信任的内联批准后重写工具参数而无需再次批准;转换参数的插件必须针对最终参数请求单独批准,否则调用会被阻止。迁移说明见 `docs/plugins/hooks/tool-policy.md`。(#142700) 感谢 @giodl73-repo 和 @giodl73。 - **Codex 运行时兼容性:** 插件准入检查会拒绝低于 2026.9.7 的官方 Codex 运行时,并提供更新和修复指导;不兼容的插件仍可供检查,但不会被导入。(#168930, #168748, #168749, #168977) 感谢 @ezimerman。 - **会话通知:** 创建大量会话时,主会话现在只会收到一条新会话摘要,不再发送多条通知挤占提醒和唤醒消息。(#168239) - **更新性能:** 更新时不再重复计算未发生变化的运行时文件,同时保留正在运行的更新器并发布候选版本,从而减少更新 I/O。(#168958) ### 修复 - **Tool Search 来源追踪:** 通过 Tool Search 和 Code Mode 获取的网络结果现在会像直接的网络工具调用一样污染当前轮次。(#169560, #169332) 感谢 @RomneyDa 和 @farisoftfry。 - **子代理来源追踪:** 子会话在每次重放的轮次中都会保留跨会话安全封装;跨会话轮次在后续轮次和 Gateway 重启后也会保持稳定的提供商提示词前缀。(#169130, #169238) 感谢 @RomneyDa。 - **节点命令和批准:** 当准备好的计划缺少会话身份时,已批准的节点命令仍会在重放时执行;Windows 节点 shell 命令会保留带引号的参数;安全二进制命令接受末尾空白;当登录 shell 重置 PATH 时,Linux 节点服务仍会保留其 PATH。(#161980, #151622, #158160, #142847, #168120, #136677, #134354) 感谢 @Program-123、@gaojian125、@Dimitri-lcht、@igs-rogenlo、@yetval、@harjothkhara 和 @abacha。 - **私有推理:** 工具调用后,如果回复因达到 token 限制或触发内容过滤器而未完成,模型推理内容仍会保持私有。(#168294) - **Doctor 数据安全:** Doctor 会保留被阻止插件的作者条目、启用状态、策略和插槽;拒绝合并格式错误的 UTF-8 根记忆;在新的恢复副本中捕获 Canvas 和 Memory Core 文件,并支持没有配置代理的安装;对于未发生变化的一次性任务,跳过冗余的 cron 备份;恢复 SQLite 快照时遵循 Windows 权限。(#168111, #168066, #169029, #168567, #169436, #169516, #168938, #168838, #169397) 感谢 @obviyus、@wangmiao0668000666、@RomneyDa、@harshitgupta31415 和 @WG-Mojo。 - **记忆:** 每日笔记刷新会拒绝复制的已保存内容,避免重复写入区块;修正 embedding 提供商的端点或凭据后,会刷新缓存的索引管理器,无需重启 Gateway。(#168123, #151263, #151055) 感谢 @ruel225 和 @Mirksen。 - **重启恢复:** Gateway 重启期间处于进行中的主会话会在下一次启动时恢复;被中断的完成回复会被发送而不会丢失;新回复会等待其代理完成启动,而不会因 `prepared reply dispatch runtime owner was not published` 失败。(#168651, #167814, #167766, #168826, #157814) 感谢 @goutamadwant、@marknilsn 和 @xiaozishan。 - **回复路由:** WebChat 任务完成结果会继续留在 WebChat 中;镜像发送到外部渠道不再改变会话记录的回复目标;Reef 会携带 GitHub 提交链接,同时不会将其修订 ID 误判为凭据。(#168248) - **提示词缓存:** 首条消息以空白字符结尾的对话会保持字节稳定的提示词前缀;兼容 OpenAI 的端点和本地端点会将运行时上下文保留在 user-role 消息中。(#168725, #168546, #164791) 感谢 @flanker-stack。 - **压缩:** 在仅使用原生压缩后,会话会跳过冗余的主机压缩;安全压缩会保留已配置的 AGENTS.md 区块;记忆刷新流程会关闭提供商原生压缩。(#168051, #168015, #168446, #168131, #168164) 感谢 @ruel225、@xydigitLybnnnn、@robertoronderosjr、@jakeaadams 和 @obviyus。 - **控制界面:** 聊天轮次能够经受无关的配对活动;输入 `/stop` 也会取消该会话中排队的轮次;Gateway 更新或恢复重新加载后,打开的聊天会恢复到原先位置,不再卡在 **Server updated → Retry now**。(#169457, #169134, #167860, #167859, #168941, #169194) 感谢 @Oldrich333 和 @masatohoshino。 - **Telegram:** 当 ingress worker 从源代码检出目录或打包的插件构建中运行时,轮询可以重新连接;引号或列表旁的表格会保留正确的边界和值。(#154286, #154180, #168383, #168366) 感谢 @xydt-juyaohui、@markfietje、@dhruv1220 和 @barry-ssb。 - **频道和语音:** 频道在 Tailscale 停止导致失败后可以重新启动;Matrix 探测在检查身份后会停止其客户端;`openclaw voicecall steer` 会继续输出机器可读的 JSON。(#162266, #168587) 感谢 @RomneyDa。 - **代理轮次:** 计划轮次和普通轮次在提供商超时后会到达配置的备用提供商;切换模型的排队后续任务会清除自动备用探测;取消的 CLI 排队任务不会执行;空的流心跳不再被计为模型进度;参数长度为 401 或 403 的格式错误工具调用不会被报告为身份验证失败;有效的工具参数联合值会保留其类型;某个插件重新加载后,其他插件的完成流程仍可继续工作。(#168605, #160440, #160428, #169303, #145850, #168500, #168450, #158974, #168916, #156026) 感谢 @hxy91819、@changeroa、@RileyJJY、@TYY-2005、@r3n3x、@Shenrui-Ma 和 @jalehman。 - **Claude CLI:** 在其他插件配置发生变化后,Claude CLI 模型仍会显示;exec-completion 轮次会保留其原生工具和 MCP 工具;已保存会话中的 MCP 服务器选择会应用到下一轮。(#168315, #168670, #168342, #168393, #168207) 感谢 @obviyus、@Oldrich333 和 @dprev。 - **OpenRouter 提示词缓存:** 对于 OpenRouter 上的 Grok 和 Gemini 2.5+ 模型,缓存 TTL 上下文裁剪现在会被启用。(#169548, #169133) 感谢 @RomneyDa 和 @gregb100。 - **模型和提供商:** 使用 API 密钥登录后会立即发现提供商的模型;共享 OAuth 凭据会与历史代理存储一起刷新;切换回 OpenAI 模型时无需 Codex 插件即可正常工作;超时的 Codex 发现客户端会被回收;LM Studio 会等待缓慢的模型加载,而不是导致新会话溢出;模型重新加载期间移除凭据不再留下重启警告。(#168617, #168957, #169412, #168365, #168044) 感谢 @obviyus。 - **模型目录内存:** 对于长期运行的 Gateway,模型目录 worker 会在每个工作区中对未发生变化的已安装原生 ESM 插件只执行一次评估,而不会在每次配置变化时都保留一份额外的模块图副本;原生刷新失败后,会在下一次请求时重新注册所请求的配置。(#169272, #169321, #159662) 感谢 @obviyus、@mcooks-cmd、@RomneyDa 和 @svdinu-jpg。 - **MCP 计算机控制:** 计算机控制会随其运行一起释放,因此后续调用不再因 `COMPUTER_HOST_BUSY` 失败。(#151127, #147420) 感谢 @ylcn91 和 @vovarbv。 - **自动化:** cron 目标和负载验证错误会报告为无效请求;Workboard 备用运行会持续保持活动状态,直到整体结果确定。(#169102, #168215, #167574) 感谢 @obviyus、@skyzhao1223 和 @asikorskiy。 - **Agents API 会话:** 已保存的远程会话在绑定升级后仍会使用相同的会话 ID 继续运行。(#168150) - **大型 Gateway:** 大型节点集群在预留会话存储时不会发生栈溢出;拥有进程的 Gateway 停止时不再等待原生 skills watcher 清理。(#168354, #168160, #168273) 感谢 @609NFT 和 @obviyus。 - **更新和恢复:** 在交接租约数据库丢失或被替换后,托管更新会处理符合条件的过期软件包恢复,并在下一次准备之前归档已完成的回执;`--dry-run` 只会报告计划进行的处理。(#169038, #167506, #167771) 感谢 @mkdelta221 和 @waynegault。 - **旧版更新记录:** 2026.9.8 软件包恢复记录会在元数据发生漂移后根据身份和版本完成处理;已完成回执的身份漂移不再阻止更新;当日志仍处于待处理状态时,公共修复命令会以非零状态退出并提供指导。(#169027, #168856, #168388, #168092) 感谢 @chedong、@k94118 和 @RomneyDa。 - **更新结果:** 已接受的 Gateway 更新交接不会被报告为失败;已记录的成功状态会继续保持成功,同时针对已停止的频道给出警告;即使清理报告不可用,原始失败结果仍会保留;修复后的迁移不再产生过期警告;软件包验证可以容忍时钟跳变;迁移状态失败会指向 `openclaw update repair`。(#168993, #168870, #169037, #169454, #169004, #168835, #168905) 感谢 @sayitfast、@hannesrudolph 和 @WG-Mojo。 - **更新内存和 webhook:** 更新子进程会继承托管服务的堆限制,因此 Doctor 可以完成大型代理数据库的处理;在候选版本 Doctor 阶段被延迟的官方 webhook 插件会保留其监听器,包括 Teams 历史使用的 3978 端口。(#168889, #168729, #169035, #168872) 感谢 @bluet 和 @sirius1024。 - **更新运行时:** 更新器 worker 会继续使用保留的运行时;当安装路径使用 Windows 短名称(8.3)或不同大小写时,`openclaw doctor --fix` 会回收保留的运行时;更新时不再将无关依赖复制到保留的运行时中。(#169292, #168927) 感谢 @RomneyDa。 - **更新诊断:** 未封存的原始状态捕获警告会指出受影响的数据库;候选配置读取失败警告会包含失败原因。(#169282, #169259, #169284, #169261) 感谢 @DonnieFi。 - **Codex Ultrafast:** ChatGPT 登录会话在恢复后的轮次中会继续使用 Ultrafast,而不会在第一轮之后降级为 Fast。(#169265, #169264) 感谢 @SanderHelgesen。 - **npm 全局更新:** 更新器运行时只保留 OpenClaw 自身的依赖,而不会保留全局 `node_modules` 中所有无关的软件包。(#169551, #169373) 感谢 @RomneyDa 和 @holgergruenhagen。 - **更新退出处理:** 当已完成的更新无法报告结果时,程序会带着警告退出,而不会进入交互式失败处理流程。(#168587) - **Doctor 维护:** 即使检查大型状态数据库耗时较长,Doctor 和更新修复也会在运行中的 systemd Gateway 上进入维护模式。(#168161, #168031) 感谢 @obviyus 和 @Tosko4。 ### 完整贡献记录 这份经过审核的记录涵盖完整的 v2026.10.5-beta.1..8ed6123845921594f4643c1914e8ceb8cfb42c07 历史:范围内 PR 91 个 + 保留的仅种子 PR 0 个 = 唯一 PR 共 91 个。生成清单还提供了直接提交,作为编辑输入;上方的分组说明优先呈现对用户的影响。 已发布基线排除项:v2026.10.5-beta.1(3 个 PR:#134837、#144420、#167460)。 #### Pull requests - **PR #169281** 感谢 @RomneyDa。 - **PR #169292** 感谢 @RomneyDa。 - **PR #169268** 感谢 @RomneyDa。 - **PR #168103** - **PR #168161** 关联 #168031。感谢 @obviyus 和 @Tosko4。 - **PR #168388** 关联 #168092。感谢 @k94118。 - **PR #168605** - **PR #168826** 关联 #157814。感谢 @xiaozishan。 - **PR #168889** 关联 #168729。感谢 @bluet。 - **PR #168958** - **PR #169035** 关联 #168872。感谢 @sirius1024。 - **PR #154286** 关联 #154180。感谢 @xydt-juyaohui 和 @markfietje。 - **PR #169027** 关联 #168856。感谢 @chedong。 - **PR #169038** 关联 #167506、#167771。感谢 @mkdelta221 和 @waynegault。 - **PR #169084** 感谢 @RomneyDa。 - **PR #168941** - **PR #169272** 感谢 @obviyus 和 @mcooks-cmd。 - **PR #169257** 感谢 @RomneyDa。 - **PR #169321** 感谢 @RomneyDa。 - **PR #169436** 感谢 @RomneyDa。 - **PR #169457** 关联 #169134。感谢 @Oldrich333。 - **PR #168150** - **PR #168097** 感谢 @RomneyDa。 - **PR #168111** 关联 #168066。感谢 @obviyus。 - **PR #168128** - **PR #168123** - **PR #168264** 感谢 @obviyus。 - **PR #168248** - **PR #168239** - **PR #168215** 关联 #167574。感谢 @obviyus、@skyzhao1223 和 @asikorskiy。 - **PR #167814** 关联 #167766。感谢 @goutamadwant 和 @marknilsn。 - **PR #168273** 感谢 @obviyus。 - **PR #151263** 关联 #151055。感谢 @ruel225 和 @Mirksen。 - **PR #168294** - **PR #168354** 关联 #168160。感谢 @609NFT。 - **PR #168315** 感谢 @obviyus。 - **PR #168365** - **PR #167860** 关联 #167859。感谢 @masatohoshino。 - **PR #168051** 关联 #168015。感谢 @ruel225、@xydigitLybnnnn 和 @robertoronderosjr。 - **PR #168330** 感谢 @RomneyDa。 - **PR #168546** 关联 #164791。感谢 @flanker-stack。 - **PR #168500** 关联 #168450。感谢 @TYY-2005 和 @r3n3x。 - **PR #158974** 感谢 @Shenrui-Ma。 - **PR #168617** 感谢 @obviyus。 - **PR #168383** 关联 #168366。感谢 @dhruv1220 和 @barry-ssb。 - **PR #168120** 感谢 @yetval。 - **PR #168670** 关联 #168342。感谢 @Oldrich333。 - **PR #168725** - **PR #151127** 关联 #147420。感谢 @ylcn91 和 @vovarbv。 - **PR #142700** 感谢 @giodl73-repo 和 @giodl73。 - **PR #158160** 关联 #142847。感谢 @Dimitri-lcht 和 @igs-rogenlo。 - **PR #168927** - **PR #161980** 关联 #151622。感谢 @Program-123 和 @gaojian125。 - **PR #168930** 关联 #168748、#168749。感谢 @ezimerman。 - **PR #168938** 关联 #168838。感谢 @harshitgupta31415 和 @WG-Mojo。 - **PR #168957** 感谢 @obviyus。 - **PR #168993** 关联 #168870。感谢 @sayitfast。 - **PR #169004** 关联 #168835。感谢 @WG-Mojo。 - **PR #169029** 关联 #168567。感谢 @wangmiao0668000666。 - **PR #169037** - **PR #136677** 关联 #134354。感谢 @harjothkhara 和 @abacha。 - **PR #168916** 关联 #156026。感谢 @jalehman。 - **PR #168977** - **PR #169130** 感谢 @RomneyDa。 - **PR #169194** - **PR #169225** 感谢 @RomneyDa。 - **PR #169238** 感谢 @RomneyDa。 - **PR #145850** 感谢 @RileyJJY。 - **PR #169303** 感谢 @changeroa。 - **PR #169397** - **PR #169412** 感谢 @obviyus。 - **PR #169454** 感谢 @hannesrudolph。 - **PR #169516** 感谢 @RomneyDa。 - **PR #169479** 感谢 @RomneyDa。 - **PR #168651** - **PR #168044** - **PR #168446** 关联 #168131。感谢 @jakeaadams。 - **PR #168164** 感谢 @obviyus。 - **PR #168393** 关联 #168207。感谢 @dprev。 - **PR #160440** 关联 #160428。感谢 @hxy91819。 - **PR #169102** - **PR #169430** - **PR #162266** 感谢 @RomneyDa。 - **PR #168905** - **PR #168587** - **PR #169265** 关联 #169264。感谢 @SanderHelgesen。 - **PR #169282** 关联 #169259。感谢 @DonnieFi。 - **PR #169284** 关联 #169261。感谢 @DonnieFi。 - **PR #169548** 关联 #169133。感谢 @RomneyDa 和 @gregb100。 - **PR #169551** 关联 #169373。感谢 @RomneyDa 和 @holgergruenhagen。 - **PR #169560** 关联 #169332。感谢 @RomneyDa 和 @farisoftfry。 ### 发布验证 - npm 软件包:https://www.npmjs.com/package/openclaw/v/2026.10.5-beta.2 - registry tarball:https://registry.npmjs.org/openclaw/-/openclaw-2026.10.5-beta.2.tgz - 完整性校验值:`sha512-9OgCXW1ZUmMdBdtojEIp7P9qRh9hTHhTARNQfTLPTtKQViuNenvcjgJh6JaJsZx9b20J0FL4qXA4q1dkw795eg==` - 发布 SHA:`467e83dea27c0d9ade8e999d688de2ed656b2225` - 完整发布 CI 报告:https://github.com/openclaw/releases/blob/main/evidence/2026.10.5-beta.2/release-evidence.md - 发布流程:https://github.com/openclaw/openclaw/actions/runs/38244441645 - npm 预检:https://github.com/openclaw/openclaw/actions/runs/38227708658 - 完整发布验证:https://github.com/openclaw/openclaw/actions/runs/38226906077 - 插件 npm 发布:https://github.com/openclaw/openclaw/actions/runs/38245185150 - 插件 ClawHub 发布:没有常规 OIDC 候选项 - 插件 ClawHub 引导:不需要 - OpenClaw npm 发布:https://github.com/openclaw/openclaw/actions/runs/38241099968/attempts/1 - npm Telegram beta E2E:未提供