v2026.8.2
v2026.8.2 为 Control UI 新增了 Home 按钮,可让您在现有工作内容旁打开个人 Home agent,而无需离开当前任务去开始另一个对话。同时还带来了 Linux 桌面伴侣、无需切换页面即可启动的后台会话、无需运行 Gateway 即可保持可用的浏览器控制、Control UI 的四款新外观,以及针对回复、语音、更新和恢复的大量修复。
发布规模: 784 个拉取请求、10 次直接提交,以及 134 位贡献者。
安装与首次设置¶
安装和首次运行设置现在能更好地保留用户已做的系统和模型选择。Linux 和 macOS 的恢复路径会更清晰地失败,引导式设置会在重新连接时保留所选的 agent 和模型,并且无需让用户前往 Terminal 即可查看、安装和验证所需的运行时插件。
Installing and Updating OpenClaw
安装现在会遵循每个系统实际采用的路径。Fedora 及其他受影响的基于 RPM 的 Linux 系统可以保留其发行版自带的 Node 包,而 OpenClaw 会选择满足其 SQLite 要求的托管运行时;shell 安装程序也再次会暴露 npm 错误,以便从受支持的陈旧启动器和安装目录中恢复。在 macOS 上,Install and Relaunch 在一次失败的迁移重试后即停止,并指向 Applications 副本,而不再循环。Linux Gateway 安装也会在写入 root 所有的配置或凭据之前拒绝不安全的 sudo-to-root 设置,同时不会改变真正的 root 安装或普通的 sudo 生命周期命令。
更新会保留更多可正常工作的安装部分。pnpm 拥有的安装会在更新程序交接期间继续使用 pnpm,被中断的包生命周期工作可以在新包启动前完成,并且经过加固的 npm 主机无需启用无关的包脚本即可更新。Doctor 现在会先迁移可读的活动配置,然后才考虑较旧的 last-known-good 副本,从而在仍需进行回退恢复时保留被拒绝的字节。ClawDock 辅助工具已退役,因此现有用户需要自行移除辅助工具源行,并改用文档中的 Docker Compose 和 OpenClaw CLI 命令,其部署状态将原地保留。
来源与完整变更列表
改进
- 让 Windows worker 和调度检查能够容忍较慢的 PowerShell 启动,同时保留有边界的身份检查(#124293)。感谢 @Chinmayrawat15 和 @obviyus。
- 发布了可读的包清单元数据,用于安装验证和捆绑插件清理(#133549)。感谢 @RomneyDa。
- 保持安装程序试运行不下载或准备可选的 Gum 界面(#134388)。感谢 @ly85206559。
Bug 修复
- 在 Windows Canvas 构建中,通过 pnpm 命令 shim 保留了带引号和转义的参数(#133395)。感谢 @ly85206559。
- 在 Docker Compose 仪表板和经过身份验证的健康检查命令中,遵守自定义发布主机端口(#133504)
- 阐明了已安装的 CLI 与可选的 Gateway 后台服务之间的区别(#133530)。感谢 @romneyda。
- 退役了 ClawDock 辅助工具,转而采用受维护的 Docker Compose 和 CLI 工作流,并为现有用户提供手动迁移(#133594)
- 在安装 Windows 补全时保留了 PowerShell profile 的编码(#133729)。感谢 @ly85206559。
- 持久化 Unix npm 全局路径,并暴露安装程序最终完成的失败(#133869)。感谢 @steipete。
- 在打包启动前完成被中断的 pnpm 11 包生命周期工作(#133908)。感谢 @obviyus。
- 在更改根文件 session-store 所有者时,保留有效的旧版 agent 名册(#133920)
- 在考虑 last-known-good 恢复之前迁移可读的活动配置(#134025)。感谢 @obviyus 和 @stuart-minion-ai。
- 在 macOS 上停止 Install and Relaunch 在一次失败的迁移重试后的继续尝试(#134074)。感谢 @VACInc 和 @Sedrak-Hovhannisyan。
- 在更新程序重新生成时保留 pnpm 所有权,并在变更前拒绝不明确的包所有权(#134075)。感谢 @obviyus 和 @YogevKr。
- 在受影响的基于 RPM 的 Linux 系统上保留发行版自带的 Node 包,同时选择对 SQLite 安全(SQLite-safe)的运行时(#134166)。感谢 @sallyom 和 @beedell-roke。
- 在启用生命周期检查的 Docker 源码和 cleanup-smoke 构建中完成依赖安装(#134231)。感谢 @steipete。
- 恢复了 shell 安装程序中的可操作 npm 错误,并支持陈旧文件恢复(#134236)。感谢 @SunnyShu0925 和 @mohamedelrefaiy。
- 在更新状态中识别暂存的无元数据全局 npm 安装(#134475)。感谢 @Patrick-Erichsen 和 @vyctorbrzezowski。
- 仅从经确证为旧的、由 OpenClaw 管理的 Linux 服务单元中移除过时的版本标记(#134482)。感谢 @Patrick-Erichsen 和 @vyctorbrzezowski。
安全与信任边界
-
移除了明确标记为私有的 macOS 诊断值,或对其进行了进程哈希处理,同时保留公开且未注释的字段不变(#133739)。感谢 @steipete。
- 在写入 root 拥有的状态之前,拒绝不安全的 Linux sudo 到 root 用户管理器安装(#134084)。感谢 @obviyus 和 @itanyplus。
- 在加固的 npm 主机上允许确切已知的 OpenClaw 生命周期守卫,同时继续拒绝无关的包脚本和意外内容(#134193)。感谢 @obviyus 和举报者 @botatdovly。
文档
- 在不更改构建行为的前提下,解释了 Android 源码和分支构建的签名身份(#124286)。感谢 @santhiprakash 和 @minoosara5426-prog。
- 指导 Docker 部署挂载整个状态目录,以便替换保存能够到达正在运行的容器(#124688)。感谢 @ericcaiwx-star。
- 区分了 OpenClaw 配置替换与字面 dotenv 值(#127524)。感谢 @dkling-it。
- 记录了现有的 Node 服务
--no-tls安装选项(#130258)。感谢 @qingminglong。 - 记录了 macOS 已安装应用共享的启用和禁用标志(#131684)。感谢 @qingminglong。
引导式设置与提供商登录
首次运行设置现在会等待刚刚配置的对象实际生效。模型设置会在重新连接期间保留所选模型,保持待处理状态直到保存的设置生效,并在运行中的 Gateway 尚未就绪时显示实际的恢复原因。引导式 CLI 设置仅在一个步骤确实属于某个代理时才询问代理,并在后续流程中保留该选择,同时允许用户在不需要复制凭据的情况下添加代理。
当模型需要运行时插件时,macOS 引导和 Control UI 可以显示插件的来源及其请求的功能,要求明确批准,安装插件,并在同一流程中验证模型。拒绝或取消将保持已配置的模型不变,并停止该尝试。Mac 用户还可以在原始回调被证明未发送的情况下,在同路由重新连接后完成 ChatGPT 登录;取消停滞的提供商登录;或退出引导,而不让迟到的结果接管新的尝试。
来源和完整变更列表
改进
- 在引导式设置中保留一个明确的代理选择,并使凭据复制变为可选(#133983)。感谢 @msipes 和 @JunfXiao。
错误修复
- 在创建默认代理名册后,防止有效的首次运行推理路由被拒绝(#130370)。感谢 @RomneyDa。
- 使首次运行的模型设置保持待处理状态,直到保存的设置生效为止(#133434)
- 停止让缺失的可选 SecretRef 环境变量产生误导性的修复警告(#133582)。感谢 @pengzh1、@vincentkoc 和 @jodok。
- 识别已配置的基于文件和托管的 SecretRef API 密钥,而不解析或暴露它们(#133596)。感谢 @mateu 和 @Patrick-Erichsen。
- 在设置就绪检查期间要求真实的 Gateway 协议证据(#133989)
- 在证明回调未发送并完成同路由 Gateway 重新连接后,完成 macOS ChatGPT 登录(#134268)。感谢 @obviyus 和 @Sedrak-Hovhannisyan。
- 允许取消停滞的 macOS 提供商登录,而不会让迟到的结果替换较新的尝试(#134380)。感谢 @VACInc 和 @Sedrak-Hovhannisyan。
- 恢复了跨配置的原生语言环境的两个 macOS 引导消息(#134492)
安全与信任边界
- 恢复了在安装必需运行时插件之前进行明确的应用程序内能力审查(#134101)。感谢 @VACInc、@coygeek、@hannesrudolph 和 @Sedrak-Hovhannisyan。
文档
- 用实际的主会话选项替换了不支持的 custom main-session-key 指南(#133804)。感谢 @senorsen。
全新的 Web UI¶
当多个对话同时进行时,Control UI 更易于使用。可以在后台启动 New Session,Home 可以保持在屏幕上已有工作旁边,消息和草稿能更可靠地保留位置,长历史记录减少重复工作,并且四个可选主题让工作区更易于个性化。
开始和编写对话
现在,New Session 可以在后台开始,而你可以留在设置页面上准备其他内容,然后在准备好时从其完成通知中打开。普通文件夹和新仓库仍然可用,而不会假装它们支持工作树;项目和检出选择可在临时发现失败后继续保留;启动进度会持续推进,而不是隐藏较新的工具或批准活动。从 New Session 中未聚焦的部分输入时,也会将第一个可打印字符发送到消息输入框。
在 iPhone 上,当所连接的 Gateway 和操作员访问权限支持时,模型、推理努力、权限、上下文、附件、技能、连接器和工具控件现在都位于消息输入框中。排队消息仍绑定到发送前已审阅的设置;较旧或过时的队列条目会停下来等待审阅;Control UI 提示在准备、完成和重新加载过程中保持一个可见的身份。选择文本可以打开可编辑的侧边聊天草稿,而不会将侧边问题添加到主历史记录中。
来源与完整变更列表
**限制与兼容性说明** - 后台启动适用于新建会话,而不适用于已处于活动状态的聊天会话。 - 按下已选中模型对应的数字仍可能被捕获为消息文本。 - iPhone 编辑器控件需要所连接的网关(Gateway)上报支持,并且需要操作员的访问权限范围;过时或较早排队的消息在重试前需要先进行审查。 - 另有一个关于强制刷新时图像水合(image hydration)的观察尚未解决;极短的主屏幕 Dock 提示的标题仍可能受到其末尾工作上下文的影响。 **改进** - 在后台启动新建会话草稿 [#128050](https://github.com/openclaw/openclaw/pull/128050) ——感谢 [@Takhoffman](https://github.com/Takhoffman) - 将模型、权限、上下文、附件、技能、连接器和工具控件引入 iOS 编辑器 [#132683](https://github.com/openclaw/openclaw/pull/132683) ——由 [@Solvely-Colin](https://github.com/Solvely-Colin) 完成 - 在同一个编辑器界面中呈现目标的创建与编辑 [#132787](https://github.com/openclaw/openclaw/pull/132787) ——由 [@vyctorbrzezowski](https://github.com/vyctorbrzezowski) 完成 - 统一浅色主题下的任务、队列、目标和编辑器界面 [#132799](https://github.com/openclaw/openclaw/pull/132799) ——由 [@vyctorbrzezowski](https://github.com/vyctorbrzezowski) 完成 - 区分会话启动与已确认的并发等待 [#133470](https://github.com/openclaw/openclaw/pull/133470) ——由 [@steipete](https://github.com/steipete) 完成 - 统一“只读”和“完全访问”权限标签 [#133657](https://github.com/openclaw/openclaw/pull/133657) ——由 [@steipete](https://github.com/steipete) 完成 - 在原生 Apple 对象负载中保留数值和布尔值 [#133707](https://github.com/openclaw/openclaw/pull/133707) ——由 [@steipete](https://github.com/steipete) 完成 - 在临时发现失败期间复用已编辑的新建会话工作区选择 [#133744](https://github.com/openclaw/openclaw/pull/133744) ——由 [@steipete](https://github.com/steipete) 完成 - 允许将选中的聊天文本作为可编辑的侧边聊天问题打开 [#134596](https://github.com/openclaw/openclaw/pull/134596) ——由 [@Patrick-Erichsen](https://github.com/Patrick-Erichsen) 完成 **Bug 修复** - 保留在未聚焦的新建会话页面中键入的第一个可打印字符 [#132773](https://github.com/openclaw/openclaw/pull/132773) ——由 [@vyctorbrzezowski](https://github.com/vyctorbrzezowski) 完成 - 在较长的 Control UI 对话中保持输入响应顺畅 [#133465](https://github.com/openclaw/openclaw/pull/133465) ——感谢 [@VACInc](https://github.com/VACInc) - 在工作树重试期间保留已生成的标题和单调递增的进度 [#133489](https://github.com/openclaw/openclaw/pull/133489) ——由 [@steipete](https://github.com/steipete) 完成 - 在完成和重新加载过程中将排队的提示保持为单个气泡 [#133542](https://github.com/openclaw/openclaw/pull/133542) ——由 [@steipete](https://github.com/steipete) 完成 - 保持普通文件夹和新仓库可在新建会话中使用 [#133664](https://github.com/openclaw/openclaw/pull/133664) ——由 [@steipete](https://github.com/steipete) 完成 - 在仓库发现后恢复有效的新建会话放置偏好 [#133705](https://github.com/openclaw/openclaw/pull/133705) ——由 [@steipete](https://github.com/steipete) 完成 - 在 Control UI 登录解决后恢复已注册的项目 [#133817](https://github.com/openclaw/openclaw/pull/133817) ——由 [@steipete](https://github.com/steipete) 完成 - 在工作区准备完成时,让首个图像提示保持可见一次 [#133861](https://github.com/openclaw/openclaw/pull/133861) ——由 [@steipete](https://github.com/steipete) 完成 - 在命名对话时,将用户的主屏幕 Dock 请求置于生成的上下文之前 [#134591](https://github.com/openclaw/openclaw/pull/134591) ——由 [@steipete](https://github.com/steipete) 完成 - 将加载中的模型选择器与编辑器控件保持分组 [#134594](https://github.com/openclaw/openclaw/pull/134594) ——由 [@Patrick-Erichsen](https://github.com/Patrick-Erichsen) 完成 **文档与本地化** - 本地化会话权限指南和变更反馈 [#133708](https://github.com/openclaw/openclaw/pull/133708) - 在所有受支持的 Control UI 语言环境中本地化助手侧边栏控件 [#134301](https://github.com/openclaw/openclaw/pull/134301) - 更新所有受支持的 Control UI 语言环境中待处理消息和导航的措辞 [#134567](https://github.com/openclaw/openclaw/pull/134567)消息与上下文各归其位
排队、中断和已取消的输入现在会返回到其被接受的位置,而不会再落到较新回复的下方;Control UI 已交出的提示在刷新、分页和重新挂载后仍然保持不再出现。跨会话消息会显示它们来自哪个对话,并提供返回该对话的链接;同时,在长时间对话空间耗尽后的恢复过程中,会确保最新的活动文本请求优先于已被取代的任务。
围绕这些交接,命令界面也更加简洁。手动停靠和聚焦命令已移除,且不提供兼容别名;/session unbind 现在是分离已绑定对话而无需结束其代理会话的受支持方式。
来源与完整变更列表
限制与兼容性说明
- 恢复修复涵盖带有文本的活动请求,而较新的纯图像请求仍可能让位于较旧的文本任务。
- 已退役提示的显示修复不会导致重复的模型执行、额外成本或永久性记录损坏。
- 隐藏的导出记录在“全部(All)”以及原始 HTML 和 JSONL 归档中仍然可用;而独立的通道持久化与跨通道绑定 ID 问题不在这些修复范围内。
- 同一代理下转发消息的头像行为由另一个部分负责,此处不做声称。
改进
- 将跨会话消息显示为相互关联且带来源归属的对话气泡 [#132054](https://github.com/openclaw/openclaw/pull/132054) — 由 [@steipete](https://github.com/steipete)
**Bug 修复**
- 在上下文溢出恢复期间,让最新的活跃文本请求优先于已被取代的工作 [#123737](https://github.com/openclaw/openclaw/pull/123737) — 感谢 [@wangyan2026](https://github.com/wangyan2026), [@obviyus](https://github.com/obviyus), 和 [@andersonjeccel](https://github.com/andersonjeccel)
- 防止过大的保留转录在每一轮重复无效的字节压缩 [#127110](https://github.com/openclaw/openclaw/pull/127110) — 感谢 [@yu-xin-c](https://github.com/yu-xin-c), [@obviyus](https://github.com/obviyus), 和 [@fede-kamel](https://github.com/fede-kamel)
- 保留插件拥有的绑定和有效的子代理任务控制 [#127147](https://github.com/openclaw/openclaw/pull/127147) — 由 [@steipete](https://github.com/steipete)
- 用 `/session unbind` 替代手动停靠和聚焦命令 [#133153](https://github.com/openclaw/openclaw/pull/133153) — 由 [@steipete](https://github.com/steipete)
- 在任一转录更改之前拒绝冲突的压缩身份 [#133678](https://github.com/openclaw/openclaw/pull/133678) — 由 [@steipete](https://github.com/steipete)
- 防止已接受和已退役的提示在历史刷新后重新出现 [#134059](https://github.com/openclaw/openclaw/pull/134059) — 由 [@steipete](https://github.com/steipete)
- 将排队、中断和已取消的输入恢复到其已接受的时间线位置 [#134261](https://github.com/openclaw/openclaw/pull/134261) — 感谢 [@VACInc](https://github.com/VACInc)
- 将隐藏的续接输入排除在普通用户的 HTML 导出视图之外 [#134561](https://github.com/openclaw/openclaw/pull/134561) — 由 [@steipete](https://github.com/steipete)
</details>
可整理和共享的会话
会话菜单现在将日常整理、外观、复制、导航和破坏性操作归入更清晰的分组,图标和颜色编辑集中在一处,受支持的目的地无需在界面中翻找即可使用。空分组标题可在本地隐藏,而不会丢失其成员关系或移动目标;嵌套菜单会保持父级行高亮,普通操作文本也可以再次选择和复制。
Beam 转录共享现在使用更短且可读的链接,同时保持现有目录链接和正常授权不变。在更新或突然重启后返回已有的 Control UI 标签页时,也会重新连接,而无需打开另一个标签页,并保留你已打开的路由和未发送草稿。
来源和完整变更列表
限制与兼容性说明
- 复制的会话链接和 Beam 共享保留其正常授权,不是公开链接;现有 Beam 目录链接仍受支持。
- 隐藏空分组是默认关闭的浏览器本地偏好设置。
- 挂起标签页恢复已通过 Chromium 和 Playwright WebKit 验证,而非实体 Safari。
改进
- 添加可读的 Beam 转录共享链接 #125755 — 由 @steipete
- 整理会话操作并合并图标和颜色编辑 #133490 — 由 @steipete
- 在会话界面中,每个可见参与者或查看者只显示一次 #133519 — 由 @steipete
- 使操作文本可选择,并为 GitHub 设备设置添加“复制代码”操作 #133536 — 感谢 @RomneyDa 和 @Grynn
- 在按钮旁解释会话分支和编辑器控件 #133556 — 由 @steipete
- 允许用户在本地隐藏空的会话分组标题 #133638 — 由 @steipete
- 在嵌套菜单打开时保持父级会话行高亮 #133718 — 由 @steipete
Bug 修复
- 在 Gateway 更新后恢复挂起的 Control UI 标签页 #134189 — 感谢 @Takhoffman
长会话和历史
较长的 Control UI 会话现在最多以 800 条最近消息打开,并将较早页面限制在 1,000 条以内,因此在另一次历史加载之前,当前会话的更多内容已就绪。初始渲染和较早页面前置路径重复的工作更少,同时保持可见内容和滚动行为不变。
导入或返回大型保留历史时,受影响路径所需的本地工作也减少,同时会话及其搜索结果保持不变。
来源和完整变更列表
限制与兼容性说明
- 现有的字节和条目上限可能会减少 800 条消息的初始窗口和 1,000 条消息的较早页面窗口。
- 测量覆盖特定的 Control UI、SQLite、Linux、sanitizer、title-cache 和合成工作负载,而非所有浏览器、网络、提供商、Gateway 或滚动延迟。
- 较小的导入案例噪声较大,重放时间大致不变,混合启动测量未能确立普遍加速。
- 长会话正确性单元不应独占更广泛历史结果的功劳。
改进
-
减少 Markdown 密集型消息的本地格式化工作 #133483 — 由 @steipete
- 在更大的历史窗口中加载长聊天 #133565 — 由 @steipete
- 在准备长聊天历史时减少重复工作 #133635 — 由 @steipete
- 打开最多包含 800 条最近消息的长对话,并延迟已关闭提示框的布局工作 #133734 — 由 @steipete
- 减少大型会话导入期间的 CPU 和内存分配工作 #133742 — 由 @steipete
- 以更少的重复工作加载和滚动长聊天历史 #133798 — 由 @steipete
- 减少大型会话导入和重建期间的投影工作 #133802 — 由 @steipete
- 以更少的浏览器阻塞加载并前置长 Control UI 历史 #133870 — 由 @steipete
- 减少大型外部内容的本地准备工作 #134064 — 由 @steipete
- 减少 Control UI 启动和历史处理工作 #134209 — 由 @steipete
- 减少大型历史中重复的工具卡片、标题、界面框架和设置工作 #134369 — 由 @steipete
Bug 修复
用量、设置和运维指南
用量和状态视图现在会在工具调用、重试、审批、重连以及最终总结中携带累计输出 Token 总数,同时所选模型会报告其已准备的上下文窗口,而不是回退到通用数值。成本估算会将不同提供商的模型区分开,保留显式的自定义价格和零价格,并避免将托管费率应用于私有端点。
设置还会在两个 OpenClaw 进程同时执行首次保存时保留各自的更改,并且 Control UI 会将配置簿记从日常外观设置中移出,同时保留同意选项可编辑。
来源和完整变更列表
限制和兼容性说明
- 提供商计费总额仍为权威依据,且已准备的价格证据并非发票对账。
- 已持久化的 Codex 工具循环计费少计问题以及更广泛的 Gateway CPU 报告仍相互独立。
- 历史包编号更正未在已准备的证据中针对注册表或标签状态进行最新验证。
改进
Bug 修复
- 修正缓存的长上下文和多调用成本估算 #133349 — 由 @steipete
- 在状态视图中使用已准备模型的实际上下文窗口 #133452 — 感谢 @vincentkoc、@Finn763 和 @ahmedsaed
- 在工具调用、重试、审批和重连中保持累计输出 Token 总数 #133605 — 由 @steipete
- 刷新原生提供商价格而不覆盖自定义价格 #133695 — 感谢 @samson1357924
- 保留来自不同 OpenClaw 进程的并发首次保存更改 #134072 — 感谢 @MrSwagatRathod 和 @obviyus
文档和本地化
- 将配置、备份、恢复、验证和计划备份命令添加到 CLI 映射 #122632 — 由 @Adkid-Zephyr
- 将已退役的实现计划重定向到受维护的产品指南 #133404 — 由 @steipete
- 明确 Gateway 传输和节点调用超时的区别 #133766 — 由 @qingminglong
- 将 Fleet 及其主要子命令添加到 CLI 索引 #133940 — 由 @qingminglong
- 恢复结构化的 v2026.8.1 文档发布页面 #134195 — 由 @hannesrudolph
- 更正错误编号为 2026.9.1-beta.1 的包的指南 #134512 — 由 @hannesrudolph
外观与日常界面打磨
每个新的外观选项都支持浅色或深色模式,并遵循你的个人资料;Manuscript 新增了首个内置的浅色优先设计,Claw 仍为默认。明确选择的外观在 Gateway 重连期间也会保持不变,而不会短暂让位于浏览器的系统主题。
来源和完整变更列表
限制与兼容性说明
- CRT 需手动启用;基于本地系统主题完成首次绘制后,仍可能收到远程深色个人资料偏好。
- 多项视觉更改由已发布的差异或确定性浏览器覆盖支持,未使用物理设备截图。
- 本地化产物确立了生成目录的覆盖范围,但未对每个翻译进行独立的母语者审查。
改进
- 在空视图和有内容视图中保持收件箱标题和分类标签对齐 #132798 — 由 @vyctorbrzezowski
- 为 GitHub 链接使用预览形状的加载状态,包括减少动态效果行为 #133363 — 由 @steipete
- 在 Gateway 重连期间保持所选外观设置稳定 #133417 — 由 @vyctorbrzezowski
- 简化麦克风和摄像头设备设置 #133437 — 由 @steipete
- 新增可选启用的 CRT 控制台主题 #133495 — 由 @steipete
- 新增 Manuscript、Rosé 和 Miami 外观主题 #133593 — 由 @steipete
- 使工作指示器与已用时间和 Token 状态对齐 #133682 — 由 @Patrick-Erichsen
- 在消息菜单上方保持 Chat Rewind 确认控件可用 #133791 — 由 @steipete
- 保持 CRT 单色,同时保留 Phosphor 的绿色调色板 #133857 — 由 @steipete
缺陷修复
- 在 Control UI 新加载时立即绘制浅色模式 #132789 — 由 @vyctorbrzezowski
- 防止紧凑 GitHub 链接显示重叠预览 #133402 — 由 @steipete
- 居中侧边栏账户行并保持其分隔线稳定 #134432 — 由 @steipete
文档与本地化
让 Home 代理停靠在当前工作旁
Home 代理现在可以停靠在当前 Control UI 工作旁边,并保留其常规对话历史、工具、审批、队列、附件,以及保留草稿的完整页面交接,因此寻求帮助不再意味着离开你正在处理的内容。
来源和完整变更列表
一个已经显示所选 Home 对话的 Dashboard 路由仍存在同时呈现页面和停靠栏输入框的未解决风险。在准备好的证据中,实时开发 Gateway 演练仍未完成。
改进
- 让 Home 代理停靠在活跃的 Control UI 工作旁 #133676 由 @steipete
显示发送者的转发消息
Control UI 中的转发消息现在会通过该代理的头像或稳定首字母显示是哪个代理发送的,包括在身份标识过去会消失的直接对话中。
来源和完整变更列表
改进
范围说明
- 同一代理的转发使用当前助手头像,尽管已发布的文档仍描述转发图标,需要更正。
- 区域设置更新证明的是生成的目录内容,而非每个区域设置的渲染外观或语言质量。
更新与维护¶
更新现在会保留更多可工作的安装内容,并在出现问题时留下更清晰的恢复路径。Doctor 可以协调受支持的离线修复与受管 Gateway,繁忙系统为状态和 Control UI 请求提供更多运行空间,恢复消息会保留有用的脱敏细节,而不会将不确定的工作变成虚假成功。
保留恢复路径的更新
自动更新现在会在重连、重新加载、禁用检查、一次性安装和受管服务交接中保持所选通道和最终结果。无人值守安装仍仅限于受管 Gateway 服务,而前台 Gateway 会保持运行,直到你自行遵循停止、更新和启动路径。
启用重启的更新还会在无法检查服务所有权时拒绝替换文件,在失败的更新可恢复时保留回滚信息,并在会话迁移未完成时停止,而不是宣称成功。安装较新的软件包不再在该版本实际运行之前迁移共享状态,但已被受影响软件包更改的数据库仍需要兼容的备份恢复,并且这些路径中的任何一个都不会将整个更新变成一个可逆事务。经过验证的旧版迁移原始文件现在可以在所选 Gateway 停止后预览并删除,但该清理是显式且不可逆的,因为它会永久删除旧安装原本可用于回滚的文件。
<details class="release-source-toggle">
<summary>来源和完整变更列表</summary>
**改进**
- 让更新帮助和只读规划更早开始 [#133698](https://github.com/openclaw/openclaw/pull/133698) — 感谢 @steipete
- 减少更新预检工作和无人值守提示 [#133801](https://github.com/openclaw/openclaw/pull/133801) — 感谢 @steipete
- 为经过验证的旧版迁移恢复文件添加显式清理 [#133864](https://github.com/openclaw/openclaw/pull/133864)
**错误修复**
- 在可安全恢复的 CLI 更新失败后恢复受管 Gateway [#119516](https://github.com/openclaw/openclaw/pull/119516) — 感谢 @zyw02
- 防止软件包安装在首次运行前迁移共享操作员状态 [#129475](https://github.com/openclaw/openclaw/pull/129475) — 感谢 @BryanTegomoh、@obviyus 和 @BillVerhelle
- 当 Gateway 服务状态未知时,在变更前停止启用重启的更新 [#132853](https://github.com/openclaw/openclaw/pull/132853) — 感谢 @jason-allen-oneal 和 @obviyus
- 允许较旧的 CLI 在较新状态迁移后停止受管 Gateway [#133595](https://github.com/openclaw/openclaw/pull/133595) — 感谢 @RomneyDa
- 使更新进度、计时、诊断和最终结果持久化 [#133622](https://github.com/openclaw/openclaw/pull/133622)
- 保持打印和持久化的更新完成时长一致 [#133809](https://github.com/openclaw/openclaw/pull/133809) — 感谢 @steipete
- 在超越该版本时保留已发布的 v2026.8.1 修复 [#134045](https://github.com/openclaw/openclaw/pull/134045) — 感谢 @shakkernerd
- 当旧版会话迁移仍不完整时,在成功前使更新失败 [#134228](https://github.com/openclaw/openclaw/pull/134228) — 感谢 @shakkernerd
- 防止 `update --no-restart` 将重启所有权转移给 Doctor [#134470](https://github.com/openclaw/openclaw/pull/134470)
- 在受管服务交接过程中保留自动更新策略和结果 [#134566](https://github.com/openclaw/openclaw/pull/134566)
**文档**
- 在历史 v2026.8.1 发布页面上添加备份和 SQLite 降级限制 [#133591](https://github.com/openclaw/openclaw/pull/133591) — 感谢 @hannesrudolph
- 扩展历史失败更新恢复指南 [#133896](https://github.com/openclaw/openclaw/pull/133896) — 感谢 @steipete
</details>
Doctor 修复和状态迁移
Doctor 现在可以通过停止匹配的受管 Gateway、完成受支持的修复、检查结果并重启同一服务,来显式承担更多离线修复工作。它可以恢复受支持的旧版审批和数据库,在迁移期间保留有效的计划任务和当前 Voice Call 设置,并在修复无法完成时说明哪些原始材料仍然可用。
这种所有权范围仍然刻意保持狭窄。普通诊断保持在线,已经停止的服务保持停止,而模糊或外部的服务所有权、不可读的配置、无关的数据库漂移、活动写入者以及不完整的工作区迁移仍然保持失败关闭。这是一条更清晰的修复路径,而不是承诺每个平台或损坏状态都可以自动修复。
来源和完整变更列表
Linux 之外的原生服务管理器路径是模拟的,而不是在实际安装上验证的。
改进
- 减少旧版会话导入、压缩和 Control UI 启动开销 #133446 — 感谢 @steipete
- 加快旧版会话转录导入 #133496
- 为旧版导入和转录替换复用数据库操作 #133546 — 感谢 @steipete
- 减少旧版转录扫描开销 #133611 — 感谢 @steipete
- 加快目标旧版会话转录导入 #133641 — 感谢 @steipete
- 减少深度和旧版会话导入期间的重复检测工作 #133689 — 感谢 @steipete
- 为大型 SQLite 历史复用预准备的转录批量写入器 #134252
错误修复
- 通过 Doctor 恢复具有空使用元数据的历史执行审批 #118282 — 感谢 @obviyus 和 @sercada
- 隔离失败的通道迁移计划,同时保留重试状态 #119201 — 感谢 @ruel225
- 在 Doctor 迁移期间保留已禁用的共享心跳所有权 #133444 — 感谢 @PollyBot13 和 @obviyus
- 将自动的按代理数据库迁移置于可续期的已停止写入者权限之后 #133563 — 感谢 @omarshahine
- 将失败的会话删除排除在成功清理统计之外 #133668 — 感谢 @steipete
- 在清理摘要中统计成功删除的零字节工件 #133697 — 感谢 @steipete
- 允许 Doctor 导入受支持的旧版执行审批,同时运行时访问保持失败关闭 #133773 — 感谢 @dailytrap 和 @obviyus
- 通过 SQLite 迁移保留有效的计划任务,并添加显式 Doctor 恢复 #133858 — 感谢 @fuller-stack-dev、@ejc3、@LiuwqGit 和 @zhangguiping-xydt
- 在 Doctor 恢复归档会话时保留独立创建的文件 #133921 — 感谢 @steipete
- 在批量会话清理后刷新 SQLite 计划器统计 #133925 — 感谢 @VACInc
- 在不暴露其值的情况下命名格式错误的旧版审批字段 #133952 — 感谢 @obviyus、@sercada 和 @steipete
- 移除嵌套或符号链接代理工作区的误导性 Git 备份警告 #133964 — 感谢 @obviyus 和 @jeffsteinbok-openclaw
- 当不完整的工作区迁移状态可能阻止代理时拒绝就绪 #133982
- 报告中断的认证归档恢复结果 #134009 — 感谢 @angeliti999 和 @shakkernerd
- 在旧版迁移期间保留当前 Voice Call 设置 #134018 — 感谢 @steipete
- 让显式 Doctor 修复与匹配的受管 Gateway 安全协调 #134031
- 在 Doctor 数据库迁移后刷新有界的 SQLite 计划器统计 #134062 — 感谢 @VACInc
- 报告被无效配置写入阻止的修复,并保留其来源 #134078 — 感谢 @obviyus 和 @YogevKr
- 停止对经过验证的规范数据库链接的虚假旧版内存警告 #134087 — 感谢 @obviyus 和 @02-dino
- 通过 Doctor 修复受支持的旧版 v17 代理数据库 #134208 — 感谢 @EthDing、@obviyus 和 @abacha
- 在迁移期间保留 Hermes 模型所有权、提供商设置和激活策略 #134426
- 在重启受管 Gateway 之前释放 Doctor 数据库所有权 #134429
- 通过避免未使用的插件运行时图减少 Doctor 内存压力 #134541
- 在声明或规范写入之前拒绝格式错误的旧版迁移 JSON #134577 — 感谢 @vincentkoc
文档
- 修正了 Doctor 拥有的会话迁移和发现指南 [#133818](https://github.com/openclaw/openclaw/pull/133818)
- 修正了 SQLite 降级恢复指南 [#133831](https://github.com/openclaw/openclaw/pull/133831) — 感谢 @steipete
- 使托管服务替换指南与 Doctor 维护所有权保持一致 [#134358](https://github.com/openclaw/openclaw/pull/134358)
</details>
Gateway 响应性与关闭
繁忙的 Gateway 现在在会话重命名、打开历史、列出任务页面、检查计划任务或多个 agent 轮次同时运行时,用于重复工作的时间更少。大型会话列表保留的内存更少,异常分支的历史不再重复相同的祖先工作,有界操作员请求在返回可重试的过载结果之前有更公平的机会启动。
关闭还会停止接纳尚未开始的出站重试,将其保留在队列中供下一个进程处理,同时已开始的 provider 尝试可以完成。这些改进仅限于这些 Gateway 路径,并不会消除持续负载下的所有延迟。
来源和完整变更列表
性能证据的范围限于已记录的 SQLite、Control UI、history、cron、session-list 和 Gateway 工作负载。更广泛的同步数据库瓶颈、持续 CPU 压力、已登录 Chrome 的退化以及长尾延迟仍不在该声明范围内。
改进
- 在 Gateway 控制平面读取中复用了已准备的事实 #133477 — 感谢 @steipete
- 减少了并发 Gateway 轮次前的重复准备工作 #133782
- 为 Gateway 聊天和启动请求复用了所属历史快照 #133903
- 减少了大型会话列表和清理扫描中保留的内存 #134395 — 感谢 @steipete
Bug 修复
- 防止大型分支会话历史阻塞 Gateway 事件循环 #123541 — 感谢 @njuboy11 和 @obviyus
- 对大型历史中的任务页面选择设置了边界 #132903 — 感谢 @jason-allen-oneal 和 @obviyus
- 减少了并发会话更新期间 Gateway 和 Control UI 的卡顿 #133061
- 在延迟关闭诊断中命名了活跃的根工作持有者 #133154 — 感谢 @VACInc
- 减少了并发轮次期间控制平面的卡顿,并清理了早期超时 #133429 — 感谢 @steipete
- 抑制重复的状态数据库警告,直到错误变化或恢复 #133502 — 感谢 @RomneyDa
- 防止 cron 读取和空闲唤醒反复阻塞 Gateway #133552 — 感谢 @vincentkoc 和 @josephbergvinson
- 在轮次突发期间为就绪和 Control UI 请求提供了更多运行机会 #133683 — 感谢 @steipete
- 在负载下更及时地启动有界操作员请求 #133873
- 避免了真正全新 CLI 启动时的迁移工作 #134090 — 感谢 @steipete
- 在 Gateway 关闭期间停止接纳尚未开始的出站重试 #134381 — 感谢 @VACInc
文档
- 为外部 Gateway 监督者定义了启动、拒绝和替换接受规则 #130961 — 感谢 @1052326311 和 @josephbergvinson
恢复消息和操作员诊断
当恢复需要人工介入时,OpenClaw 现在能更好地说明发生了什么,而不会暴露它试图保护的内容。离线分诊仍可以生成脱敏归档,嵌入式分诊仍绑定到正在诊断的安装和路径,status 和 log 命令保留实际的脱敏失败信息,简短的 Control UI 错误不再在空详情面板中重复自身。
Control UI 内的恢复也更清晰。可以丢弃过期的未确认浏览器消息,以便后续排队输入继续,离线分屏草稿仍可恢复,重新连接后取消排队消息编辑会恢复原始队列,而不会替换编辑器草稿。丢弃浏览器副本无法证明或撤销 Gateway 可能已接受的工作,因此界面将其视为本地恢复而非回滚。
来源和完整变更列表
Bug 修复
- 拒绝了相互矛盾的 all-agent 和 single-agent 使用查询 #125269 — 感谢 @zyw02 和 @obviyus
- 在保留期清理期间保留了新写入的 Gateway 诊断包 #132626 — 感谢 @Alix-007
- 在连接前拒绝了空白的 node RPC 超时值 #132641 — 感谢 @xydt-juyaohui
- 当
sessions tail --follow的轨迹存储变得不可读时使其失败 #132660 — 感谢 @Alix-007 - 在精确结算的失败工具批次后恢复 agent 轮次 #133300 — 感谢 @VACInc
- 从 Control UI 错误警报中移除了重复的装饰性 emoji #133342 — 感谢 @vyctorbrzezowski
- 在联系 Gateway 之前拒绝了格式错误的审批授权限制 #133361 — 感谢 @qingminglong
- 隐藏了冗余的 Control UI 错误详情,同时保留有用的诊断信息 #133369 — 感谢 @vyctorbrzezowski
- 保持
sessions tail在 Unicode 会话键下的列对齐 #133422 - 允许 Control UI 用户丢弃阻塞队列的未确认本地消息 #133440
- 更新了 Control UI 中本地化的队列恢复指南 #133458
- 澄清了 memory 命令帮助中的 all-agent 默认值 #133560 — 感谢 @steipete
- 在 Undici 调试捕获中保留了有用的脱敏标头 #133586
- 保留了离线分屏草稿,并安全恢复已取消的队列编辑 #133628
- 从被权威失效的仅控制 CLI 恢复中恢复了一次 #133684 — 感谢 @vincentkoc 和 @jakestenger
- 保持 Unicode attach-session 选项和任务表对齐 #133758
- 在超大的已转义 Code Mode 输出中保留了可读前缀 #133777
- 拒绝了空白的 channel-capability 超时值 #133781 — 感谢 @marmar9615-cloud 和 @SunnyShu0925
- 防止工具进度摘要将 shell 目标视为搜索目标 #133783 — 感谢 @darioandyoshi-tech
- 在 Gateway 离线时保留了脱敏的分诊诊断 #133842
- 在发现前拒绝了空白的 Gateway 探测超时值 #134040 — 感谢 @SunnyShu0925
- 保留了来自 memory vector workers 的有界 native 或 SQLite 错误详情 #134106 — 感谢 @klabir 和 @steipete
- 停止宣传无用的 message-read thread 选项,同时保留解析兼容性 #134212 — 感谢 @marmar9615-cloud
- 防止离线 TLS 诊断创建或修复 Gateway 证书 #134223
- 保持嵌入式分诊命令位于正在诊断的安装上 #134244 — 感谢 @obviyus
- 从生成的 shell 补全中省略了隐藏命令和选项 #134247 — 感谢 @marmar9615-cloud
- 在完整 status 报告中遵循 usage 和 agent-scope 选项 #134269
- 在分诊归档中准确报告了已声明的 agents、plugins、channels 和 Tailscale 模式 #134416 — 感谢 @steipete
- 保留了来自失败 managed-worktree 设置的安全混合流诊断 #134428 — 感谢 @vincentkoc
- 移除了令人困惑的保留消息清单横幅 #134456 — 感谢 @RomneyDa
- 在 JSON 日志错误中放入实际的脱敏失败原因 #134534
文档
- 已弃用冗余指南,并更正了稳定版 Gateway 包指南 [#133722](https://github.com/openclaw/openclaw/pull/133722) — 感谢 @steipete
</details>
消息¶
语音、媒体和频道对话现在能更好地达成明确结束,并始终跟随发起对话的人和聊天。语音回复在更多投递交接中得以保留,通话和 Browser Talk 能保持轮次顺序,附件和纯文本保留其预期形态,账户特定故障也不再需要拖垮所有正常频道。
Browser Talk 对话
Browser Talk 现在会在打开连接前等待麦克风权限,并说明正在等待什么,而不是看起来卡住。对话开始后,即使转录到达较晚,语音问答也会保持顺序;转录失败可以显示而无需关闭通话;打断 Google Live 回复也不会再错误地结束下一轮。
默认会话也会将配置的代理、转录和咨询保持在一起,生成的咨询指令不再作为来自用户的第二条消息出现,后续语音请求可以在首次交互后继续。
来源和完整变更列表
改进
- 在 20 个 Control UI 区域设置中刷新语音和麦克风指南 #133352
Bug 修复
- 在 Browser Talk 和听写中说明待处理的麦克风访问 #133353
- 在打断后保持 Google Live 轮次对齐 #133365
- 在创建 Browser Talk 提供商会话前等待麦克风访问 #133384
- 使失败的 Browser Talk 重启停留在一致的停止或错误状态 #133410
- 显示 Browser Talk 输入转录失败而不结束通话 #133473 — 感谢 @steipete
- 在 Browser Talk 中保留 OpenAI WebRTC 对话顺序 #133493 — 感谢 @vmbbz
- 将生成的 Browser Talk 咨询文本排除在可见用户历史之外 #133947 — 感谢 @chelsealong、@lsr911、@obviyus、@ZengWen-DT、@SebTardif 和 @Conan-Scott
- 遵循默认 Browser Talk 会话中配置的所有者 #133958 — 感谢 @astra-openclaw
- 将生成的 Browser Talk 咨询问题视为字面输入 #134093 — 感谢 @lsr911
- 在通话建立后保持后续 Browser Talk 轮次被接纳 #134138 — 感谢 @mastertyko
范围与验证
转录顺序修复仅针对 OpenAI WebRTC,而 Google Live 有单独的打断修复。默认会话所有权和当前连接控制并未建立后续工作所识别的更广泛的完成、历史、取消或移动端边界。浏览器和提供商覆盖使用了合成夹具,而不是物理麦克风或已认证的语音会话。
语音回复投递
语音回复现在能穿过更多此前成功合成可能会消失或被误认为未完成答案的地方。私有的 Discord 和 Telegram 回复可以投递一条允许的内置 TTS 语音消息,同时保持私有最终文本隐藏;长回复会将内部推理和已知工具状态文本排除在音频之外;已投递的语音可以结束轮次,而不会给出误导性警告或不必要的第二次请求。
在 Code Mode、Tool Search 或 Codex 工作期间创建的语音也有更清晰的路径进入最终回复,而只有在请求超时后才完成的音频仍会被暂扣。
来源和完整变更列表
Bug 修复
- 在私有的 Discord 和 Telegram 回复中投递内置 TTS 音频 #133324 — 感谢 @obviyus、@TurboTheTurtle、@clawSean 和 @Conan-Scott
- 将带标记的推理和已知工具脚手架排除在语音摘要之外 #133615 — 感谢 @camball-strategies
- 在语音回复投递后干净地结束轮次 #133968
- 通过嵌套工具保留语音投递和进程输出 #134056
- 通过媒体投递保留已接受的 Codex 语音 #134170
范围与验证
现有发送策略和过期运行权限保持不变。投递证明使用了合成语音服务和协议数据,而不是已认证的合成或可听的外部播放;稍后失败的排队媒体发送仍不在干净轮次最终化修复范围内。
Voice Call 轮次与历史记录
Voice Call 现在会在呼叫者再次开始说话时丢弃过时的自动回复,旧的通话流也不再会干扰当前回复。迟到的提供商更新会保留在原始通话上,连同其转录、时长和代理;首次保存失败不再拨号或占用唯一的通话槽位,因此恢复存储访问权限就足以重试。
来源和完整变更列表
Bug 修复
范围与验证
已发出的运营商播放以及后续拨号后存储故障仍不在这些修复范围内。所覆盖的故障路径使用的是随附的模拟运营商和合成运营商操作,而不是经过身份验证的电话呼叫或可听播放。
</details>
图像、音频、视频和文本附件
在 Control UI 对话中已经可见的图像现在会在强制刷新期间保持原位,而不会在历史重新加载时闪烁消失并导致线程偏移,而已删除或无法访问的图片仍会消失。空的本地文本文件会显示没有可提取的文本,而不会隐藏后续附件说明,带有引号或转义字符集标签的文本文件会解码为其预期文本,而不是替换字符。
受影响的 AVI 视频以及 ASF 或 WMA 音频也会返回到现有的播放转换路径,而不是回退为不支持。
来源与完整变更列表
错误修复
- 恢复 AVI 文件名和现有播放转换 #133329
- 在字节检测后保留 Matroska 文件名 #133383 — 感谢 @ly85206559
- 恢复现有 ASF 和 WMA 音频转换 #133386 — 感谢 @ly85206559
- 防止空文本附件隐藏后续附件说明 #133424
- 正确解码带引号和转义的文本附件字符集 #133610
- 遵循为 Slack 下载配置的图像尺寸 #134242 — 感谢 @marmar9615-cloud
- 在强制刷新期间保持对话图像可见 #134310
文档
- 澄清图像、音乐和视频生成中配置的后备选择 #134574
范围与验证
AVI 以及 ASF 或 WMA 处理恢复了现有的有界转换路径,并未新接纳所有格式或开放默认允许列表。Matroska 更改仅保留检测到的文件名。强制刷新覆盖范围仅限于使用合成媒体的 Chromium,Slack 下载覆盖范围并未建立经过身份验证的 Slack 往返。
纯文本消息格式
纯文本回复现在会在周围格式包含隐藏的类似代码文本时,将可见代码保留在正确位置,并且段落或章节格式会保留其预期换行,而不是将相邻文本连在一起。这使得受影响的默认 Telegram 以及直接文本或媒体回复更易读,同时不改变其富消息路径。
来源与完整变更列表
错误修复
- 在 HTML 转换为纯文本时保持可见代码位置不变 #125184 — 感谢 @wanyongstar
- 在 Unicode 边界处保持长 IMAP 邮件提示有效 #132170 — 感谢 @harjothkhara
- 在 Unicode 边界处保持有界运行时消息有效 #132366 — 感谢 @ly85206559
- 在纯文本出站消息中保留段落边界 #132998 — 感谢 @pengzh1 和 @yifanxiong272
- 在 Node 26 上的模型 token 清理期间保持星界 Unicode 字母独立 #134357
- 在终端内联代码中保留有意保留的尾部空格 #134451
范围与验证
富 Telegram 渲染和带归属的换行处理仍不在共享纯文本修复范围内。IMAP、有界运行时、Node 26 和终端内联代码条目是狭窄的文本边界修复,并未在所有渠道中建立通用格式行为。
达到明确结尾的回复
当一轮对话已经完成了其工具工作时,OpenClaw 现在会再次尝试生成最终答案;如果模型仍然没有提供可用内容,则保留一个明确的回退,而不会重新运行已完成的操作。在生成答案前失败的已接受渠道轮次也会以一个紧凑的错误结束,而不是进度标记后跟着沉默。
在 Discord 和 Slack 中,长轮次也更平静,具有一个稳定的确认、有用的里程碑以及提示批准或失败,而不是每个工具操作的不断增长的列表。
来源与完整变更列表
改进
- 使 Discord 和 Slack 进度更新更安静 #133516 — 感谢 @steipete
错误修复
- 在工具工作完成后始终返回最终回复 #133520 — 感谢 @fuller-stack-dev
- 识别交付到父会话的可见子代理答案 #133543
- 在已接受的渠道轮次失败后返回一个可见错误 #133979
范围说明
- 已完成的操作不会被重新运行,取消或有意保持静默的助手行为保持不变。
- 内部和嵌套父会话答案可以从其可见转录中确定,而外部目标仍需要交付证据。
- 最终 Telegram 提供商交付以及 Discord 和 Slack 展示未在经过身份验证的实时客户端中执行。
在正确的聊天中回复与审批
iMessage 直接回复以及投票等操作现在会在服务设置未设置时保留在发起请求的对话中,而已脱敏的显示值不再像真实目标一样被重试。在多机器人 Discord 房间中,可选的其他提及过滤器也会让 OpenClaw 不介入针对另一个机器人的回复,除非有人明确提及它。
Telegram 会在回复上下文中保留富按钮标签,并在配置重载后保持其模型选择器可用;同时,较长的 WhatsApp 回复在拆分消息中会保留其格式和引用上下文。Slack Enterprise Grid 插件审批现在会从直接消息到审批点击始终保留在目标工作区中。
来源与完整变更列表
Bug 修复
- 避免 Discord 机器人介入针对另一个机器人的回复 #130327 — 感谢 @PollyBot13 和 @obviyus
- 在配置重载后恢复 Telegram 模型浏览 #133221 — 感谢 @chelsealong、@vincentkoc 和 @r3n3x
- 在回复上下文中保留 Telegram 富按钮标签 #133307 — 感谢 @obviyus
- 在拆分的 WhatsApp 回复中保留格式和回复上下文 #133407
- 将 iMessage 回复和无目标操作保留在发起请求的对话中 #133499 — 感谢 @omarshahine
- 在精确边界处使 iMessage 投票回显抑制失效 #133996 — 感谢 @qingminglong
- 将 Slack Enterprise 插件审批保留在目标工作区中 #134251 — 感谢 @obviyus 和 @marmar9615-cloud
范围说明
- Discord 的其他提及过滤器为可选启用,如果 Discord 无法识别被回复的作者,则保持宽松。
- Telegram 富消息仍为可选启用,WhatsApp 媒体、语音字幕、重试、账户限制和截止时间行为保持不变。
- iMessage 路由已被接受用于协调的 beta 验证,无需在修复后执行已安装的发送;Slack 边界已在未进行实时双工作区审批点击的情况下完成验证。
LINE 群组、房间与回复
LINE 现在会在另一个已连接服务控制聊天时保持静默,加入群组或房间的机器人也只会响应其被允许服务的位置。共享群组规则同样会应用到命名群组和房间,除非该对话有自己的设置。
对话本身会携带更多用户发送的内容和运营者配置的内容。内联表情不再折叠为裸括号,多部分回复会遵循所选代理的节奏,已配置的用户、群组和房间在选择消息发送位置时可用。
来源与完整变更列表
Bug 修复
- 在代理上下文中保留可读的 LINE 内联表情 #132083 — 感谢 @edenfunf
- 让 LINE 机器人在其可能不被允许服务的房间中保持静默 #132628 — 感谢 @edenfunf
- 仅在支持的位置提供 LINE 卡片命令 #132895 — 感谢 @edenfunf
- 将 LINE 通配符默认值应用到命名群组和房间 #132918 — 感谢 @edenfunf
- 在 LINE 块回复中遵循路由代理的人工延迟 #133443 — 感谢 @edenfunf
- 在 LINE 待机事件开始竞争工作之前忽略它们 #133577 — 感谢 @edenfunf
- 在目录中列出已配置的 LINE 用户、群组和房间 #133599 — 感谢 @edenfunf
- 在 LINE 群组中遵循已禁用的仅引用激活 #133619 — 感谢 @edenfunf
- 在直接 LINE 聊天中为 Gateway 驱动的回复显示加载反馈 #133679 — 感谢 @edenfunf
文档
- 更正 LINE 群组与房间的加载动画指南 #132151 — 感谢 @edenfunf
范围说明
- 升级后,请检查通配符
enabled和allowFrom限制,因为它们可能开始应用于之前未继承它们的命名群组和房间。 - 目录结果来自 OpenClaw 的配置,而不是 LINE 的实时联系人列表或配对审批。
- 回复节奏修复仅适用于 LINE,加载反馈仍仅限于一对一聊天。
可独立恢复的频道账户
一个不可用或被禁用的频道账户不再需要隐藏其他所有频道的健康与状态,恢复过程现在会说明账户启动是被移交、保持忙碌还是被跳过。当重复的启动失败使 OpenClaw 进入安全模式时,操作员可以手动重启已配置的账户,而无需先运行未记录的修复步骤。
这种分离会贯穿频道其余的工作。Matrix 可以在账户停止或重启时完成房间活动,Doctor 会保留受支持的 QQBot 多账户布局,SMS 工作会在其凭据消失或被替换时停止。来自已安装频道插件的消息和操作也会保留在操作员选择的插件中。
来源和完整变更列表
**Bug 修复** - 在通道专属日志中包含嵌套通道诊断 [#133601](https://github.com/openclaw/openclaw/pull/133601) - 在保存的同步历史返回后保持 Matrix 验证已结算 [#133616](https://github.com/openclaw/openclaw/pull/133616) - 在 Doctor 修复期间保留有效的 QQBot 多账户配置 [#133948](https://github.com/openclaw/openclaw/pull/133948) — 感谢 @obviyus 和 @yubingjiaocn - 解释被跳过、忙碌和已交接的通道恢复启动 [#133973](https://github.com/openclaw/openclaw/pull/133973) — 感谢 @steipete - 在退役账户客户端之前排空 Matrix 房间工作 [#134033](https://github.com/openclaw/openclaw/pull/134033) — 感谢 @lsr911、@obviyus、@chelsealong、@ZengWen-DT 和 @SebTardif - 将不可用的通道账户与 Gateway 诊断隔离 [#134044](https://github.com/openclaw/openclaw/pull/134044) - 当账户凭据变得不可用时停止 SMS 工作 [#134145](https://github.com/openclaw/openclaw/pull/134145) — 感谢 @shakkernerd - 在崩溃循环安全模式期间恢复手动通道恢复 [#134165](https://github.com/openclaw/openclaw/pull/134165) — 感谢 @shakkernerd - 保持通道切换交接在已验证安装上 [#134397](https://github.com/openclaw/openclaw/pull/134397) - 在凭据解析之前跳过已禁用的通道账户 [#134418](https://github.com/openclaw/openclaw/pull/134418) - 保持通道发送和操作在选定的插件上 [#134564](https://github.com/openclaw/openclaw/pull/134564) — 感谢 @steipete **文档** - 记录账户范围的通道恢复和 WhatsApp 自聊天行为 [#128151](https://github.com/openclaw/openclaw/pull/128151) — 感谢 @LiuwqGit 和 @markswitch83 **范围说明** - 安全模式仍会抑制自动通道启动,并且启用或未知账户仍需要有效凭据。 - 选定插件和 Twilio 路径尚未通过外部提供商交付得到证明。 - 通道切换来源仅涵盖此处到已验证安装的交接,更广泛的更新和回滚行为留给其所属发布部分。内存¶
内存和大型保留历史现在避免了更多不必要的工作,同时不改变需要这些信息的路径可获取的信息。Memory Wiki 在更改页面之前拒绝无效操作,本地扫描停止导入其自身 vault 内容的生成副本,并且若干长会话路径在准备上下文或检查历史时保留更少的临时数据。
内存和大型会话历史
Memory Wiki 现在在更改或同步页面之前拒绝未知操作,本地扫描再次停止导入其自身 vault 页面的生成副本。已取消的 Memory 请求返回原始取消错误,而可选的基于数据库的内存插件以更少的内存启动,并保持相同的三个工具。
长原生 Codex 对话和分离的 Skill Workshop 审查也会准备它们所需的上下文,而不会加载模型永远不会看到的那么多历史。恢复、列出、清理和检查大型会话存储时,会减少不必要的工作,同时保持完整历史对需要它的路径可用。
来源和完整变更列表
LanceDB 结果来自贡献者在单个主机上提供的测量,而长历史减少来自特定测试夹具和工作负载。它们并未确立通用的稳态 Gateway 内存节省、浏览器内存节省、更广泛 CPU 调查的解决,或对所有长会话故障的修复。全保真重放、导出和诊断读取器保持不变。
改进
- 减少可选 LanceDB 内存插件的启动内存 #132830 由 @jason-allen-oneal
Bug 修复
- 在同步或更改页面之前拒绝无效的 Memory Wiki 操作 #123448 由 @wanyongstar
- 停止 Memory Wiki 不安全本地扫描重新导入生成的 vault 页面 #125160 由 @rajmp999、@obviyus 和 @YouBeerMe
- 减少长原生 Codex 和 Skill Workshop 会话中可避免的上下文准备内存增长 #133753 由 @steipete
- 释放被驱逐的已保存聊天负载,并避免为时间戳检查读取完整历史 #133965 由 @steipete
- 在保留精确总计的同时,为健康检查和状态检查限制会话负载读取 #134488 由 @steipete 和 @elikampf
- 减少会话查找、清理和长转录检查期间的临时 Gateway 内存 #134554 由 @steipete
- 保留待处理 Memory 响应读取和上传的原始取消错误 #134562 由 @steipete
技能¶
在 OpenClaw 启动后添加的技能更容易在下一轮被拾取,包括新的项目和工作区技能目录,这些目录不再需要重启 Gateway。技能元数据仍然严格但更易读,并且格式错误的 Skill Workshop 提案可以在不信任或应用它们的情况下被拒绝或隔离。
创建和加载技能
在 OpenClaw 启动后添加的技能更容易带入下一轮。新的项目或工作区 .agents/skills 目录可以在不重启 Gateway 的情况下被检测到,Windows 路径大小写不再改变技能所属的来源,并且已批准的 description、read_when 和 summary 字段中富含冒号的纯文本仍保持可读,而不会放松结构化元数据。
Skill Workshop 还可以在不信任其草稿的情况下,拒绝或隔离格式错误的提案,而会修改、评估或应用该内容的操作仍然会失败关闭。当提案缺失、被篡改、过大或链接到不安全位置时,这使得处置成为可能,而不会将恢复路径变成使用它的许可。
<details class="release-source-toggle">
<summary>来源与完整变更列表</summary>
**改进**
- 在后续回合中无需重启即可检测到新的项目和 workspace 技能目录([#134136](https://github.com/openclaw/openclaw/pull/134136))。感谢 @shakkernerd。
**错误修复**
- 在保留严格结构化元数据的同时,使包含大量冒号的已批准技能元数据保持可读([#122884](https://github.com/openclaw/openclaw/pull/122884))。感谢 @xydt-tanshanshan 和 @obviyus。
- 防止 Windows 路径大小写差异改变提示、技能和会话资源的来源范围([#134052](https://github.com/openclaw/openclaw/pull/134052))。感谢 @vincentkoc。
**安全与信任边界**
- 拒绝或隔离格式错误的 Skill Workshop 提案,同时保持类似应用的操作失败关闭([#124488](https://github.com/openclaw/openclaw/pull/124488))。感谢 @woodym-dotcom 和 @obviyus。
</details>
原生应用¶
Linux 用户现在可以在 x86-64 系统上使用桌面伴侣应用,提供 .deb 或 AppImage 格式,可连接到本地或远程 Gateway,并将 Quick Chat 放入系统托盘,或通过 X11 键盘快捷键访问。原生 Codex 会话现在也可以以更少的无关发现操作来继续、打开、查看或归档,并且兼容的对话在 app-server 重启后更可靠地保留。
可继续的原生 Codex 会话
在大型主目录中,已知的本地 Codex 会话现在可以继续、在终端中打开、查看或归档,而无需先扫描无关的 rollout 历史,并且兼容的对话可以在 app server 重启后返回同一线程。新的 Codex 线程还会携带仅保存在已保存的压缩或分支摘要中的事实,而 token 计数和有效上下文窗口会在 /new 后恢复,而不是看起来像全新的零。
来源与完整变更列表
限制与兼容性说明
- 初始完整目录发现仍然可能较慢,且远程、无路径和原生 Swift 验证保持不变。
- 现有上下文限制仍然适用,且已从现有原生线程中省略的上下文无法重建。
- 关联的 OAuth 刷新 TypeError 仍未解决;重启证明使用了合成认证和回环服务。
错误修复
模型与提供商¶
模型和语音提供商设置现在与实际拥有请求的提供商、登录、语音和传输保持更紧密的对齐。目录故障会保留最后的健康信息,固定模型使用其预期的重试预算,配置的私有语音端点保持限定在其来源范围内,并且当未选择语言时,自动语言检测不再插入英语指令。
语音提供商与转录
语音和转录设置现在能更一致地作用于其目标服务。OpenRouter 和 DeepInfra 语音会遵循已配置的语音,Voice Call 和 Talk 可以查找符合条件的已配置提供商,Talk 客户端可以使用已通告的转录模型,TTS 角色可以使用通过 SecretRefs 存储的凭据,而无需借用其他提供商的密钥。
对于多语言语音笔记,将语言保持未设置现在会使用自动语言检测,而不会在转录中插入英语指令。xAI 转录可以将静音接受为空结果,并继续到已配置的备用方案,而私有或自托管的 xAI 设置可以使用其配置的地址进行语音发现和缓冲语音。
来源与完整变更列表
错误修复
- 遵循 OpenRouter 和 DeepInfra 语音的规范语音 #117527
- 清晰报告格式错误的 MiniMax 语音响应 #123245 — 感谢 @coaiMax
- 发现符合条件的已配置语音和转录提供商 #133507 — 感谢 @itkdm
- 遵循已通告的 Talk 转录模型选择 #133613 — 感谢 @lsr911
- 在音频语言检测期间避免隐式英语提示 #133674 — 感谢 @synthalorian 和 @aleps001
- 将私有 xAI TTS 访问限定到配置的来源 #134214 — 感谢 @marmar9615-cloud
- 接受静音的 xAI 转录,以便已配置的备用方案可以继续 #134377 — 感谢 @lordstryfe
- 解析 TTS 角色的 SecretRef 凭据 #89636 — 感谢 @SebTardif 和 @pablonunoutande-source
范围与验证
此处的私有 xAI 端点支持涵盖发现与缓冲式合成,而非原生 WebSocket 流式传输。提供商可用性、识别质量、权限以及广泛的已认证操作,并未由这些修复的本地和合成覆盖所确立。
</details>
模型、提供商故障与回退
模型列表及其发起的请求现在更常就哪个提供商和登录身份负责该工作达成一致。在完整目录中发现的已认证 Claude CLI 模型可以在第一轮之前被选择;当存储了无关的 Anthropic 凭据时,原生 Claude 登录仍保持负责;简单补全会保留准备阶段选择的提供商传输,而不是在分发时借用其他连接。
当提供商失败时,OpenClaw 会保留更多恢复所需的有用上下文。聊天、终端 UI 和 Gateway 历史可以使用实际处理该运行的提供商的指引;格式错误的目录响应不再替换最后健康的 OpenRouter 能力数据;固定模型会使用其完整的同模型重试和配置文件轮换预算,而不会悄悄切换模型。Chutes 和 Cerebras 目录估算可以刷新,而不会覆盖操作员设置的费率,但目录条目和估算价格并不能证明账户权限、付费推理或提供商发票。
来源与完整变更列表
改进
- 从已准备的模型事实开始精确模型工作,而无需等待提供商范围的发现(#123432)。感谢 @xialonglee 和 @obviyus。
- 刷新了 Chutes 和 Cerebras 目录估算,而不会覆盖操作员设置的费率(#134311)。感谢 @steipete。
- 使已认证的 Claude CLI 目录模型可以在第一轮之前被选择(#134463)。感谢 @fuller-stack-dev 和 @goslingmanagment。
缺陷修复
- 迁移了符合条件的已退役 xAI 图像模型条目,而未触及无关的媒体设置(#126495)。感谢 @Schimuneck、@obviyus 和 @tiniecookie。
- 区分了空的 Gemini 搜索答案与格式错误的响应,同时保留自动回退(#130583)。感谢 @Darren2030 和 @jailbirt。
- 为 Codex 桥接用户提供了针对不可用的已选认证配置文件的准确恢复指引(#133355)。感谢 @vincentkoc 和 @Jeehut。
- 拒绝了格式错误的 OpenRouter 目录响应,而未替换最后健康的能力缓存(#133399)。感谢 @vincentkoc。
- 区分了有效的空 xAI 搜索和代码执行结果与格式错误的 JSON(#133667)
- 防止关闭提示框时关闭其下方的 Control UI 控件,并保留特定提供商指引(#133772)。感谢 @steipete。
- 在报告故障和决定回退时,复用了已准备或已加载的提供商钩子(#133970)
- 在显示故障指引时,使用了负责该运行的提供商(#134029)
- 防止健康的原生 Claude 登录路由被无关的 Anthropic 凭据取代(#134030)。感谢 @obviyus 和 @rayseling。
- 在聊天故障指引中保留了安全的提供商和模型事实,而未暴露原始响应(#134103)。感谢 @obviyus。
- 对固定模型使用了完整的同模型重试预算,而未更改其回退策略(#134111)。感谢 @obviyus。
- 在简单补全分发过程中保留了已准备的提供商传输和认证(#134521)
文档
- 说明了符合条件的“模型未找到”回退行为以及用于诊断它的字段(#130663)。感谢 @MonkeyLeeT 和 @geekforlife。
自动化与调度¶
更长时间运行的工作更容易在不丢失其归属的情况下进行引导。受支持的活跃任务可以接受权限变更,人工审批和更正会优先于代理间流量,Stop 会捕获更多所选的子工作,而计划任务会报告实际确定的结果,而不是仅将分发视为成功。
更改、引导和停止活跃工作
受支持的原生和 Codex 工作现在可以在活跃时从 Control UI 接受权限变更。界面会显示该变更正在应用,关闭旧的审批,并保持对话位置不变,而不是让你手动停止并继续任务。
在繁忙会话中,人工审批和更正也会优先于代理间流量,而 Stop 会捕获你所选任务下方的已选运行中和等待中的辅助代理工作。无法交付其结果的已完成辅助工作会留下一个可恢复的后续提醒,会话之间发送的消息会说明它们是被排队还是已添加到正在进行的工作中。
来源与完整变更列表
权限变更不会重放原始请求,也不会撤销已经完成的效果。活跃的 CLI 支持运行和整个代理工作器运行仍需要先停止。Swarm 取消确认不保证立即清理,排队或引导的准入也不能证明目标任务已完成。
Bug 修复
- 将受支持的权限更改应用于活动的原生和 Codex 工作 [#132407](https://github.com/openclaw/openclaw/pull/132407) 由 @steipete 和 @jalehman 贡献
- 在繁忙会话中,让人类消息优先于代理间流量 [#132738](https://github.com/openclaw/openclaw/pull/132738) 由 @sylvesterkaczmarek、@obviyus 和 @ewrurwteurwU 贡献
- 使用其确切父级停止选定的运行中和排队中的 Swarm 收集器 [#133076](https://github.com/openclaw/openclaw/pull/133076) 由 @steipete 贡献
- 当分离的子代理完成投递耗尽时,持久化一条可恢复的告警 [#133192](https://github.com/openclaw/openclaw/pull/133192) 由 @shojikumaru、@vincentkoc 和 @potterdigital 贡献
- 区分排队会话发送、活动会话引导以及后续公告状态 [#133926](https://github.com/openclaw/openclaw/pull/133926) 由 @VACInc 和 @RichChen01 贡献
**文档**
- 澄清 Swarm 进度在 Control UI 和原生客户端中如何显示和清除 [#133916](https://github.com/openclaw/openclaw/pull/133916) 由 @steipete 贡献
</details>
让工作保持在正确的代理中
当多个代理共享同一个 OpenClaw 安装时,回复、命令、任务、插件、媒体和已连接对话现在会更一致地保留在其所属代理中。相同的归属关系会随工作进入缩短的对话、分离的审查和编码工具,因此一个代理不太可能使用另一个代理的上下文或权限来回答。
无人值守的工作现在可以在无需额外配置的情况下,查找并整理由同一代理拥有的其他会话;当不同代理恢复、控制、取消或清理同名工作时,已连接的编码会话会将同名工作保持分离。
来源和完整变更列表
非沙箱会话工具现在默认在同一代理范围内可见。在共享代理上,这可能会暴露其他用户的对话,因此需要隔离的运维人员应选择 tree 或 self,或使用单独的代理。当不同运行共享一个无范围策略键时,策略归属不会增加执行级隔离。较旧的裸 ACPX 历史记录要求在运行 openclaw doctor --fix 之前停止 Gateway,且模糊记录保持不动。
改进
- 默认允许非沙箱自动化跨同一代理拥有的会话工作 #133469 由 @steipete 贡献
Bug 修复
计划任务及其结果
自动化结果现在与实际完成的工作更紧密地对应。等待计划运行的脚本会在命令退出前收到完整的机器可读结果;唤醒代理的作业会记录工作的结果,而不是将唤醒本身视为成功;屏幕阅读器和工具提示会标出每行操作背后的计划作业。
来源和完整变更列表
普通系统事件 cron 仍仅用于分发。等待已确定结果适用于心跳支持的工作,并且不会改变其他地方的调度、运行历史或退出码语义。
Bug 修复
浏览器和计算机使用¶
在受支持的 macOS 和 Linux 构建中,即使 Gateway 未运行,浏览器控制也可以通过配对的本地中继保持可用,同时受管页面会更早暴露有用的控件。云和远程工作可以重用已准备好的项目,更明确地停止和清理,在重启后恢复编辑,并更清晰地报告失败的沙箱或 worker 阶段。
代理请求、文件编辑和搜索
当代理编辑或搜索工作区时,磁盘上实际存在的内容会有更多部分在传输过程中保留下来。补丁会保留未触及的内容和换行符,仅格式化的编辑不再被静默丢弃,搜索结果会保留之前看起来乱码的文件以及异常文件名的可读上下文,并且当该文件或目录存在时,以 @ 开头的本地名称保持字面意义。
普通回复也会尊重每个代理设置显示的工具进度量,并且普通请求不太可能被引导到关于当前模型的不相关回答。
来源和完整变更列表
字面替换行的缩进仍不在补丁修复范围内,grep 工作也不声称对超大上下文请求提供通用保护。当不存在字面本地目标时,@ 简写仍然适用,而远程和沙箱后端保留其先前的路径行为。原始 shell 命令文本仍是一个独立的显示控件,且针对 MiniMax 的聚焦证据并不能消除提供商差异。
Bug 修复
- 在代理修补期间保留未修改的字节、换行符和末尾换行状态 [#124418](https://github.com/openclaw/openclaw/pull/124418),由 @synthalorian、@obviyus 和 @yetval 提交
- 复用未更改的代理工具描述摘要,同时保持 Code Mode 描述为最新 [#129145](https://github.com/openclaw/openclaw/pull/129145),由 @quangtran88 提交
- 在代理 grep 结果中保留已解码的 UTF-16 上下文和准确路径 [#131621](https://github.com/openclaw/openclaw/pull/131621),由 @xialonglee 提交
- 应用并预览仅格式编辑,同时保留真正的无操作检测 [#133320](https://github.com/openclaw/openclaw/pull/133320),由 @steipete 提交
- 从代理工具契约中移除被忽略的权限和归档选项 [#133336](https://github.com/openclaw/openclaw/pull/133336),由 @steipete 提交
- 在代理运行开始关闭后拒绝捆绑的语言服务器请求 [#133340](https://github.com/openclaw/openclaw/pull/133340),由 @qingminglong 提交
- 保留以字节形式报告的文件名中的 grep 匹配 [#133358](https://github.com/openclaw/openclaw/pull/133358),由 @ly85206559 提交
- 在正常回复期间遵循每个代理的工具进度详细设置 [#133788](https://github.com/openclaw/openclaw/pull/133788),由 @marmar9615-cloud 提交
- 保留以 `@` 开头的字面本地会话路径 [#133815](https://github.com/openclaw/openclaw/pull/133815),由 @qingminglong 提交
- 防止模型身份引导使普通代理请求偏离 [#134504](https://github.com/openclaw/openclaw/pull/134504),由 @steipete 提交
</details>
Chrome 扩展中继和页面控制
在受支持的 macOS 和 Linux 扩展构建中,已配对的 Chrome 扩展即使 Gateway 未运行也能唤醒经过身份验证的本地中继,并且 Gateway 可以稍后加入该中继,而不会从其他经过身份验证的客户端那里接管浏览器会话。对于 Chrome Web Store v2.2.0,这一点尚未得到确认;Windows 仍需要手动设置中继,并且通过浏览器 CLI 执行的命令仍需要一个正在运行的 Gateway。
连接后,受管理的 Chromium 可以在不等待整个请求的情况下返回可操作的页面控件,并且浏览器自动化在页面运行期间会保留更多嵌套工作节点和框架处于附加状态。
来源和完整变更列表
改进
Bug 修复
- 保留嵌套浏览器工作节点和 iframe 会话 #133571,由 @steipete 提交
- 从符合条件的受管理 Chromium 角色快照返回可操作控件 #133614,由 @vincentkoc 提交,问题报告来自 @josephbergvinson
- 按连接来源划分 Browser Relay 登录容量 #134241,由 @mmaps 提交
证据局限
受管理的快照快捷路径仅适用于符合条件的主框架请求,缺少上下文的浏览器情况是通过故障注入复现的,并且共享同一来源的异常大的合法连接突发可能仍需要错开处理。
复用已准备的云项目
云会话可以一次性准备 Git 项目和运行时,然后让后续会话复用经过验证的部分,同时仍能接收当前编辑、附件和新的注册。第一个会话仍然执行准备和捕获工作,因此改进在于减少后续会话的重复设置,而不是承诺的启动时间。
Crabbox 项目快照现在会等待已准备的镜像稳定下来,然后工作节点才注册,从而将失败或不确定的捕获保留在恢复流程中,而不是让工作继续针对可能尚未准备好的镜像进行。
来源和完整变更列表
改进
- 为后续会话复用已准备的云项目 #133447,由 @steipete 提交
- 减少首个云运行时归档的冗余准备 #133725,由 @steipete 提交
- 缩小云引导归档和峰值内存使用 #133822,由 @steipete 提交
- 在已准备工作区激活期间复用经过验证的哈希 #134026,由 @steipete 提交
- 从热项目快照复用经过验证的工作节点归档 #134326,由 @steipete 提交
Bug 修复
证据局限
云计时证据要么使用合成项目,要么将本地准备与提供商工作结合起来,因此它并未确立特定的端到端启动减少。协调器保留的 checkpoint_pending 响应仍依赖于一个单独的 Crabbox CLI 修复,而该修复在此处尚未被确认为已发布。
停止云任务
Stop 现在会更早关闭排队中和新的工作,中断受支持的预配,等待其拥有的资源完成清理后再报告成功,并且可以在 Gateway 重启后恢复已接受的清理。
从未到达 worker 的初始消息会保持标记为未发送,以便有意重试,而重复的 Stop 请求会共享同一清理过程,而不是启动相互竞争的拆除工作。
<details class="release-source-toggle">
<summary>来源与完整变更列表</summary>
**Bug 修复**
- 停止排队的云任务,并在重启后保留已取消的回合 [#133241](https://github.com/openclaw/openclaw/pull/133241) 由 [@steipete](https://github.com/steipete)
- 释放空闲云桌面,并在复用前等待清理 [#133451](https://github.com/openclaw/openclaw/pull/133451) 由 [@steipete](https://github.com/steipete)
- 在 Stop 期间等待待处理的 SSH 工作区清理 [#133472](https://github.com/openclaw/openclaw/pull/133472) 由 [@steipete](https://github.com/steipete)
- 在无关的提供商检查完成前停止云任务 [#133476](https://github.com/openclaw/openclaw/pull/133476) 由 [@steipete](https://github.com/steipete)
- 当 worker 停止时取消受支持的云资源预配 [#133735](https://github.com/openclaw/openclaw/pull/133735) 由 [@steipete](https://github.com/steipete)
- 隔离已取消的 worker-bundle 安装和发布 [#133976](https://github.com/openclaw/openclaw/pull/133976) 由 [@steipete](https://github.com/steipete)
- 在保留窗口后使未使用的 standard-catalog Crabbox 快照过期 [#134088](https://github.com/openclaw/openclaw/pull/134088) 由 [@steipete](https://github.com/steipete)
**证据限制**
提供商拆除仍然是异步的,因此无法及时中断的提供商会保持被占用,直到其回调结束,最终释放可能需要时间。Stop 不保证每个提供商或机器都会立即消失。
</details>
重启后恢复云会话
云会话可以在 Gateway 重启后恢复合法的工作区编辑,过期结果现在会收敛为可恢复的结果或明确的失败,而不是让会话一直卡在等待完成状态。归档、删除和恢复操作也可以完成,而不会被之前的 worker 操作卡住。
已接受的浏览器后续操作会在重启或重新加载后保留,投递回执可以确认 Gateway 已消费过的输入。投递状态仍不确定的输入会被保留,等待显式重发,而不是自动重放;同时,云执行错误会保留原始失败可见,并在远程编辑可能未返回时单独报告工作区恢复问题。
来源与完整变更列表
Bug 修复
- 在 cloud-worker 会话操作中遵循 Gateway 会话策略 #131669 由 @anyech 和 @sallyom
- 在过期 cloud-worker 拆除期间收敛可恢复的结果 #132128 由 @jalehman
- 跨 Gateway 重启保留已接受的浏览器后续操作 #133457 由 @steipete
- 防止云会话生命周期操作卡在 worker 操作之后 #133551 由 @steipete
- 在 Gateway 重启和父级权限被撤销后恢复云会话 #133728 并包含来自 @shakkernerd 的贡献
- 保留云执行失败并报告额外的恢复失败 #134200 并包含来自 @Takhoffman 的贡献
- 将失败 worker 的恢复范围限定到请求的 cloud worker #134448 由 @steipete
证据限制
多个恢复路径具有聚焦的、回环的或合成提供商覆盖,而不是新的实时云提供商证明。证据支持上述会话托管和恢复行为,而非广泛的提供商可靠性。
远程沙箱文件和 worker 错误
运行在受支持的 Python 3.9 环境中的远程沙箱现在会保留完整的文件和附件字节,同时来自 Codex 沙箱请求的受保护 HTTP 308 重定向会保留其请求体和现有的目标检查。
当可选的容器托管或 Crabbox 引导失败时,操作员还会收到一个脱敏错误,用于标识失败的阶段,而不是一个看起来已就绪的 worker 或通用的中止消息。
来源与完整变更列表
Bug 修复
- 在 Python 3.9 上保留远程沙箱文件和受保护的 HTTP 308 重定向 #133580 由 @steipete
- 从原生 macOS worker 报告脱敏的容器托管启动失败 #133655 由 @steipete
- 标识 Crabbox worker 引导失败的阶段 #133663 由 @steipete
证据限制
这些修复的范围仅限于受支持的 Python 3.9 远程沙箱以及可选的 macOS 或 Crabbox 托管路径,而不是扩大受支持的沙箱或提供商矩阵。容器托管诊断通过受控失败进行了验证,而不是通过原生应用和实时 container-daemon 运行。
插件与集成¶
插件现在在常见的包布局中加载和更新更加可靠,同时保留显式固定版本和能力审查。Doctor 和注册表提供更实用的修复指导,无需猜测,并且 Beam 对话记录共享使对话顺序、发布者身份和接收方变更更清晰。
安装和更新插件
打包的 TypeScript 插件现在在常见构建布局中更一致地选择可运行的编译入口,并且文件 URL 入口点可以通过原生加载器加载和刷新,包括之前失败的 Windows 路径。精确 beta 更新会保持符合条件的官方插件与实际安装的 beta 核心对齐,同时显式选择器和第三方固定版本保持不变,缺失的匹配工件仍会显示为可见警告,而不是对齐的证明。
等待能力审查的受管更新会保留之前的插件并在重启前停止,而没有产生输出的 npm 失败现在会标识导致命令结束的超时、信号或退出。已发布的 Plugin SDK 导入和旧命令类别在升级过程中也保持兼容,而不会重新引入已退役的对接功能。
来源和完整变更列表
改进
- 在 Gateway 目录中规范化了旧版插件命令类别 (59512b4)
- 在升级过程中保留了已发布的 Plugin SDK 导入和旧版命令类别 (d405013)
- 允许在修复无关的主机配置时运行插件包编写命令 (#133304). 感谢 @ruel225。
- 在 Gateway 运行期间复用了已准备好的插件元数据,同时保留了环境感知刷新 (#133651)
- 为已配置加载路径的插件导入了声明的提供者和通道环境变量键 (#134437)
错误修复
- 在常见编译布局中加载了打包的 TypeScript 插件,并解释了缺失的运行时入口 (#117199). 感谢 @steipete。
- 在更新期间使符合条件的官方插件与精确的 beta 核心版本保持一致 (#124415). 感谢 @synthalorian 和 @chac4l。
- 在 Doctor 修复过时的运行时插件记录时保留了显式 npm 固定版本 (#128250). 感谢 @SunnyShu0925、@obviyus 和 @sblindt。
- 通过原生加载器加载文件 URL 插件入口点,包括缓存刷新行为 (#133337). 感谢 @sunlit-deng 和 @easyteacher。
- 解析了 MCP 结构化输出模式中的国际化、相对、转义和嵌套引用 (#133572). 感谢 @steipete。
- 报告了静默 npm 插件失败背后的超时、信号或退出 (#133845). 感谢 @aniruddhaadak80。
安全和信任边界
- 在插件能力同意未解决时停止了受管更新和 Gateway 重启 (#134183). 感谢 @obviyus 和 @BrunoCerberus。
文档
- 澄清了哪个插件提供者接口负责模型身份、传输、归一化和回退资格 (#133401)
插件诊断和信任
当插件修复拒绝猜测时,它会更有用。Doctor 和 registry CLI 现在会显示哪些持久化插件记录存在差异,在报告成功之前验证手动刷新,并且只建议一个确实存在的精确 npm 修复目标。在确认健康的已配置路径替换后,也可以移除经过验证的过时链接插件记录,而不会削弱卸载所有权检查。
两个信任边界仍然重要。迁移的兼容性允许列表保留了捆绑提供者和显式拒绝,但已落地的修复保留了关于混合资格和作用域环境传播的自动审查关注点。通过已配置路径选择的捆绑插件在已构建和未构建状态之间也保持其捆绑行为,但捆绑树下方被忽略的 dist 或 node_modules 后代可能仍会继承捆绑信任,因此此版本未将该嵌套路径边界确定为安全。
来源和完整变更列表
改进
- 使插件健康检查在人类模式和 JSON 模式下返回可靠的 shell 退出状态 (#133431). 感谢 @PollyBot13 和 @obviyus。
错误修复
- 将插件修复命令限制为注册表确认的精确目标 (#133617). 感谢 @vladimirkrdzic 和 @anaman。
- 报告插件注册表持久化差异,并在宣布恢复之前验证刷新 (#133963). 感谢 @obviyus 和 @yubingjiaocn。
- 在确认健康的已配置路径替换后,移除了经过验证的过时链接插件记录 (#133991). 感谢 @ZengWen-DT 和 @obviyus。
安全和信任边界
共享和读取 Beam 转录
共享的 Beam 转录现在会保持问题在答案之前,并显示发布该快照的已验证人员,而不是借用查看者的身份。
自动共享会保持对话可读,同时省略推理和工具细节、屏蔽已知凭据,并显示转录的哪些部分被省略。更改接收方会向新目标重新开始投递,不会携带未完成的更新,可读链接可以使用会话标题,而旧链接仍会打开同一转录。
来源和完整变更列表
改进
缺陷修复
- 在 Beam、Pi 和 OpenCode 目录中保留对话顺序 #133382
- 在共享 Beam 转录中保留已验证发布者 #133425
- 从自动 Beam 共享中省略 Claude 推理和工具内容 #133460
- 当 Beam 共享的接收方更改时干净地重启共享 #133533 — 感谢 @steipete
范围说明
- 发布者归属不会识别每条消息的作者,较早的匿名快照需要经过身份验证的重新上传才能获得归属。
- 自动屏蔽的范围比 Beam 的手动发布净化器更窄,较早的配对节点需要更新以支持混合 Claude 转录。
- 接收方更改行为已通过合成存储和授权验证,较新的链接行为并不能证明 Team 服务器已部署该行为。
安全与隐私¶
多个较低层级的防护措施现在会更早失败并暴露更少。过大的 MCP 响应和事件会在解析前被限制,常规诊断会排除 ClawDock 凭据,长密钥脱敏在其支持的大小范围内保持安全,可选图像组件会迁移到已修补的依赖版本,而不会使其成为强制项。
运行时和依赖防护措施
Gateway 集成现在会在解析前拒绝过大的 MCP HTTP 响应或单个 SSE 事件,而健康的长生命周期流在总量上仍可超过该限制。ClawDock 检查会将凭据值和前缀排除在常规诊断之外,脱敏可以处理已接受的长密钥而不会崩溃。
可选图像解码现在使用已修补的 Sharp 0.35.4 和 libheif 1.23.2 组件,而不会使 Sharp 成为强制项。独立的 @openclaw/memory-lancedb 安装仍可能通过其可选 Transformers 路径解析到较旧的 Sharp,因此不应将该依赖修复理解为全面覆盖。Bun 1.4 Gateway 连接也会使用已安装的 npm WebSocket 接收器。
来源和完整变更列表
Bun 原生包证明仅限于准备好的发布候选版本,带括号的 IPv6 路由是通过 URL 构造和合成往返验证的,而不是完整的已认证浏览器流程。
缺陷修复
- 保持插件托管表面可通过带括号的 IPv6 主机访问 #134050 — 感谢 @yangxiansheng
- 在 Bun 1.4 下为 Gateway 连接使用已安装的 npm WebSocket 接收器 #134282 — 感谢 @steipete
安全和依赖更新
维护者和内部变更¶
v2026.8.2 中另有 382 项变更主要影响构建、测试、记录和发布 OpenClaw 的人员,而不是日常产品体验。它们涵盖 CI 和测试维护、内部重构、发布和包验证、生成的元数据、文档维护以及其他幕后工作,因此它们不出现在上述发布说明中,但仍属于完整记录的一部分。
全部 382 项维护者和内部变更
这完成了对 v2026.8.2 中所有 794 个已分析 PR 和提交的统计。下方折叠列表包含 382 项仅面向维护者的变更,这些变更不属于面向用户的产品部分。
来源和完整变更列表
维护者和内部变更
- 插件和客户端开发者获得了用于外部验证选择的有界展示契约,但尚不存在完整的用户流程。 #113517 — 感谢 @Guardiola31337
- 生成的文档映射不再将较长嵌套代码围栏内的标题视为页面章节。 #130207 — 感谢 @qingminglong
- 维护者拥有一个保持行为不变的错误原因读取器,由未处理错误和重试路径共享。 #130280 — 感谢 @vincentkoc
- 有限源测试运行在每次调用时编译一个私有子进程生成,同时保留操作符运行时行为。 #132716 — 感谢 @steipete
- 插件钩子分派共享一个内部绑定器,不改变插件注册或运行时行为。 #133293 — 感谢 @steipete
- 受支持的多进程 Vitest 运行会保留并合并完整的报告证据,而不是覆盖除最终子报告之外的所有报告。 #133309 — 感谢 @steipete
- 历史密集型读取会复用已准备的事实并减少重复工作,同时保留结果。 #133316 — 感谢 @steipete
- 2026.8.1 发布工作流可以将所有者批准的 Telegram 豁免记录为已豁免,而不是已通过。 #133321 — 感谢 @steipete
- 目录过滤的 Vitest 运行会保留项目所有权,并在非隔离文件之间隔离共享状态。 #133322 — 感谢 @steipete
- Planner 测试会可靠地恢复作用域环境标志,而不改变 Planner 行为。 #133325 — 感谢 @steipete
- 文本命令处理程序现在具有一个权威的内部排序,且不改变命令行为。 #133332 — 感谢 @steipete
- Doctor 转录导入避免对已接受事件进行两次哈希,同时保留存储数据和重复语义。 #133350 — 感谢 @steipete
- 性能工作流测试会复用仓库并保留取消信号,而不改变产品行为。 #133356 — 感谢 @steipete
- 已完成的 Telegram 发布测试是建议性的,其真实结果仍然可见,非 Telegram 门禁仍然严格。 #133357 — 感谢 @steipete
- Prompt 和插件元数据准备会复用可用工作,而不改变 Prompt 字节或目录。 #133362 — 感谢 @steipete
- 插件注册生命周期策略更简单,同时保留相同的支持调用和兼容路径。 #133364 — 感谢 @steipete
- 插件发布会等待 Git 子进程树排空,然后再进行信任检查和包读回。 #133368 — 感谢 @steipete
- Testbox 会在租约或远程检出工作开始前拒绝具有误导性的无同步运行。 #133373 — 感谢 @steipete
- Crabbox 指南有一个可移植来源加上仓库特定设置,任务拥有的工作树不再需要额外确认。 #133375 — 感谢 @steipete
- 转录导入会以更少的数据库工作更新已初始化的会话窗口,同时保留存储数据语义。 #133378 — 感谢 @steipete
- 大型转录导入会减少水印数据库开销,同时保留历史、身份、搜索和迁移结果。 #133403 — 感谢 @steipete
- Control UI 发件箱保管和草稿持久化共享更简单的内部所有权,同时保留现有的离线、重新加载和多标签页行为。 #133409 — 感谢 @steipete
- 当重写后的贡献者历史可能暴露贡献者电子邮件地址时,维护者 squash 会失败关闭。 #133411 — 感谢 @vincentkoc
- 设置对受支持的产品工作流使用一个锁定的存储加载路径。 #133413 — 感谢 @obviyus
- 插件注册表快照测试复用一个规范夹具,而不改变生产行为。 #133420 — 感谢 @steipete
- 发布检查清单可以将已验证的受保护标签 npm 预检源带入发布命令生成,而无需切换到 main。 #133423 — 感谢 @steipete
- 完整发布验证会从文件写入大型完整证据清单,而不是超过操作系统参数限制。 #133426 — 感谢 @steipete
- Git 工作流夹具测试运行快得多,并暴露更好的失败文本,而不改变产品行为。 #133427 — 感谢 @steipete
- 发布工作流测试复用隔离的仓库快照以加快设置,而不改变工作流行为。 #133438 — 感谢 @steipete
-
Skill Workshop 操作复用同一个内部文本结果封装,且不改变可见或结构化结果。#133453 — 感谢 @steipete
- 大型 npm 发布可以打包所有编辑说明,同时将过大的贡献记录链接到精确标签,并逐字节恢复源变更日志。#133454 — 感谢 @steipete
- 诊断生命周期记录执行更少的重复扫描,同时保持行为不变。#133466 — 感谢 @steipete
- 扩展稳定版性能验证使用修复后的 Kova 评估器契约。#133467 — 感谢 @RomneyDa
- 核心发布可以独立于单独批准的 Android 发布完成。#133471 — 感谢 @steipete
- 聊天渲染和不确定发送恢复共享更少的重复内部路径,预期行为保持不变。#133474 — 感谢 @steipete
- 分组命令队列选择复用容量事实,并保持调度行为不变。#133491 — 感谢 @steipete
- 性能文档正确区分了因凭据不合格而被跳过的候选项、缺少密钥的失败以及并发源探测。#133492 — 感谢 @steipete
- 失败的 Control UI 构建保留其原始可操作错误,而不是用缺少资产输出掩盖它。#133494 — 感谢 @steipete
- 发布运维人员可以使用受保护的仅限 Docker 的恢复方式,针对已发布的常规稳定版发布。#133498 — 感谢 @steipete
- 失败的 Docker 自我升级验证保留已脱敏的阶段和 RPC 证据,而不掩盖原始失败。#133505 — 感谢 @steipete
- 扩展稳定版插件预发布检查在两个验证阶段中保留冻结分支上下文。#133506 — 感谢 @RomneyDa
- Control UI 聊天渲染具有更少的重叠内部实现,预期行为保持不变。#133508 — 感谢 @steipete
- Claw 更新回滚失败共享有序收集逻辑,且不改变回滚策略或报告。#133509 — 感谢 @steipete
- Agent 运行避免准备未消费的工具文本并解析未使用的技能路径,同时保持可见行为不变。#133512 — 感谢 @steipete
- 已加载插件注册表读取在聚焦提供者和只读工作流中避免急切加载器导入。#133518 — 感谢 @steipete
- 压缩记账更简单,同时写入者围栏、用量和上下文语义保持完整。#133521 — 感谢 @steipete
- 受信任发布检查选择由较旧冻结候选项提供的入口点和构建配置。#133523 — 感谢 @RomneyDa
- 安装程序冒烟验证从密封的冻结候选项归档中派生包标识和大小。#133524 — 感谢 @RomneyDa
- 发布验证检测较旧冻结目标是否提供 Agent Plugin Gateway E2E 脚本,除非明确允许缺失,否则失败关闭。#133525 — 感谢 @RomneyDa
- 共享工作区删除 E2E 夹具通过省略一个无关的较新心跳字段,保持与冻结目标兼容。#133526 — 感谢 @RomneyDa
- 终端辅助程序执行更少的重复控制扫描,同时保持清理和可见输出不变。#133527 — 感谢 @steipete
- 内存刷新测试预先接收模型能力,并在不更改运行时的情况下避免夹具停滞。#133532 — 感谢 @steipete
- Control UI 头像列表避免冗余的存在状态处理,同时保持可见呈现不变。#133548 — 感谢 @steipete
- 多项目 Vitest 缓存复用和新鲜度现在具有行为回归覆盖。#133554 — 感谢 @steipete
- 已添加历史 v2026.8.1 文档页面的草稿版本和导航,供编辑审阅。#133557 — 感谢 @hannesrudolph
- 四个成熟度策略夹具用例的清理速度大约快 70 秒,产品行为保持不变。#133566 — 感谢 @steipete
- Control UI 聊天渲染和生命周期所有权得到简化,没有预期的视觉或行为变化。#133567 — 感谢 @steipete
- Runner 和 Gateway 健康测试使用隔离的临时会话存储,而不是通过机器范围状态相互干扰。#133568 — 感谢 @steipete
- 模型归一化和插件元数据测试共享合并后的夹具,运行时行为保持不变。#133570 — 感谢 @steipete
- 发布验证等待恢复和清除的草稿状态,避免慢速运行器误报失败。#133575 — 感谢 @vincentkoc
- 静态提供者目录注册避免急切加载实时发现代码,同时保持提供者行为不变。#133579 — 感谢 @steipete
- 文档同步测试覆盖已存在的 v2026.8.1 路由,涵盖英文和本地化导航。#133581 — 感谢 @fuller-stack-dev
- 历史 v2026.8.1 页面新增一个已关闭的维护者清单,以完成其发布记录。#133585 — 感谢 @hannesrudolph
- 一个工作流健全性夹具清理合成进程的速度大约快十秒,同时保留失败和回退断言。#133588 — 感谢 @steipete
- 发布运维人员可以复用已批准的豁免验证证据,而不会造成错误的决策阻塞。#133589 — 感谢 @steipete
- 浏览器快照准备复用内部工作,同时保持目标定位和截图输出不变。#133598 — 感谢 @steipete
- 源配置导入避免评估仅类型模块。#133604 — 感谢 @steipete
- 终端表格渲染执行更少的重复内部格式化,同时产生相同输出。#133607 — 感谢 @steipete
- 发布维护者获得更快的源 Gateway 实时分片以及更确定的清理检查。#133609 — 感谢 @steipete
- 先前发布页面的读者获得一个指向其配套发布故事的链接。#133620 — 感谢 @hannesrudolph
- 先前发布页面不再携带过时的草稿警告。#133623 — 感谢 @hannesrudolph
- 维护者 PR 和发布工作流保留所选的受保护 GitHub CLI 路由,并重新验证特权证据。#133624 — 感谢 @steipete
- Autoreview 在分发前不再要求本地凭据扫描。#133626 — 感谢 @Patrick-Erichsen
- SQLite 架构比较执行更少的重复内部工作,且不更改架构或迁移。#133627 — 感谢 @steipete
- 共享工作器仓库测试在拆除后停用已完成文件的仅限测试 API。#133631 — 感谢 @steipete
- 一个聚焦的受管进程回归完成得更快,同时保留其清理检查。#133634 — 感谢 @steipete
- 生成的翻译记忆跟踪修订后的输出 Token 术语。#133639 — 感谢 @openclaw-mantis
- 仓库代理将常规 Gateway 更新路由到拥有它们的安装特定工作流。#133640 — 感谢 @steipete
- 并行提供者测试移除了一个重复的归一化接缝,同时保留提供者边界覆盖。#133644 — 感谢 @RomneyDa
- 文档拼写检查测试不再镜像无害的包装器源格式。#133645 — 感谢 @RomneyDa
- Cron 测试保留一个权威的上海年份回滚回归,而不是重复断言。#133646 — 感谢 @RomneyDa
- 发布导航测试接受新版本页面,同时不丢失路由形状检查。#133652 — 感谢 @steipete
- 插件注册表复用测试验证真实的活跃注册表接缝。#133656 — 感谢 @steipete
-
诊断状态准备避免重复的内部扫描,同时保留标签和生命周期跟踪。 #133659 — 感谢 @steipete
- 之前的发布页面将其功能摘要链接到维护中的指南。 #133665 — 感谢 @hannesrudolph
- 常规发布验证测试从当前稳定包升级,同时保留显式历史重放。 #133666 — 感谢 @steipete
- 转发消息的展示使用统一的内部显示和头像规则。 #133669 — 感谢 @steipete
- 编译器和受管进程测试夹具的启动和停止开销更低。 #133670 — 感谢 @steipete
- 生成的配置文档基线与已合并的设置保持一致,同时保留漂移检查。 #133671 — 感谢 @steipete
- 升级后的 Doctor 测试和生产环境使用相同的基于 SQLite 的已安装插件索引。 #133673 — 感谢 @steipete
- 发布流程可以在可信工具链变更后使用经过严格验证的历史验证和 npm 预检证据。 #133675 — 感谢 @steipete
- 发布依赖审计可以检测 npm 遗漏的匹配公开上游公告,同时保留部分覆盖证据。 #133688 — 感谢 @steipete
- 不透明会话键归一化和有界映射修剪执行更少的内部工作,且不改变结果。 #133691 — 感谢 @steipete
- 非隔离 runner 夹具更易于审查,并覆盖进行中的 mock 注册。 #133696 — 感谢 @steipete
- CJK 估算器测试位于一个权威所有者处,没有重复覆盖。 #133701 — 感谢 @steipete
- 浏览器中继生命周期辅助函数和入口测试具有更清晰的内部所有权,同时保留行为。 #133706 — 感谢 @steipete
- 共享归一化复用 schema 和 JSON 遍历准备,同时保留精确输出和 API。 #133710 — 感谢 @steipete
- 无运行时变更;冗余的 LINE 适配器和 webhook 测试已移除,同时保留更强的行为覆盖。 #133712 — 感谢 @steipete
- 无可见的 Control UI 变更;工作状态渲染现在只有一条内部展示路径。 #133713 — 感谢 @steipete
- Discord 和 Slack 的静默进度行为保持不变,同时重复的渲染路径已合并。 #133714
- 维护者获得更严格的证据,证明非隔离 runner 清理测试正常完成。 #133717
- 受管 worktree 测试夹具运行更快,且产品行为不变。 #133726 — 感谢 @steipete
- 内部仓库守卫完成得更可靠,且重复工作更少。 #133732 — 感谢 @steipete
- Token 格式化测试现在有一个规范所有者,且运行时格式化不变。 #133737
- 开发者可以使用自定义 SwiftPM 临时路径构建 macOS 应用,而不会遇到冻结的依赖解析失败。 #133740 — 感谢 @steipete
- QA Lab 摘要测试保留覆盖,同时减少重复的文件读取器用例。 #133741 — 感谢 @steipete
- Copilot 和 Teams 测试套件在移除冗余冒烟检查后保留更强的行为覆盖。 #133745 — 感谢 @steipete
- 冲突标记回归测试现在使用与工作流检查相同的基于 Git 的扫描器。 #133746 — 感谢 @steipete
- Apply-patch 字节保留测试有一个权威位置,且无运行时变更。 #133748 — 感谢 @steipete
- Control UI 聊天内部拆分为更小的所有者模块,同时可见行为保持不变。 #133751 — 感谢 @steipete
- 会议音频命令拆分在内部共享,同时保留启动和失败行为。 #133754
- 重复的 macOS 入门测试已移除,同时保留精确的页面顺序覆盖。 #133756
- 四个重复的核心测试夹具已移除,且不改变运行时覆盖。 #133759 — 感谢 @steipete
- 文件系统安全默认模式测试不再失败或擦除来自开发者和 CI 启动器的继承模式设置。 #133760
- Control UI 标题和工作短语测试运行更少的重复渲染,且无界面变更。 #133762
- Gateway 启动执行更少的过时插件发现和重复策略准备。 #133763 — 感谢 @steipete
- 变更日志新增了指向已发布的 2026.8.1 发布说明的链接。 #133764
- 一个不可达的 xAI 网络搜索凭据接缝已移除,同时保留认证行为。 #133765 — 感谢 @steipete
- 本地化和插件验证器测试现在执行拥有工作流,而不是私有导出。 #133768 — 感谢 @steipete
- 文件系统安全边界测试避免重复仓库扫描,同时保留覆盖和顺序。 #133769 — 感谢 @steipete
- 重复的代理传输、模型、重试和恢复夹具已移除,且无运行时变更。 #133770 — 感谢 @steipete
- CLI 解析器测试现在仅证明其可独立验证的契约,而不是自比较格式化器输出。 #133771 — 感谢 @steipete
- 发布向导渲染测试确定性地清理进度句柄和终端监听器。 #133774
- 音频契约测试更小且更清晰,同时保留转码和语音格式覆盖。 #133779 — 感谢 @steipete
- Control UI 构建在合并重复骨架样式后符合其现有样式表预算。 #133787
- 已发布的 2026.8.1 说明和已验证的 Mac ZIP 已在文档和 Sparkle 中定稿。 #133790
- WhatsApp 格式化测试使用更简单的 oracle,同时保留所有 41 个预期格式化结果。 #133794 — 感谢 @steipete
- Control UI 构建通过现有样式表预算,同时附件卡片外观保持预期不变。 #133796 — 感谢 @steipete
- 2026.8.1 发布页面已更新,包含已验证的 Mac ZIP 和 DMG 链接。 #133807 — 感谢 @steipete
- 最慢的嵌入式代理 CI 组被拆分为三个均衡分片,以加快贡献者反馈。 #133812 — 感谢 @steipete
- QA Lab 截止回退测试直接协调清理,而不是依赖固定睡眠。 #133816 — 感谢 @steipete
- QA 发布验证夹具保留主要失败,并在移除资源前完成所有者关闭。 #133821
- 冗余辅助探针已移除,同时保留消费者级别的 Gateway、提供者、文件和 Telegram 覆盖。 #133824
- 重复的 Control UI 模型标签测试已移除,同时保留规范选择器状态覆盖。 #133826
- 聚焦的环境键测试通过直接导入其包所有者而启动更快。 #133830 — 感谢 @steipete
- 原生 scripts/pr 审查操作会及时完成,而不是等待分离的 Git 维护排空。 #133832 — 感谢 @steipete
- Docker-pull 重试测试使用更少的夹具和子进程,同时保留生产辅助行为。 #133833 — 感谢 @steipete
- 冲突标记测试夹具被批处理以加快反馈,同时保留扫描器覆盖。 #133834 — 感谢 @steipete
- Docs-list CLI 测试使用更少的夹具设置和进程启动,同时保留受支持的 frontmatter 和标题覆盖。 #133835 — 感谢 @steipete
- 会话读取和写入渲染器共享尾部空行修剪,同时保留可见输出。 #133837
- 格式化器超时测试检查一个模拟失败,而不是运行两次。 #133838 — 感谢 @steipete
- Retry-After 规则有一个调度器拥有的测试套件,同时生产重试行为保持不变。 #133839 — 感谢 @steipete
-
队列诊断减少了重复工作,同时有界会话跟踪仍保持正确。 #133840 — 感谢 @steipete
- CLI 帮助缓存由一个内部所有者统一管理,输出和回退行为保持不变。 #133841 — 感谢 @steipete
- QR 包装器测试使用更小、更快的加载器边界测试夹具,且不改变产品行为。 #133846 — 感谢 @steipete
- 之前的发布说明链接现在标注了其确切版本。 #133851 — 感谢 @hannesrudolph
- 插件生命周期租约争用测试使用虚拟时间确定性运行。 #133853 — 感谢 @steipete
- 进程密集型工具检查在 CI 中分布得更加均匀。 #133854 — 感谢 @steipete
- Gateway 执行通知抑制测试现在会执行真实的授权生命周期。 #133859 — 感谢 @steipete
- 浏览器扩展 Chromium 证明避免了不必要的完整声明构建,同时保留其运行时断言。 #133863 — 感谢 @steipete
- 发布验证更高效地使用现有 runner,并在凭据预检失败后保留更多诊断信息。 #133865 — 感谢 @steipete
- Signal 控制通道测试无需等待实际时钟即可更快且确定性地运行。 #133866 — 感谢 @steipete
- 经过测量的慢速拆分测试组获得准确的 CI 规划权重。 #133867 — 感谢 @steipete
- Feishu 并发发送测试无需实时延迟即可证明独立行为。 #133872 — 感谢 @steipete
- 冗余的 Control UI 净化器、缓存和 toast 测试已合并。 #133874 — 感谢 @steipete
- IRC socket 测试夹具共享生命周期清理,并在被拒绝的设置后不再泄漏监听器。 #133875 — 感谢 @steipete
- 插件插槽选择测试直接调用规范所有者,并使用更清晰的本地断言。 #133876 — 感谢 @steipete
- 日志测试会恢复继承的环境值,并且不再将修改后的设置泄漏到后续测试中。 #133877 — 感谢 @steipete
- Slack 线程根谓词测试使用更小的等效决策矩阵。 #133878 — 感谢 @steipete
- 日志子系统测试在删除临时文件前会等待队列中的写入完成。 #133879 — 感谢 @steipete
- Gradium 语音测试使用更小的等效环境和 URL 拒绝测试夹具。 #133880 — 感谢 @steipete
- 重启验证和安装归属共享相同的 Git 提交前缀规则。 #133887 — 感谢 @vincentkoc
- 日志测试覆盖真实的波浪线路径展开,同时移除了冗余检查。 #133890 — 感谢 @steipete
- 并行扩展测试在请求边界验证完整的出站 User-Agent。 #133891 — 感谢 @steipete
- 两个仅重放原生 Promise 行为的测试已被移除。 #133892 — 感谢 @steipete
- Discord 代理请求信号覆盖不再重复一个成功请求测试夹具。 #133893 — 感谢 @steipete
- 任务注册表基准测试在真实启动边界断言 worker 参数。 #133894 — 感谢 @steipete
- 审批文本准备复用脱敏视图和有界检查,同时保留决策和提示字节。 #133904 — 感谢 @steipete
- 当 worktree 包装器版本不同时,PR 落地包装器可以生成一个经过验证的 origin/main 信任锚点。 #133913 — 感谢 @steipete
- Brave Search 测试直接导入共享的规范化所有者。 #133914 — 感谢 @steipete
- 图像辅助测试使用更清晰的直接断言和输入名称。 #133915 — 感谢 @steipete
- 绑定账户路由测试夹具移除了重复的信封设置,同时保留测试用例。 #133917 — 感谢 @steipete
- 模拟 Control UI 浏览器证明重跑会将每次尝试的截图、录屏、报告和诊断信息保留在独立目录中。 #133918 — 感谢 @steipete
- 长混合格式 iMessage 回复减少格式化器工作量,同时保留文本和样式范围。 #133919 — 感谢 @steipete
- 直接和隔离插件运行时共享一个私有的 LLM 完成错误构造函数。 #133927 — 感谢 @vincentkoc
- 工作区图标测试失败现在会识别一个安全的请求类别,而不仅仅是过多的获取计数。 #133942 — 感谢 @steipete
- Feishu 重试测试使用虚拟时间执行生产退避计划,并减少重复。 #133943 — 感谢 @steipete
- Cron 投递规划测试使用聚焦的路由输入,而不是过大的任务测试夹具。 #133944 — 感谢 @steipete
- 自动文档翻译修复会重新运行最初失败的、由检查器提供的验证。 #133945 — 感谢 @steipete
- Control UI 证明捕获会在截图前等待渲染内容、动画稳定和桌面布局。 #133949 — 感谢 @steipete
- 守护进程检查测试共享临时目录清理,同时保留 Linux 和 macOS 覆盖。 #133961 — 感谢 @steipete
- Microsoft 语音测试共享合成设置,并以表驱动方式覆盖等效语音用例。 #133966 — 感谢 @steipete
- 工具管理器测试在 Windows 特定用例后恢复原生操作系统模块。 #133967 — 感谢 @steipete
- 链接理解 runner 测试合并了受保护获取和超时用例,同时不丢失覆盖。 #133969 — 感谢 @steipete
- 针对目录和 glob 输入的广泛工具路由断言共享一个测试表。 #133971 — 感谢 @steipete
- 构建戳测试直接导入共享写入器,并在构建戳脚本更改时被选中。 #133974 — 感谢 @steipete
- 一个未使用的 SearXNG 私有测试钩子已被移除,同时搜索行为保持完整。 #133975 — 感谢 @steipete
- 包清单过滤和子树修剪共享一个外部化插件排除策略。 #133980 — 感谢 @steipete
- 没有已发布行为变更;三个相同的 UTF-16 安全截断路径现在共享一个私有实现。 #133986 — 感谢 @vincentkoc
- 包补丁保护测试共享一个测试夹具,同时保留其生产策略覆盖。 #133993 — 感谢 @steipete
- 稳定升级验证可以测试较旧的安装,而不会产生虚假的测试夹具、就绪状态或生命周期失败。 #134002 — 感谢 @steipete
- 具体插件状态存储会在编译时暴露其始终存在的原子更新和条件删除能力。 #134005 — 感谢 @steipete
- 心跳队列选择和诊断快照收集执行更少的重复扫描,同时不改变调度结果。 #134007 — 感谢 @steipete
- 失败展示在只需要错误代码或无法回滚模型补丁时,避免不必要的提供商分类。 #134008 — 感谢 @steipete
- 会话和轨迹导出共享相同的宽松条目准入规则,同时不更改存储或导出的数据。 #134011 — 感谢 @vincentkoc
- 有界并发测试等待直接的任务启动信号,而不是轮询。 #134013 — 感谢 @steipete
- 维护者 PR 刷新和 CI 准备避免共享引用冲突并保留所需历史,同时 Anthropic 注册会延迟未使用的设置工作。 #134014 — 感谢 @shakkernerd
- SDK 导出注册测试避免重复的稳定性循环,同时保留写入和检查模式验证。 #134017 — 感谢 @steipete
-
WhatsApp outbound-policy 测试现在使用更少的模拟设置来验证真实的目标规范化。#134019 — 感谢 @steipete
- 包自升级验证接受当前的结构化 setup-busy 响应,而不会将成功的升级误判为失败。#134023 — 感谢 @steipete
- macOS 发布打包避免固定 DMG 大小,查找当前 dSYMs,并更高效地渲染大型发布说明。#134027 — 感谢 @steipete
- 浏览器可访问性快照准备避免冗余分配,同时保留精确的快照和 CDP 契约。#134028 — 感谢 @steipete
- 托管 macOS Swift 测试使用有界并发,以避免串行超时和无限资源压力。#134035 — 感谢 @vincentkoc
- CI 共享安全的准备工作,并使用实测成本平衡完整的测试工作负载,在保留清单和信任边界的同时减少重复设置。#134038 — 感谢 @steipete
- 包分发导入测试批量处理等效的测试夹具,同时保留所有诊断和 allowed-probe 用例。#134039 — 感谢 @steipete
- 发布操作员可以暂存 ClawHub 包,并在父发布成功后稍后验证父授权、包来源和公共注册表字节。#134053 — 感谢 @shakkernerd
- OpenGrep 解析一个实际的拉取请求 diff 基线,并在历史准备和扫描中一致地使用它。#134054 — 感谢 @lsr911、@obviyus、@chelsealong、@ZengWen-DT 和 @SebTardif
- JSON 解析器测试与其实现放在一起,并避免初始化无关的运行时基础设施。#134080 — 感谢 @steipete
- 共享文本测试使用更直接的断言,同时保留独立的行为覆盖。#134082 — 感谢 @steipete
- 模型工具测试现在遵循 AI 包实现,并避免加载无关的提供商和传输运行时代码。#134086 — 感谢 @steipete
- Gateway scope-upgrade 取消测试等待显式信号,并完整验证两个已取消的操作。#134091 — 感谢 @steipete
- iOS 签名测试验证真实的 developer-team 选择器,而不是复制的实现。#134092 — 感谢 @steipete
- 一个 sandbox-policy Prompt 测试从一个准备好的测试夹具派生提供商和模型标识,避免无关的提供商发现。#134094 — 感谢 @steipete
- Exa、MiniMax 和 Moonshot 提供商测试使用其同置的测试绑定,减少重复的测试夹具样板。#134095 — 感谢 @steipete
- 托管 CI 将三个昂贵的生命周期套件分配到不同的工具条带中,同时保留完整清单。#134100 — 感谢 @steipete
- 有界并发测试使用任务特定的启动诊断快速失败,而不是等待整体截止时间。#134102 — 感谢 @steipete
- 环境选项日志测试直接等待 logger 回调,具备有界失败和更干净的 mock 隔离。#134104 — 感谢 @steipete
- 终端会话渲染器复用一个共享的 text-component 实现,而不改变其输出。#134105 — 感谢 @vincentkoc
- 变更文件验证仅对隔离测试变更中编译器证明的消费测试图进行类型检查,否则保守地回退。#134107 — 感谢 @steipete
- APNs 竞态测试使用显式的有界生命周期信号,以实现更快、更清晰的取消和会话错误覆盖。#134108 — 感谢 @steipete
- HTTP 响应读取器测试使用直接断言,同时保留成功、错误和超时行为覆盖。#134112 — 感谢 @steipete
- Ratchet 测试夹具按调用设置 Git 身份,并避免重复的仓库设置。#134117 — 感谢 @steipete
- 包兼容性测试对仅解析器用例直接调用 capability-consent 解析器,同时保留 CLI 集成覆盖。#134118 — 感谢 @steipete
- Android 本地化测试共享一个目录,并现在会因任何意外的 UI 字面量扫描器结果而失败。#134121 — 感谢 @steipete
- Dated-TODO 扫描器测试独立验证每个受保护的排除项,而不是允许一个泄漏文件隐藏在其它文件之后。#134122 — 感谢 @steipete
- macOS 原生测试套件移除一个宽松的重复 shell 冒烟测试,同时保留更强的执行覆盖。#134123 — 感谢 @steipete
- CI retry-command 测试共享测试夹具计数器,并避免冗余的外部读取,同时保留所有重试用例。#134128 — 感谢 @steipete
- Docker resource-ceiling 测试批量处理接受的统计格式,同时保留精确峰值、拒绝用例和流式保护。#134133 — 感谢 @steipete
- Grep 截断测试现在精确保护所声明的 500 字符边界。#134135 — 感谢 @steipete
- Nostr 游标恢复测试使用虚拟时间和生产重试节奏,而不改变 Nostr 运行时行为。#134139 — 感谢 @steipete
- 发布验证移除一个冗余的 runner 队列跳转,同时保留 fail-closed 候选获取。#134140 — 感谢 @steipete
- Teams Meetings 先决条件测试复用模块导入,同时保留场景隔离和运行时行为。#134146 — 感谢 @steipete
- Control UI 测试移除重复覆盖,并加强 timer-cleanup 验证,而不改变生产行为。#134147 — 感谢 @steipete
- iMessage RPC 客户端测试避免重复的模块加载,同时保留每个用例全新的客户端和进程测试夹具。#134149 — 感谢 @steipete
- 浏览器回收站测试将通用文件系统行为整合到共享 SDK 所有者下,而不改变回收站权限。#134151 — 感谢 @steipete
- Mistral realtime-transcription 终端测试观察实际的 WebSocket 关闭,以实现更确定性的完成检查。#134157 — 感谢 @steipete
- IMAP 协议测试等待已提交的游标状态,而不是在游标完成拥有信号的地方使用间接轮询。#134162
- Telegram 网络测试将模块重载隔离到 WSL 缓存用例,并直接保护缓存检测行为。#134164 — 感谢 @steipete
- Telegram buffered-media 测试等待实际排队任务完成,而不是固定睡眠。#134171 — 感谢 @steipete
- DeepInfra 和 xAI 视频传输测试共享提供商导入,同时保留全新操作和真实传输检查。#134174 — 感谢 @steipete
- 插件命令消费者从一个规范的活动注册表读取,而不改变列表、匹配、执行或频道菜单。#134175
- Gateway 会话快照组装执行更少的重复复制,同时返回相同的客户端可见字段。#134176 — 感谢 @steipete
- Chat 文本内部实现移除不受支持的合成回调恢复和重复的 envelope 元数据,而不改变有效聊天。#134184
- Model-catalog 测试从其所属模块导入定价 URL,而不是未使用的发布者转发层。#134205
- Channel-recovery 测试夹具恢复干净的 lint 和类型验证,而不改变恢复行为。#134207 — 感谢 @steipete
- 插件 lint 使用有界的扩展拥有的 TypeScript 项目,同时保留类型感知诊断。#134216
- 发布验证移除两个冗余的 image-readiness 作业,同时图像生产者仍作为消费者的阻塞先决条件。#134232 — 感谢 @steipete
- Auto-reply 媒体测试通过提供准备好的 image-capability 元数据,避免真实的提供商目录发现。#134245
- 热代理轮次执行更少的重复策略、工具、模型和会话准备,同时保留现有行为。#134246
- Tavily 响应解析移除一个未使用的包装器,同时保持相同的边界、错误、取消和结果。#134255
-
插件状态发布验证要求使用现有的结构化过期注册表诊断,且不削弱严格相等性。#134260 — 感谢 @steipete
- Signal 传输就绪测试会验证真实的共享退避行为,而不是仅测试用的等待实现。#134263 — 感谢 @steipete
- 中止中继覆盖移至 fetch-timeout 所有者,同时保留默认原因和监听器移除检查。#134266 — 感谢 @steipete
- LLM Core 事件流测试批量处理精确序列断言,同时消费并检查每个有序结果。#134270
- 包根目录发现会在单根目录查找中找到第一个有效根目录后停止扫描,同时 Doctor 保留完整清单回退。#134271 — 感谢 @steipete
- GitHub 活动辅助测试移除了人为响应延迟,同时保留输出顺序回归证明。#134273 — 感谢 @steipete
- Apple 发布源检查测试夹具直接在提交命令上设置 Git 身份,减少子进程,且不改变来源保护。#134277 — 感谢 @steipete
- 时长格式测试移至其格式化器所有者,同时会话警告行为覆盖保持完整。#134280 — 感谢 @steipete
- 成功的 UI E2E 运行会记录完整的、包含钩子的逐文件计时,用于未来的分片规划。#134283 — 感谢 @steipete
- 审批关闭竞态测试在回调入口处同步,而不是依赖调度器计时。#134284 — 感谢 @steipete
- iOS Watch 审批测试移除了宽泛的实现镜像,同时保留聚焦的身份、重试和快照不变量。#134285
- iOS 本地化测试移除了重复的调用点清单,同时保留独立的本地化保护。#134286
- 模型目录和插件健康摘要共享一个私有的首条记录优先去重辅助函数,且不改变输出。#134287
- macOS 配置文件测试移除了脆弱的源码布局不变量,同时可执行文件隔离和就绪覆盖仍然保留。#134288
- Feishu 退避分类器覆盖移至一个明确所有者的表驱动测试套件。#134289
- 并发 Gateway 轮次复用稳定的已准备插件元数据,同时继续评估当前信任和激活状态。#134290
- Windows 运行时导入测试将重复的绝对路径覆盖合并为一个权威用例。#134291 — 感谢 @steipete
- Android 和 iOS 发布渲染器测试使用内存值测试夹具,同时保留独立的文件支撑和 CLI 覆盖。#134293 — 感谢 @steipete
- Node 测试分片使用仅运行时的前置构建,同时完整的 UI 和 SDK 工件验证仍由独立所有者负责。#134294
- CLI 启动基准状态用例在一个有序驱动器调用中运行,并带有更强的 HOME 隔离检查。#134296 — 感谢 @steipete
- 变更文件验证会在花费时间进行广泛仓库审计之前报告类型失败,同时成功的门禁仍会运行所有审计。#134298
- 维护者 PR 操作保持仓库状态查询与其锁关联,并拒绝读取失败,同时编译工作器测试使用更少的脚手架。#134300
- Bun 发布冒烟测试可以验证早于捆绑 @openclaw/ai 的历史冻结包,而无需重写它们或削弱畸形包检查。#134309
- xAI OAuth 测试现在证明运行时导入在认证工作开始之前保持惰性。#134315
- 用量过滤在每次过滤调用中准备一次查询谓词,同时保留结果。#134318
- 执行策略测试避免重复加载真实模块,且不改变策略行为。#134319
- LM Studio 超大响应测试复用不可变源块,并保留相同的大小限制行为。#134322
- 浏览器配置文件分配覆盖在移除重复演示后保留在服务边界。#134324
- 发布验证通过包安装后生命周期检查保留 Git 更新测试夹具身份。#134328
- 会话截止时间测试现在证明回复已被认领,并等待现有所有者结算。#134335
- 插件 blob 和键控存储共享选项策略实现,同时保留独立契约。#134339
- 分析器参数变体在解析器处测试,减少子进程启动。#134345
- Periphery 工作流测试复用不可变的已解析和已编译测试夹具,同时保持可变状态隔离。#134350
- 容量组测试直接观察准入,而不是轮询计时器轮次。#134355
- Media Core 测试将现有期望直接放在每个用例中,以便更清晰地维护。#134356
- Linux 伴侣包可以在验证不可变标签 SHA 后从规范稳定发布分支发布。#134359
- 冻结扩展稳定检查从同一发布线选择更早发布的基线。#134363
- CLI 策略测试将模块重置和清理限定在安装模拟器的用例中。#134364
- 物化的可信 PR 锚点包含审查和落地工作流所需的辅助闭包。#134366
- 移动发布引用测试共享一个清理跟踪的仓库生命周期,并保留现有验证。#134367
- 原生链接路由测试现在暴露修改点击和处置后监听器失败。#134370
- 压缩回退测试确定性地驱动重试时钟,同时保留取消和耗尽覆盖。#134371
- 非机密 Tool Search 计数器作用域使用小写十六进制,因此脱敏不会改变持久化的重放数据。#134372
- Tool Search 仅对存在于词项倒排列表中的文档进行排序,同时保留分数和顺序。#134374
- Nostr 指标覆盖现在与其所有者放在一起,并移除冗余的复制中继演示。#134378
- WhatsApp 配置文件目录测试共享一个受控导入生命周期,同时保留三个现有契约。#134382
- Deepgram 实时转录测试等待最终提供商回调,并在失败时清理会话。#134383
- ElevenLabs 实时转录测试从提供商事件完成,并可靠地关闭会话。#134384
- 终端回归测试夹具保留栈限制和管道破裂覆盖,同时减少重复工作。#134387
- Tlon 授权测试现在验证真实解析器,涵盖默认值、允许列表、开放策略和优先级。#134393
- OpenGrep 测试复用一个不可变的合成源历史,同时为每个场景保留隔离的浅克隆。#134399
- OpenAI 实时转录边界测试复用一个终端历史生命周期,且不改变保留的限制。#134401
- 可选加入的 Control UI 代理文件截图和视频与其他真实 Gateway CI 证明一起保留。#134402
- Workboard 对不使用生命周期查找的过滤器避免生命周期查找,并更安全地保留失败副本记录。#134405
- Realtime Talk 冒烟测试推进模拟节奏,并确定性地关闭时钟。#134408
- 打包升级验证在添加候选迁移测试夹具之前初始化并认证已发布的基线。#134410
- 等效的完整、包和 CI 构建可以复用已验证的插件 SDK 声明。#134414
- 升级恢复决策整合到其既定的入门、回复、就绪和 Doctor 所有者之下。#134415
- 包派生的 Git 发布测试夹具在临时生命周期标记退役后保持干净。#134417
- Gateway 请求复用已准备的插件模型策略,同时保留模型和提供商行为。#134419
- 发布验证器可以验证规范技能新鲜度,并将私有工具失败与候选结果分开。#134420
- 发布检查现在预期 Doctor 的退役转录归档和 Plugin SDK 清理仅在其拥有的临时根目录内进行。#134422
- 已完成的隔离 CLI 和冷入口点 QA 运行会及时取消未使用的截止时间计时器。#134424
- 系统事件处理对于只需要状态、回执或文本的调用方避免快照。#134433
- 共享的 Home 和 Ask OpenClaw 助手停靠区使用一个更清晰的实现,同时保留已保存布局兼容性。#134435
- CI 监视器测试夹具测试将模拟轮询时间与真实子进程启动时间分开。#134436
-
升级验证仅在基线配置之后创建遗留 cron 任务,以便达到候选迁移。 #134441
- 升级幸存者 E2E 证明在候选所有权之前保持遗留测试夹具离线,并验证受管 Gateway 替换。 #134442
- 当优雅清理期间后代进程退出时,成功的 Oxlint 分片仍保持绿色,而强制终止仍会使任务失败。 #134449
- 文本模式网页抓取会跳过本会被丢弃的 Readability HTML 序列化。 #134452
- 所选 macOS CI 测试夹具在所有权边界内重叠,UI 分片输出更好的计时和资源证据。 #134459
- 转录投影重建在每次访问时复用一个已准备的选定路径查询,同时保留结果。 #134465
- macOS Codex 队列截止时间测试保持其阻塞器存活,并在证明排队过期后将其清理。 #134469
- CI 恢复指南优先在原始附加运行上重试失败任务,然后再进行完整重新调度。 #134474
- macOS CI 可以预热依赖缓存,并以有界重叠运行隔离的签名测试夹具。 #134476
- 维护者 PR 包装器使用精确固定锚点的依赖清单进行提取和验证。 #134481
- 链接工作树脚本类型检查从根工具中解析带类型的 pako 依赖。 #134484 — 感谢 @vincentkoc
- 共享辅助测试现在会执行其名称所描述的远程平台和无效 Tailscale 路径。 #134485 — 感谢 @steipete
- 普通 SQLite 表模式检查避免了一次不必要的规范化处理。 #134486 — 感谢 @steipete
- 借用的 agent-database 读取执行更少的重复准入工作,同时保留兼容性检查。 #134489 — 感谢 @steipete
- Codex 扩展启动清理测试接受启动器预期的基于信号的终止。 #134491 — 感谢 @steipete
- CI 复用有效的 Swift 构建产物,平衡缓慢的 Node 组,并更好地利用 Mac 测试夹具容量。 #134493 — 感谢 @steipete
- 声明构建不再清点同级受管工作树,也不再通过函数参数传递巨大清单。 #134501 — 感谢 @steipete
- 设置迁移暂存和晋升共享一个失败关闭的目标路径检查。 #134503 — 感谢 @vincentkoc
- 本地 Docker 发布包准备跳过一项冗余的结构验证,同时保留身份检查。 #134505 — 感谢 @steipete
- 文件系统大小写检测和 safe-bin 信任复用一个经过测试的低层身份实现。 #134511 — 感谢 @vincentkoc
- 媒体别名测试现在会在提供商识别或规范化出现回归时失败。 #134513 — 感谢 @steipete
- 扩展稳定验证识别冻结候选的遗留子代理实时测试选择加入路径。 #134518 — 感谢 @RomneyDa
- iOS CI 复用 Watch 构建产物,并更准确地识别已完成的进程组。 #134523 — 感谢 @steipete
- 冻结 Docker 候选创建自己的代理名册,以便删除冒烟测试跨越配置代际。 #134526 — 感谢 @RomneyDa
- 控制 UI 检查分片到有限的工作者,且未更改的 SDK 编译器输入可以复用已验证的声明。 #134528 — 感谢 @steipete
- 当所选捆绑插件图更改时,声明缓存会重建。 #134529 — 感谢 @steipete
- Gateway 本地认证和状态回退共享一个回环 URL 策略。 #134535 — 感谢 @vincentkoc
- 原生边界缓存忽略无关的根受管工作树变动,同时保留相关的嵌套和别名输入。 #134538 — 感谢 @steipete
- 出站目标规范化测试复用与生产环境一致的注册表生成生命周期。 #134539 — 感谢 @steipete
- 插件预发布取消测试保留所选代理身份。 #134540 — 感谢 @vincentkoc
- Swift 缓存时间戳测试夹具将同一时间的更新批量合并到更少的进程中。 #134543 — 感谢 @steipete
- 命令队列发布测试观察车道准入和任务进入,而不使用不精确的计时器刷新。 #134545 — 感谢 @steipete
- Nostr 密钥验证用例合并到当前所有者下,且没有重复覆盖。 #134546 — 感谢 @steipete
- Nostr 频道测试执行 OpenClaw 实际注册的插件契约。 #134551 — 感谢 @steipete
- Fireworks Kimi 测试现在证明解析器应用了所需的推理覆盖。 #134553 — 感谢 @steipete
- CI 分片运行器测试现在证明恰好两个工作者重叠,而不使用计时器睡眠。 #134556 — 感谢 @steipete
- CI 计时测试通过模式所有者验证格式错误的字段,同时保留加载器行为覆盖。 #134563 — 感谢 @steipete
- 变更基准解析器错误直接测试,而不进行五次冷 CLI 启动。 #134565 — 感谢 @steipete
- MiniMax OAuth 测试在结算后清除授权和令牌轮询观察截止时间。 #134569 — 感谢 @steipete
- 独立的 Firecrawl 回归测试检查完整的已记录 1 到 100 计数诊断。 #134571 — 感谢 @steipete
- 提供商流程测试在每个隔离套件中初始化无状态所有者一次。 #134578 — 感谢 @steipete
- 实时测试为 Codex 自动压缩和 OpenAI Responses 检查点重放提供更强的证据。 #134580 — 感谢 @steipete
- Claw 引导和工作区文件操作共享一个严格的路径包含策略。 #134582 — 感谢 @vincentkoc
- 进程监督器测试复用工厂,同时保留每个用例的新状态和清理。 #134583 — 感谢 @steipete
- 冻结 npm 包验证使用捆绑的 Telegram 和受信任工具,而不是缺失的外部 Matrix 插件。 #134592 — 感谢 @steipete
- 执行身份审计准入和持久化共享一个规范排序策略。 #134597 — 感谢 @vincentkoc
- 插件 SDK API 差异取消测试清除其已完成的观察截止时间。 #134599 — 感谢 @steipete
- Azure Speech 格式错误响应测试在结算后清除其套接字关闭观察截止时间。 #134602 — 感谢 @steipete
- Microsoft Teams 父上下文测试组合顺序缓存和去重生命周期阶段,而不丢失断言。 #134606 — 感谢 @steipete
- 媒体提供商注册表测试复用其无状态图,同时保留每个用例的模拟隔离。 #134609 — 感谢 @steipete
- 变更日志归属测试夹具避免冗余的持久 Git 配置进程。 #134611 — 感谢 @steipete
- 内存测试不再执行已退役的复制哈希和完成辅助函数。 #134618 — 感谢 @steipete
- 发布 ZIP 测试夹具使用原生校验和,并直接证明损坏的负载字节被拒绝。 #134620 — 感谢 @steipete
- 原生构建缓存变更测试恢复一个经过验证的原始代际,而不是重新编译相同的设置。 #134623 — 感谢 @steipete
- Memory Host SDK 测试保留更强的嵌套批处理错误用例,并移除一个重复项。 #134624 — 感谢 @steipete
- Docker 工件测试夹具预计算固定镜像身份,同时保留归档和加载后漂移检查。 #134628 — 感谢 @steipete
- 冻结 npm 检查从受信任的稀疏工具中获取静态资产和公共 SDK 测试夹具,同时验证冻结目标。 #134629 — 感谢 @steipete
- OpenAI 实时转录测试观察假套接字构建,并在用例之间负责重连清理。 #134635 — 感谢 @steipete
-
Hermes 迁移复用共享的 provider 发现和配置冲突处理机制。#134640 — 感谢 @steipete
- Compact CI 计时提示更好地平衡了六个此前被低估的测试组。2f18e20
- 实测的 Compact CI 权重在打包任务时现在优先于过期的固定提示。1197203 — 感谢 @steipete
- 应用、包、扩展、兼容性以及生成的目录元数据一致地标识 2026.8.2 候选版本。47c295c — 感谢 @steipete
- Android 版本和商店元数据,以及生成的 Apple 和 Control UI 区域目录,与冻结的 2026.8.2 版本切分保持一致。5a40f47
- 草稿变更日志被提升为带日期的 2026.8.2 发布记录,并包含完整说明链接。71901c9
- Vercel CLI 发布物料化接受已审查的 js-yaml 4.3.2 锁定,同时保留完整性保护。e01f53c
- 最终变更日志元数据记录了镜像依赖安全说明、剩余注意事项、端点以及 784 个 PR 的统计。0965053
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw