← 返回更新日志

OpenClaw v2026.8.1-beta.2 预发布

2026-08-15 · GitHub 原文
## 2026.8.1 ### 亮点 - **密钥出口主机绑定:** 在 CLI、Gateway RPC 和控制 UI 中,将每个共享存储的密钥绑定到确切的 HTTPS 目标主机,以便在明文出口前,未绑定的哨兵替换会安全失败。感谢 @shakkernerd。 - **GPT-5.6 Ultra 与运行时切换:** 在 OpenClaw 和 Codex 引擎中支持 Sol、Terra 和 Luna;通过 `/model` 命令及回退机制保持模型、运行时和思维链选择的原子性;并为两个测试框架添加实时矩阵覆盖。感谢 @anyech 和 @vincentkoc。 - **频道插件入口监控器:** 新增共享插件 SDK 监控器,用于持久化准入、轮询、修剪、声明身份验证、采用权移交和关闭,并将 IRC、Synology Chat 和 Google Chat 迁移至共享生命周期。感谢 @vincentkoc 和 @shakkernerd。 - **SQLite 快照:** 新增 `openclaw backup sqlite create|list|verify|restore` 命令,用于生成紧凑且经过验证的全局及单代理数据库制品,并支持仅针对全新目标的恢复。感谢 @giodl73-repo。 - **macOS 应用配置文件:** 在状态、偏好设置、钥匙串、Gateway 服务和重复实例所有权方面隔离命名应用实例,同时保持主机全局登录和节点服务不受影响。感谢 @shakkernerd 和 @vincentkoc。 - **插件安装来源警告:** 在 CLI 和聊天安装中,对任意可执行插件源要求显式使用 `--force` 确认;保持受信任的 ClawHub、内置、官方目录和跟踪更新流程顺畅无阻;并将 Crestodian 安装限制为受信任源。感谢 @jesse-merhi 和 @vincentkoc。 - **控制 UI 更新恢复:** “有新版本可用”的重新加载按钮现在会等待网关重启(该重启曾导致数据块卡住),并在网关响应后立即重新加载,而不是静默无响应,从而避免用户只能手动强制刷新。感谢 @vincentkoc。 ### 变更 - **密钥出口主机绑定:** 在 CLI、Gateway RPC 和控制 UI 中,将每个共享存储的密钥绑定到确切的 HTTPS 目标主机,以便在明文出口前,未绑定的哨兵替换会安全失败。感谢 @shakkernerd。 - **发布验证:** 默认将 Beta 候选版本的 Parallels 冒烟测试推迟至发布后的 `release:beta-smoke` 阶段,保持稳定版/完整版的发布前覆盖范围,并通过显式作业超时限制嵌套发布工作流监控器。感谢 @vincentkoc。 - **macOS 应用配置文件:** 在状态、偏好设置、钥匙串、Gateway 服务和重复实例所有权方面隔离命名应用实例,同时保持主机全局登录和节点服务不受影响。感谢 @shakkernerd 和 @vincentkoc。 - **开发者工作流:** 移除过时的 scoped-commit 辅助脚本,并在隔离的工作树中使用标准 Git 命令。 - **插件卸载清理:** 从 `plugins.load.paths` 中移除市场、npm 及其他托管安装的精确记录安装路径,同时保留父级、子级、前缀及无关路径。感谢 @vincentkoc。 - 修复了 Crabbox 在无权限云沙箱中的环境初始化问题:当共享的 `/var/cache/crabbox` 缓存不可用时,回退到用户可写的 pnpm 存储;在初始化后保留硬链接导入模式;并将 Docker 改为显式的路由能力,而非隐式的安装依赖。感谢 @vincentkoc 和 @joshavant。 - **浏览器扩展中继 CDP 兼容性:** 响应 `Target.getBrowserContexts`,使基于 Puppeteer 的客户端(chrome-devtools-mcp)能够在无需远程调试权限提示的情况下驱动配对的 Chrome,提供 DevTools 风格的 `/json/list` 目标描述符,并新增 `openclaw browser extension cdp` 命令以打印中继端点及外部 CDP 客户端所需的认证头。感谢 @vincentkoc。 - **本地模型设置:** 向 Control UI 和 macOS 展示由提供商提供的 Ollama、llama.cpp 和 LM Studio 设置选项,原地重试不可用的 LM Studio 服务,并在显示成功前验证已准备的确切模型。感谢 @vincentkoc。 - **Control UI 首次运行设置:** 将已验证的模型设置流程延续至 Custodian,说明无需频道即可就绪 Web 应用,并提供可选的、可关闭的 Channels 引导路径。 - **Fish Audio 语音:** 新增托管 S2.1 语音合成(支持流式传输、语音留言、语音发现和电话功能),以及在原生 macOS Talk 中支持本地 Fish S2 Pro 参考语音流式传输。感谢 @Conan-Scott、@vincentkoc 和 @Patrick-Erichsen。 - **Control UI 云工作区冲突:** 展示 staged-ref 引导、受限的冲突路径、结构化的转录事件,以及针对保留本地版本的云工作区结果的侧边栏提示。感谢 @vincentkoc。 - **Control UI 更新恢复:** “有新版本可用”的 Reload 按钮现在会等待网关重启完成(该重启曾导致分块卡住),并在网关响应后立即重新加载,而不是静默无响应且仅能通过手动硬刷新退出。感谢 @vincentkoc。 - **Control UI 发送者身份优化:** 在身份解析网关上,归属用户消息的侧边栏(gutter)始终显示作者的真实头像;发送者标签移除了不透明的 profile-UUID 后缀(适用于新和旧转录记录);profile-id 发送者通过标准网关路由解析头像。感谢 @shakkernerd 和 @vincentkoc。 - **Control UI 在线名单:** 点击侧边栏底部的头像堆叠区域,即可打开可滚动的在线用户名单,显示每个人的头像、姓名和邮箱,并将你自己的条目固定在最上方。 - **Discord 和 Slack 原生登录:** 在原生命令菜单中注册 `/login` 命令,同时保持配对码的发放仅限于私聊和 Web UI。 - **Control UI 用户资料:** 允许受信任代理用户管理自己的显示名称和头像,通过上传的头像或私有缓存的 Gravatar 代理解析归属聊天和在线状态身份,其他用户的资料仍仅限管理员管理。感谢 @vincentkoc。 - **受信任代理浏览器配对:** 可选地自动批准来自允许列表代理身份(非管理员权限范围)的新 Control UI 和 WebChat 设备,同时保持现有设备的升级需手动操作。感谢 @vincentkoc。 - **频道插件入口监控:** 新增共享插件 SDK 监控器,用于持久化准入、轮询、清理、声明身份验证、采纳交接和关闭,并将 IRC、Synology Chat 和 Google Chat 迁移至共享生命周期。感谢 @vincentkoc 和 @shakkernerd。 - **仪表板 MCP 应用:** 将源自会话的 MCP 应用视图固定为动态仪表板小部件,续订其沙箱视图租约,并将工具交互限制在基于修订版本的授权内,同时提供优雅的陈旧状态恢复机制。感谢 @vincentkoc。 - **外部网关监管:** 为 OCM 等生命周期所有者新增 `OPENCLAW_SUPERVISOR_MODE=external` 配置,在保留已验证的重启和延迟行为的同时不暴露原生服务权限,阻止原生服务修改和自更新,并提供带版本号的原子重启交接消费契约。感谢 @shakkernerd。 - **Buzz 消息保真:** 保留 Markdown 输出,并通过现有授权入站路径接受 Buzz 普通、富内容和结构化差异的频道消息。感谢 @shakkernerd、@vincentkoc 和 @zw-xysk。 - **Buzz 输入指示器:** 在代理回复和心跳传输期间显示频道和线程范围的输入状态,通过当前活动的认证连接刷新,无需等待中继确认,并在断开连接或关闭期间安全丢弃临时更新。感谢 @shakkernerd 和 @vincentkoc。 - **Buzz 发送者目录:** 从受限中继状态中暴露当前的机器人、成员、频道和频道成员目录条目;在入站上下文中使用当前的 Buzz 个人资料和频道名称,同时保留公钥和 UUID 作为稳定的授权和路由标识。感谢 @shakkernerd 和 @vincentkoc。 - **Buzz 原生提及:** 将唯一的当前频道成员名称和明确的 NIP-27 标识解析为原生的 `p` 标签,用于回复、主动发送和受限的独立投递;拒绝频道外标识和未解析且无明确标识的标签,并在维护和心跳运行期间保留 Buzz 回复线程会话解析。感谢 @shakkernerd、@vincentkoc 和 @joshavant。 - **ClickClack 引导设置:** 通过 `openclaw onboard` 或 `openclaw channels add clickclack` 配置 ClickClack,包含 URL、令牌和工作区提示,支持默认账户环境变量回退,提供非致命性实时连接验证,以及网关感知的后续步骤(当 OpenClaw 已在运行时自动连接)。感谢 @shakkernerd 和 @vincentkoc。 - **ClickClack 命令菜单:** 在网关启动时将每个机器人的原生 OpenClaw 命令发布到 ClickClack 编辑器的自动补全中,支持按账户退出,并对旧版令牌和服务器提供非致命性兼容处理。感谢 @shakkernerd 和 @vincentkoc。 - **ClickClack 机器人协作:** 新增可选的机器人作者入站调度,包含明确的发送者授权、提及门控、重试安全循环保护以及独立的线程预算,同时默认拒绝机器人流量。感谢 @jjjhenriksen、@shakkernerd 和 @vincentkoc。 - **技能工坊审批:** 默认情况下,运行由代理发起的 apply、reject 和 quarantine 操作时不再弹出额外的审批提示,同时保留 `skills.workshop.approvalPolicy: "pending"` 作为可选的审批关卡。感谢 @shakkernerd 和 @vincentkoc。 - **TUI 模糊选择器:** 将列表匹配委托给 pi-tui,新增斜杠令牌和字母数字匹配功能,同时移除本地匹配器分支。 - **macOS 配对节点终端:** 从嵌入式节点主机广播双向 Codex 和 Claude 终端恢复命令,并通过原生应用桥接转发交互式输入和取消操作。(#107335) 感谢 @vincentkoc。 - **控制面板 UI 目录终端:** 在 Gateway 或配对节点主机上,于原生 CLI 中打开符合条件的 Codex 和 Claude Code 会话,支持查看器与终端偏好设置、已验证的恢复命令以及交互式 PTY 中继。感谢 @vincentkoc。 - **控制面板 UI 编码目录:** 在侧边栏的 Claude Code 和 Codex 会话目录标题旁显示提供商品牌图标。感谢 @vincentkoc。 - **技能工坊历史审查:** 新增手动扫描功能(按最新优先),逐步搜索较旧的实质性工作以获取保守的技能想法,仅存储 SQLite 游标元数据,即使禁用自主自学,也会将最多三个结果保留为待处理提案。(#106182) 感谢 @vincentkoc 和 @shakkernerd。 - **SQLite 快照:** 新增 `openclaw backup sqlite create|list|verify|restore` 命令,用于生成紧凑、已验证的全局及单代理数据库工件,并支持仅针对全新目标的恢复。感谢 @giodl73-repo。 - **GPT-5.6 Ultra 与运行时切换:** 在 OpenClaw 和 Codex 引擎中支持 Sol、Terra 和 Luna;通过 `/model` 命令和回退机制保持模型、运行时和思维选择的原子性;并为两个框架添加实时矩阵覆盖。感谢 @anyech 和 @vincentkoc。 - **OpenAI GPT-5.6 默认设置:** 全新 API 密钥设置使用 `openai/gpt-5.6`(Sol 别名),全新 Codex/OAuth 设置使用精确的 `openai/gpt-5.6-sol`,在两个运行时中默认将 Sol 设为中等推理,并保留现有的主模型、回退模型、别名及显式 GPT-5.5 选择。(#103234) 感谢 @shakkernerd 和 @vincentkoc。 - **Meta 提供商:** 新增内置 `muse-spark-1.1` 模型支持,包含 Responses API 流式传输、工具调用、加密推理回放、引导流程,以及独立的 npm/ClawHub 分发。感谢 @HamidShojanazeri 和 @vincentkoc。 - **Android 聊天代理选择器:** 允许直接在实时聊天屏幕切换活动代理,同时保持聊天、Talk 模式和主画布处于同一规范会话中。感谢 @bcperry 和 @joshavant。 - **Gateway 主机状态:** 在控制面板 UI 设置中显示已连接 Gateway 的主机名、网络地址、操作系统、运行时、运行时间、CPU、内存和磁盘详情。感谢 @vincentkoc。 - **iOS 离线聊天:** 从受保护的、按 Gateway 限制的缓存中预渲染最近会话和规范转录文本,离线时禁用发送功能,并在重置配对时清除缓存的对话文本。(#100194) 感谢 @vincentkoc。 - **Slack 进度指示器:** 默认使用 Slack 原生的助手线程状态和轮播加载消息,同时保持确认反应静态;生命周期反应更新现在需要 `messages.statusReactions.enabled: true`。感谢 @vincentkoc。 - **控制面板 UI Talk 控制:** 将语音、模型、灵敏度及其他实时默认设置保留在 设置 → 通信 → Talk 中,并使用编辑器麦克风光标选择任意浏览器音频输入。(#101046) 感谢 @vincentkoc。 - **控制面板 UI 会话工作区快捷键:** 使用 ⇧⌘B 展开或折叠活动聊天窗格的会话工作区栏,且不更改主应用侧边栏或独立详情与 Canvas 预览面板。感谢 @shakkernerd 和 @vincentkoc。 - **控制面板 UI 设置快捷键:** 使用 ⇧⌘, 打开设置,同时保留浏览器默认的 ⌘, 快捷键不变。感谢 @shakkernerd。 - **控制面板 UI 聊天布局:** 将对话转录文本在编辑器轴线上居中,在同一可读框架内保持助手和工具输出在左侧、用户气泡在右侧,并保留自定义消息宽度覆盖。(#104474) 感谢 @shakkernerd、@vincentkoc 和 @zw-xysk。 - **控制面板 UI 编辑器页脚:** 将聊天设置芯片和模型控件居中放置在分隔线与卡片边缘之间,而非固定在分隔线上。(#105866) - **控制面板 UI 助手操作:** 保持助手名称和时间在最前,同时将悬停操作放置在它们左侧旁边,而非最远端。感谢 @shakkernerd。 - **Cron 模型选择:** 在控制面板 UI 快速创建中选择代理回合模型,并在 Cron 任务行及详情中显示已配置或默认模型。感谢 @ly85206559、@joshavant 和 @vincentkoc。 - **控制面板 UI GitHub 预览:** 在悬停和键盘聚焦卡片中显示问题和拉取请求的状态、标题、作者、活动、评论及变更统计。 - **日志簿工作日志:** 新增默认禁用的内置插件,将配对节点屏幕快照转化为私有时间线、每日站会及基于时间线的问答,显示在插件贡献的控制面板 UI 标签页中。感谢 @vincentkoc。 - **控制面板 UI 消息上下文:** 悬停或激活时从时间戳显示单条消息的 token、上下文和模型详情,替代显示独立的上下文按钮。 - **控制面板 UI 会话标题:** 使用对减少运动友好的悬停动画显示截断的最近会话名称。 - **控制面板 UI 侧边栏导航:** 显示一组小型可自定义的固定目标,将剩余页面归入“更多”,将设置移至页脚,并在浏览器中持久化侧边栏自定义设置。感谢 @vincentkoc。 - **控制面板 UI 侧边栏用量:** 从展开的侧边栏中移除提供商用量配额行,同时保持用量详情在聊天编辑器和用量页面中可用。感谢 @shakkernerd 和 @vincentkoc。 - **Android 聊天代码高亮:** 对受限于边界且感知主题的 Kotlin、Swift、TypeScript、JavaScript、Python、Bash 和 JSON 代码块进行语法着色渲染,同时为未知、部分或过大的代码块保留纯文本渲染。 - **网关 TTS 播放:** 新增一个操作者作用域的 `tts.speak` RPC,为远程客户端返回已配置提供商的语音作为内联整段音频。 (#100708) - **工作板分发上限:** 新增请求作用域的 `--max-starts` 覆盖参数,同时保留默认上限、顺序启动和每个所有者限一张卡片的保护机制。 (#100174) 感谢 @souvikDevloper、@Souvikalp 和 @jwest75674。 - **插件安装来源警告:** 在 CLI 和聊天安装中,对任意可执行插件源要求显式的 `--force` 确认;保持受信任的 ClawHub、内置、官方目录和跟踪更新流程顺畅无阻;并将 Crestodian 安装限制在受信任源。感谢 @jesse-merhi 和 @vincentkoc。 - **托管人丰富设置控件:** 将网关的已清理向导步骤渲染为原生下拉选择、多选、文本字段和掩码密钥输入,同时保留纯文本聊天兼容性。 (#114631) 感谢 @jesse-merhi 和 @shakkernerd。 ### 修复 - **Codex 子代理扇出:** 立即结算成功的终端产出,并保留请求者所有权,使已完成子代理能可靠地恢复其父代理。感谢 @vincentkoc。 - **控制面板 UI 会话伴侣:** 在回答前加载受限的可见会话上下文,保持不可用问题可重试,并防止私有伴侣引用包装器显示为答案。修复 #120746 感谢 @shakkernerd 和 @maweibin。 - **Telegram 实时位置:** 通过频道中立的 `message_received` 钩子暴露初始、移动中和已停止的实时位置更新,且编辑操作不会启动代理回合。 - **更新器插件收敛:** 阻止插件医生预检查在更新器插件扫描前安装已配置的插件,同时保留最终的插件后迁移检查,并防止更新阶段的环境状态泄漏到新的医生进程中。感谢 @vincentkoc。 - **控制面板 UI 浏览器标签页标识:** 确保在原地导航和标签页重排序过程中,选中标签页的样式、无障碍属性、焦点、地址和页面快照保持一致。修复 #120745 感谢 @shakkernerd 和 @vincentkoc。 - **控制面板 UI 暂存附件:** 在同标签页路由和窄分割窗格重新挂载期间保留未发送的图片、文件、粘贴的图片和大段粘贴文本,同时将窗格关闭、不匹配的窗格/会话/网关重新挂载、应用关闭和硬刷新作为清理边界。修复 #121519 感谢 @shakkernerd 和 @vincentkoc。 - **控制面板 UI 浏览器批注:** 将标记的截图和生成的页面上下文保留在结构化编辑器卡片中,在移除或替换批注时保留用户撰写的草稿,在同标签页路由和活跃分割窗格重新挂载期间保留完整的未发送批注包,并提供受限的撤销功能且不会将已移除的上下文恢复到另一个会话中。修复 #120744 感谢 @shakkernerd 和 @vincentkoc。 - **控制面板 UI 个人资料头像刷新:** 通过变更响应和实时在线状态传递规范内容修订,使快速替换能刷新所有已连接浏览器,避免陈旧缓存回滚。感谢 @shakkernerd 和 @vincentkoc。 - **控制面板 UI 外观无障碍:** 将不可用的自定义主题卡片作为导入命令进行播报,同时保留可选主题和文本大小的选中状态语义。感谢 @shakkernerd。 - **控制面板 UI 仪表板索引刷新:** 在会话更改、代理作用域更新和网关重连后保持已打开的仪表板页面为最新,同时在替换数据加载完成前保留最后一个安全列表。修复 #120602 感谢 @shakkernerd 和 @vincentkoc。 - **浏览器扩展中继安全:** 要求规范的 64 字符中继密钥和安全 WebSocket 配对 URL,并在每次执行具有权限的现有标签页命令前,在扩展边缘重新检查 OpenClaw 标签组同意状态。感谢 @vincentkoc 和 @joshavant。 - **控制面板 UI 调试诊断:** 在刷新失败时保持上次正常状态、健康、模型和心跳快照可见,在快照面板中显示失败信息,将其与手动 RPC 状态隔离,并防止旧的手动调用覆盖新的调用。感谢 @shakkernerd、@vincentkoc 和 @maweibin。 - **控制面板 UI 只读偏好设置:** 将个人偏好设置编辑限制在浏览器本地,不尝试未经授权的配置写入或声称服务器同步,保留离线意图以供后续授权重连,并在本地重置时恢复当前服务器值。感谢 @shakkernerd 和 @vincentkoc。 - **控制面板 UI 所有者移交:** 为通过主机发布的仪表板和图形化引导链接打开的浏览器提供持久的管理员访问权限,包括从受限凭据在同浏览器中恢复,同时限制通用、Telegram、移动端和普通范围升级路径。感谢 @shakkernerd 和 @vincentkoc。 - **控制面板 UI 代理与技能权限:** 根据当前网关方法目录和操作者作用域限制代理、技能、技能工坊和延迟变更分发,同时保留只读浏览和旧版网关兼容性。修复 #119176 感谢 @shakkernerd 和 @vincentkoc。 - **引导式设置跳过 UI 路由:** 使 `openclaw onboard --skip-ui` 和 `openclaw setup --skip-ui` 保持在引导式设置流程中,同时跳过浏览器和终端移交,而不是静默切换到经典向导。感谢 @shakkernerd。 - **Telegram 持久入口:** 在重放期间保留身份验证前的控制通道所有权,并确保每遍仅尝试处理每个排空快照行一次,防止定向命令导致队列空转并阻塞轮询关闭。感谢 @vincentkoc。 - **控制面板 UI 操作员会话权限:** 尊重 Gateway 通告的操作员作用域,用于创建新线程、线程管理、检查点和共享控制,同时保留只读导航和旧版 Gateway 兼容性。修复 #117786 感谢 @shakkernerd 和 @vincentkoc。 - **控制面板 UI 延迟会话命令:** 将斜杠命令变更和已确认的重置绑定到其原始 Gateway,在异步工作后重新检查当前操作员作用域,并通过队列传递保留重置授权,使重连无法针对替换连接。感谢 @shakkernerd 和 @vincentkoc。 - **控制面板 UI 归档会话删除:** 从会话页面行和混合选择操作发送受归档限制删除请求,使具有写入作用域的操作员可以删除归档线程,同时活动会话删除仍仅限管理员。感谢 @shakkernerd、@joshavant 和 @vincentkoc。 - **控制面板 UI 命令恢复:** 将延迟分离和即时命令失败限制在其提交的会话范围内,为该面板保留失败的草稿和附件,而不覆盖活动会话。修复 #116846 感谢 @shakkernerd 和 @vincentkoc。 - **Microsoft Teams 消息工具回复:** 防止自动实时预览重复发送已投递到当前 Teams 对话的消息,同时保留独立的后续文本和跨对话发送。修复 #116397。(#116398) 感谢 @a-tokyo、@vincentkoc 和 @maweibin。 - **Buzz 插件打包:** 将实时 QA 运行程序保留在随附的 QA 运行程序 SDK 表面,并移除过时的包 shrinkwrap,使独立 npm 和 ClawHub 包构建使用当前的主机导出和依赖解析。感谢 @shakkernerd 和 @vincentkoc。 - **控制面板 UI 共享连接隔离:** 在切换 Gateway 或账户后丢弃过时的可见性和成员变更结果,使旧连接的刷新和错误无法更新替换连接。修复 #116800 感谢 @shakkernerd 和 @vincentkoc。 - **控制面板 UI 会话刷新:** 在后续的 Gateway 事件失效期间保留显式队列的列表过滤器和后台数据填充,同时保持追加分页后跟随标准刷新的机制。修复 #116697 感谢 @shakkernerd 和 @vincentkoc。 - **Gateway 设备时钟偏差:** 在 TypeScript、控制面板 UI、浏览器扩展、Android、Apple、Linux 和 watchOS 客户端中,使用 Gateway 颁发的挑战时间戳对设备证明进行签名,使错误的本地时钟不再阻止身份验证,同时保留对预挑战控制面板 UI 服务器和旧版 watch-node HTTP 端口的无挑战兼容性,并继续强制执行 nonce 绑定和新鲜度检查。修复 #103455 感谢 @joshavant 和 @vincentkoc。 - **控制面板 UI 动态深度链接:** 在发布实际的 agent、session、dashboard、Workboard、Memory 和 Plugins 路径时复用初始路由加载器结果,避免启动期间冗余的路由加载器工作。感谢 @shakkernerd 和 @vincentkoc。 - **Linux Gateway 服务所有权:** 当同一 Gateway 单元名称已在系统范围内被占用或无法验证时(包括 `--force`),拒绝用户范围的 systemd 发布和激活,并提供可操作的恢复指导,而不是创建导致重启循环的双重管理器。修复 #116129 感谢 @vincentkoc 感谢 @obviyus 和 @vincentkoc。 - **macOS 远程隧道生命周期:** 防止已取消或被取代的重试退避机制重新创建 SSH 隧道,并在执行者挂起时加入其他调用者启动的隧道创建。 - **macOS 位置权限请求:** 合并并发提示以确保每个调用者都能恢复,并阻止已取消的超时打开设置或完成较新的请求。感谢 @vincentkoc。 - **macOS 语音唤醒取消:** 立即停止已被取代的静音、捕获和识别器重启计时器,使已取消的工作无法重启麦克风管道或保持过时的监控循环存活。 - **会议节点音频保留:** 为 Google Meet、Teams 和 Zoom 节点托管会话限制捕获的音频和终端保留时间,使关闭操作幂等,并在优雅关闭窗口后强制终止停滞的桥接进程。感谢 @vincentkoc 和 @obviyus。 - **控制面板 UI 更新协调:** 在断开连接期间保留未解决的管理更新请求,当替换 Gateway 版本被证明成功时予以接受,否则显示明确的恢复指导,而不是信任不相关的缓存更新结果或静默失败。修复 #116075 感谢 @shakkernerd 和 @vincentkoc。 - **控制面板 UI 模型就绪:** 当无可选择模型时将 AI 设置置于首位,区分已登录凭据与就绪提供商,并将没有暴露模型的账户直接路由到提供商恢复流程,而不是以禁用的默认控件开头。感谢 @shakkernerd 和 @vincentkoc。 - **控制面板 UI Talk 会话隔离:** 在聊天会话更改、Gateway 断开或面板销毁之前停止活动的实时 Talk 媒体并注销其回调,使上一会话的音频、转录、摄像头和状态更新无法泄漏到下一个视图中。感谢 @shakkernerd 和 @vincentkoc。 - **控制面板 UI 实时工具调用:** 仅从已完成的响应中执行 OpenAI WebRTC 工具,绑定保留的调用标识和 UTF-8 参数,并忽略临时或延迟的重复事件,使长 Talk 会话无法无限增长工具状态。感谢 @vincentkoc 和 @maweibin。 - **Gateway 重连事件排序:** 为每个替换 WebSocket 重置共享 TypeScript 客户端的外部事件序列基线,防止间隙恢复在控制面板 UI、TUI、SDK 和浏览器扩展客户端之间比较不相关的连接代际。感谢 @shakkernerd 和 @vincentkoc。 - **Skill Workshop 离线应用:** 在独占 Gateway 启动所有权下,保留升级后的无配置本地提案应用,同时在 CLI 凭据不可用时,确保运行中的 Gateway 快照失效处理为 fail-closed。感谢 @vincentkoc。 - **macOS 与控制界面键盘导航:** 允许 Tab 键遍历嵌入式 Dashboard、浏览器和 Canvas 网页视图中的链接与控件,并确保在拉丁文以外的键盘布局下快捷键仍可使用,且不会在输入法(IME)组合输入时触发。 - **控制界面会话差异:** 隐藏未更改的签出修改以及线程启动时已存在的未跟踪文件,使差异面板仅显示该会话涉及的文件。修复 #115628。感谢 @vincentkoc。 - **代码模式小模型修复:** 为格式错误的预分发 `exec` 调用提供一次有界的修正回合,暴露类型化的故障阶段与桥接分发证据,并在嵌套工具启动后停止重试。修复 #115311。感谢 @vincentkoc。 - **共享状态损坏恢复:** 在证实发生读写损坏后,仅驱逐确切的缓存 SQLite 所有者,使修复后的数据库无需重启 Gateway 即可恢复,同时保持调用方注入的处理句柄不受影响。修复 #114269。感谢 @rizquuula 和 @vincentkoc。 - **开发频道更新:** 在全新的 CLI 进程中完成包到 Git 的切换,即使源 SHA 和版本元数据未更改,也能防止全局包根目录变更后加载过期的哈希块。感谢 @joshavant 和 @vincentkoc。 - **Parallels 发布冒烟测试:** 在 Parallels 中保留 Windows 安装程序的重启结果,等待 WSL MSI/默认版本就绪,强制显式停止测试拥有的 Gateway,并在安装通道前重置 Linux 包、配置和缓存状态,从而防止虚假的先决条件、安全门控和过期配置失败。感谢 @vincentkoc、@joshavant 和 @shakkernerd。 - **OpenAI Realtime Talk 认证:** 移除非公开的 Codex OAuth 实时回退机制,要求 Talk、语音通话和 Discord 实时语音必须使用 OpenAI Platform API 密钥,防止仅支持 OAuth 的 Gateway 广告被实时服务拒绝的浏览器会话。修复 #115021。感谢 @shakkernerd、@vincentkoc、@maweibin 和 @joshavant。 - **Codex 原生子代理交接:** 指示 Codex 框架回合使用 `sessions_yield` 进行后续回合的子代理完成交付,将 `wait_agent` 保留给立即阻塞的同回合步骤,并在无法 yield 时省略该指导。修复 #115443。感谢 @shakkernerd 和 @vincentkoc。感谢 @bek91、@vincentkoc 和 @shakkernerd。 - **Codex 原生控件:** 停止将有效的思考/快速运行时控件误分类为提供商覆盖,使 Codex 路由保留其原生控件,同时提供商原生对象和无效值保持 fail-closed。感谢 @VACInc、@vincentkoc 和 @shakkernerd。 - **状态快照验证:** 在独立进程中运行 SQLite 快照验证,使工作线程的文件关闭操作不再丢失 Gateway 的 POSIX WAL 锁,从而消除虚假的 WAL 缺失和 I/O 错误。感谢 @VACInc、@vincentkoc 和 @zw-xysk。 - **模型策略下的回复延迟:** 每次模型选择运行复用一份不可变的插件元数据快照,而非重复插件发现过程,从而在配置模型策略时缩短回复延迟。感谢 @VACInc、@vincentkoc 和 @shakkernerd。 - **停滞后的 Claude 缓存恢复:** 通过从最后一个回合前的检查点分叉来恢复停滞的 Claude CLI 会话,使原生缓存连续性得以保持且无需重复待处理提示,并为不支持检查点的 CLI 提供冷重新播种回退。感谢 @VACInc、@vincentkoc 和 @obviyus。 - **控制面板 UI 初始提示:** 通过将进程本地交接绑定到逻辑浏览器客户端(而非每次握手的 hello 快照),确保在 Gateway 传输重连期间已接受的初始消息保持可见。感谢 @vincentkoc。 - **Gateway 执行拒绝回退:** 当 shell 展开参数导致白名单命令无法生成可执行的执行计划,且有效策略为 `ask=off` 配合 `askFallback=deny` 时,立即阻断并失败,而不是注册一个只能超时的审批。修复 #113191 感谢 @shakkernerd 和 @vincentkoc 感谢 @jrvanwinkle 和 @vincentkoc。 - **Cron 本地提供程序预检:** 将受保护的获取截止时间报告为有界的预检超时,保留具体的嵌套非超时错误,并将失败原因带入回退警告中。感谢 @shakkernerd、@vincentkoc 和 @zw-xysk。 - **Buzz 生命周期恢复:** 将中继和房间角色故障隔离到 Buzz 账户重连循环中,防止订阅清理终止 Gateway,并在成功重连后清除过期的通道错误。感谢 @shakkernerd 和 @vincentkoc。 - **Buzz 独立发送:** 允许 `openclaw message send` 及其他非 Gateway 进程打开有界的认证中继连接,发布消息并干净关闭,同时正在运行的 Gateway 继续复用其活动连接。感谢 @shakkernerd。 - **Buzz 在线状态:** Gateway 连接时发布非阻塞的在线状态,在不重叠心跳写入的情况下刷新它,并让 Buzz 的最终连接清理在重连和多个 Gateway 实例间提供准确的离线状态。感谢 @shakkernerd 和 @vincentkoc。 - **Buzz 机器人档案:** 持久化可选的 Buzz 账户名称,作为机器人显示名称发布而不延迟 Gateway 启动,保留现有档案元数据,并包含配置的拥有者证明,以便 Buzz 显示已验证的来源。感谢 @shakkernerd、@vincentkoc 和 @joshavant。 - **Buzz 代理身份:** 在 Buzz 的代理目录中注册已连接的机器人,而不覆盖现有档案策略,以便后续的房间邀请保留 Bot 角色,而不是将身份降级为普通成员。感谢 @shakkernerd。 - **Buzz 引导式设置:** 自动复用或生成机器人身份,在回退到保留身份的“重试/返回”控件前等待 Bot 角色批准,选择单房间默认值,保留高级访问设置,默认接受普通房间消息而不依赖编辑器提及,在不发送测试消息的情况下验证设置,直接完成目标频道设置,从路由的代理身份派生新的机器人档案,并从 Buzz 的实时房间名单授权全新设置而无需逐条中继查询。感谢 @shakkernerd、@vincentkoc 和 @joshavant。 - **Buzz 可恢复设置:** 持久化暂停的机器人身份,就地恢复禁用的设置,在不轮换密钥的情况下重试认证房间发现,要求验证的 **Bot** 角色房间成员资格而不是接受未验证的房间 UUID,并为 Buzz 桌面无法发现的生成身份提供准确的 CLI 授权指导。感谢 @shakkernerd。 - **Buzz 入站授权:** 在代理分发前应用共享房间发送者和命令授权,允许已授权的控制命令绕过提及门控,并在传输过程中保留 Buzz 的线程/回复标识符。感谢 @shakkernerd 和 @vincentkoc。 - **ClickClack 分离源设置代码:** 消费版本化的精确声明端点而不追加第二个声明路径,验证返回的规范 API 基础路径,保留私有 API 传输覆盖,并保持旧版设置 URL 可用。修复 #111919 感谢 @shakkernerd 和 @vincentkoc。 - **独立插件文件:** 允许在 `plugins.load.paths` 中明确列出的无清单文件通过配置验证,并在多个文件共享目录时独立加载。感谢 @vincentkoc。 - **控制面板 UI 终端错误消息:** 保留以 `Error:` 或警告标记开头的纯文本助手输出,而不是将文本前缀视为合成失败。感谢 @shakkernerd、@vincentkoc 和 @zw-xysk。 - **通道出站回声抑制:** 在共享入站准入时丢弃最近发出的平台消息和源身份,并将 Discord 线程解绑迁移出通道本地过期状态,防止延迟的 webhook 副本重新进入代理。感谢 @vincentkoc。 - **Reef 启动协调:** 在启动期间限制可重试的中继故障,避免主管重启循环,同时保留确定性错误和取消处理。感谢 @Yigtwxx 和 @vincentkoc。 - **Codex 过期会话回复:** 在另一个 Gateway 接管 Codex 会话生成后停止模型回退,并传递安全重试通知,而不是静默放弃消息。感谢 @vincentkoc、@shakkernerd 和 @obviyus。 - **有界输入与提供程序响应:** 限制粘贴的认证/配置输入,并在生成媒体下载、轮询 JSON 和失败响应详情上强制执行墙钟截止时间,以防止过大或缓慢滴落的流超出资源预算(感谢 @Pick-cat)。感谢 @vincentkoc。 - **LINE 持久化入站媒体:** 通过持久化入口重试瞬态内容准备、网络和响应流故障,以便在附件保存前不确认仅媒体消息。感谢 @edenfunf、@vincentkoc 和 @shakkernerd。 - **云工作派生工作区缓存:** 从出站同步和入站协调中对称排除 Python 缓存、依赖树和 macOS 元数据,以便本地缓存重写不会阻碍后续的云端结果或工作器回收。感谢 @vincentkoc。 - **Codex 模型状态诊断:** 当配置的 Codex 路由的 harness 插件被禁用、缺失或隔离时,将其报告为不可用,同时保留独立的凭证结果,并使 `models status --check` 命令失败,而不是静默地将回退执行视为健康状态。感谢 @shakkernerd 和 @vincentkoc。 - **网关控制平面速率限制:** 采用按方法划分的桶,预算为每分钟 30 次,以确保交互式管理员写入保持响应,同时保留对失控循环的保护。 - **外部监督器重启健康检查:** 仅在替换网关锁与监听器 PID 一致时才接受设备身份策略关闭,防止 OCM 管理的重启在成功交接后超时。感谢 @shakkernerd、@vincentkoc 和 @joshavant。 - **ACPX 清理进程检查:** 限制主机进程表读取,防止停滞的 `ps` 调用阻塞网关启动或会话清理,同时保留失败关闭(fail-closed)的权限检查。感谢 @Alix-007 和 @vincentkoc。 - **Cron 生命周期冲突重试:** 在计划任务、手动执行和启动恢复的运行中保留执行阶段的重试决策,以防止执行后的声明冲突重放已完成的消息或工具。修复 #108428 感谢 @yetval 和 @vincentkoc。 - **Discord 网关元数据超时:** 将现有的查找超时贯穿 DNS 和代理预检、请求头及响应体,使停滞的网关启动能够干净地中止。感谢 @hugenshen、@vincentkoc 和 @shakkernerd。 - **控制 UI 云会话思考:** 在“新建会话”模型选择器中暴露推理级别,并在云调度前持久化所选级别。感谢 @vincentkoc。 - **iOS 全新安装设置:** 在 Keychain 清理前原子化擦除已使用的设置凭证,使延迟的项目删除不再断开已成功配对的设备。修复 #107591 感谢 @dagmarjeeves-lab 和 @vincentkoc。 - **Tlon SSE 连接清理:** 在 HTTP 响应失败和流打开被拒绝后解除打开超时,使重连尝试不会留下过期的定时器。感谢 @hugenshen 和 @vincentkoc。 - **LINE 回复令牌媒体类型:** 在入站回复中尊重视频和音频元数据,与主动发送共享标准媒体构建器,并改为显式失败,而不是记录仅含媒体的空交付。感谢 @edenfunf 和 @vincentkoc。 - **Mattermost WebSocket 连接超时:** 限制打开握手,使停滞的 TCP 对等节点无法无限期阻塞通道启动,并在超时后恢复重连控制。感谢 @hugenshen、@vincentkoc 和 @obviyus。 - **队列 TTS 重试:** 在入队前将本地出站媒体复制到队列专属存储中,使语音回复能够抵御生产者临时清理和重启恢复,在重试退避期间保留引用的工件,并在一天后清理未引用的队列临时文件。修复 #108501 感谢 @masatohoshino、@vincentkoc 和 @obviyus。 - **飞书应用注册超时:** 通过受保护的获取边界将 OAuth 设备注册请求限制为 10 秒,使设置过程不会因停滞的响应头而无限期挂起。感谢 @hugenshen、@shakkernerd 和 @vincentkoc。 - **LINE 控制命令提及:** 在剥离提及前检测已授权的斜杠命令,使内联群聊和私聊控制能够保留原始入口元数据。感谢 @edenfunf 和 @vincentkoc。 - **飞书文档图片读取:** 使用所选账户超时限制远程文档图片头与停滞的响应体,通过插件的 MDAST 管道解析文档 Markdown,保留图片/块对齐方式,并在创建空图片块前拒绝失败的上传输入。感谢 @Alix-007 和 @vincentkoc。 - **ClawHub 注册表读取:** 与其他临时网关故障一起重试受限的 HTTP 500 响应,使多包发布扫描能够容忍孤立的注册表错误。感谢 @vincentkoc。 - **Slack Socket Mode 健康检查:** 当 `auth.test` 失败或配置的机器人令牌解析为没有 `bot_id` 的用户时,将已连接的 Socket Mode 传输报告为降级,同时保留健康的企组织安装。感谢 @zw-xysk 和 @vincentkoc。 - **Synology Chat 响应限制:** 限制用户列表响应读取,立即停止超大流,并在 NAS 超出支持的消息信封时保留过期的缓存身份。感谢 @zw-xysk 和 @vincentkoc。 - **使用日期范围:** 将不带时间戳的旧版转录行从有限会话范围中排除,但在所有时间总量中保留它们,并在提供新语义前重建旧版使用缓存。修复 #89709 感谢 @TurboTheTurtle、@shakkernerd 和 @vincentkoc 感谢 @syfvb、@shakkernerd 和 @vincentkoc。 - **LINE 群聊历史竞态:** 在活跃提及轮次期间接收的背景群聊消息保留至下一轮使用,同时仅精确消费一次轮次前的快照。感谢 @edenfunf 和 @vincentkoc。 - **Mattermost 进度命令详情:** 在通道配置验证和打包元数据中接受文档记录的 `streaming.preview.commandText` 和 `streaming.progress.commandText` 模式。感谢 @shakkernerd 和 @vincentkoc。 - **1Password 授权交接:** 将绑定 nonce 的待处理审批持久化到共享插件状态中,使跨代理实例的钩子和工具执行保持单次使用并失败关闭。感谢 @vincentkoc 和 @obviyus。 - **控制 UI 聊天转录:** 在会话和面板返回时保留已加载的历史记录,限制自动回滚加载,对长转录进行虚拟化,保留隐藏的本地运行边界,并防止前置内容、流式传输和响应式布局出现闪烁或跳动。感谢 @shakkernerd 和 @vincentkoc。 - **Codex 动态工具结果:** 对任意生命周期元数据使用共享的工具结果失败契约,防止成功的 Skill Workshop 结果被显示并持久化为失败调用。修复 #107684 感谢 @shakkernerd、@vincentkoc、@maweibin 和 @obviyus。 - **Codex `/status` 上下文时效性:** 从发出 `rawResponse/completed` 的 Codex 应用服务器获取精确的每次响应用量;当精确用量不可用或被省略时,保持上下文为未知状态,而非复用累积的总用量。感谢 @wuqxuan 和 @vincentkoc。 - **Codex 恢复权限:** 将存储的每次会话审批和沙箱覆盖应用到主要恢复的 harness 轮次中,使 `/codex permissions` 在后续消息和网关重启后依然生效。感谢 @shakkernerd。 - **嵌套资源忽略规则:** 在技能和资源发现期间,正确处理嵌套忽略文件中的无斜杠模式及转义的字面量感叹号。感谢 @moguangyu5-design 和 @vincentkoc。 - **代理绕过优先级:** 一致遵循 Undici 的行为,允许空的小写 `no_proxy` 值覆盖大写 `NO_PROXY`,并复用规范匹配器用于 Telegram 回退选择。感谢 @vincentkoc。 - **Tokenjuice 执行压缩:** 避免在压缩后的中间件元数据中保留原始命令输出,防止大型成功压缩操作因触发中间件详情大小限制而失败。感谢 @vincentkoc。 - **Agent Git 包标识:** 在解析托管仓库前剥离引用(refs)并拒绝遍历路径段,使 GitLab 分支引用能正确解析为规范的托管安装路径。感谢 @vincentkoc。 - **Tlon 自定义 S3 上传:** 将存储端点通过 AWS SDK 的原生解析器传递,使自定义 S3 兼容上传不再在预签名前失败。 - **Signal 活跃运行控制:** 在活跃轮次期间保持授权停止、状态、审批和队列读取控制的响应能力,同时在规范会话准入中保留普通和有状态轮次,并在停止时取消所有待处理的群发器通道。感谢 @arduano 和 @vincentkoc。 - **Agent 认证存储锁:** 在 `proper-lockfile` 报告锁被破坏后,正常暴露释放失败信息,同时避免冗余的释放尝试。感谢 @vincentkoc 和 @joshavant。 - **配对节点会话目录:** 授权捆绑的 Anthropic 和 Codex 目录请求从 Control UI 读取流程中调用其只读节点命令,恢复远程 Claude/Codex 行及终端恢复功能。修复 #107406 感谢 @vincentkoc。 - **沙箱重建确认:** 将 Clack 取消操作视为拒绝,使 Ctrl-C 无法继续执行容器移除操作。 - **Microsoft Teams HTML 文本:** 在引用消息和 Graph 获取的消息中一致解码 HTML5 实体,同时保留字面转义的实体文本。感谢 @vincentkoc。 - **ClawHub 插件 API 范围:** 将每个支持的比较符委托给 `semver` 处理,使波浪号、部分通配符和预发布 caret 边界正确,同时保留 OpenClaw 版本规范化及现有的受限范围语法。(#106877) 感谢 @vincentkoc。 - **Web Readability 相对链接:** 使用请求 URL 初始化解析后的文档,使文章链接正确解析,同时移除插件的重复懒加载外观层。(#106860) 感谢 @vincentkoc 和 @shakkernerd。 - **浏览器自动路由:** 当隐式选择的浏览器节点报告其控制主机不可达时,回退到 Gateway 主机,同时保留显式节点固定及歧义操作失败处理。感谢 @vincentkoc 和 @shakkernerd。 - **Discord 语音参与者上下文:** 维护实时 Gateway 语音状态名单,并在授权的语音 Agent 轮次中包含当前频道参与者,使 Agent 能够回答在场人员。感谢 @vincentkoc 和 @shakkernerd。 - **OC Path JSONC 插入:** 通过 `jsonc-parser` 修补对象和数组插入操作,使注释、尾随逗号和 CRLF 格式得以保留。(#106847) - **Windows winget 安装:** 当 winget 在机器 PATH 更新生效前安装 Node.js 时,在当前 PowerShell 会话中继续执行,避免虚假的 `Node.js not found` 失败。(#106862) 感谢 @vincentkoc。 - **Control UI 实时 Talk 反馈:** 为每个麦克风传输请求浏览器回声消除、降噪和自动增益控制,并将 PCM 捕获处理器通过零增益汇流排连接,防止麦克风输入在本地播放。感谢 @vincentkoc。 - **Agent 源回复恢复:** 保留通过 Code Mode 执行的消息发送的当前聊天交付证据,防止成功回复触发冗余重试并误导交付失败诊断。感谢 @vincentkoc 和 @joshavant。 - **Gateway 进程内重启:** 在重建运行时准入前清除过期的 SIGUSR1 重启状态并恢复已准备的主机挂起,防止重启冷却期或暂停调度泄漏到下一个生命周期。感谢 @vincentkoc 和 @shakkernerd。 - **ClickClack 持久化媒体交付:** 将媒体回复路由至必需交付通道,在重试间复用所有者范围的上传和消息 nonce(随机数),在不重新读取源媒体的情况下修复持久化附件状态,当旧版 ClickClack 服务器无法证明未知发送时安全拒绝,并使用所选提供商和模型的运行时输出预算替代频道级令牌上限。感谢 @jjjhenriksen、@shakkernerd 和 @vincentkoc。 - **Deepgram 实时自定义端点:** 使用安全保密的错误信息验证语音通话流媒体基础 URL,保留显式的 `ws://` 和 `wss://` 端点,并将 HTTP 方案映射到匹配的 WebSocket 传输协议,适用于专用和自托管部署。(#105334) 感谢 @dwc1997、@vincentkoc 和 @zw-xysk。 - **Control UI 新会话重连:** 重新发现 Agent、节点、仓库分支和文件夹浏览器状态,刷新派生工作区,拦截未验证设备,并在 Gateway 客户端替换后阻止歧义重试,同时保留已输入的任务和显式选择。修复 #106372 感谢 @vincentkoc 和 @shakkernerd。 - **macOS 远程节点就绪:** 从节点 hello 快照中获取主会话密钥,而不是在节点准入期间打开操作员连接,防止远程隧道恢复导致 Computer Use 和节点执行卡在生命周期转换中。感谢 @vincentkoc。 - **Claude CLI 上下文预算:** 通过将有效限制传递给 Claude Code 的原生自动压缩器,并在 OpenClaw 会话状态中持久化相同的已准备预算,以遵守 Anthropic 模型和每个代理的 `contextTokens` 限制。修复 #80933。(#93198) 感谢 @mushuiyu886、@gorkem2020、@vincentkoc 和 @shakkernerd。 - **会话记录读取失败:** 传播来自流式 JSONL 会话读取的权限和 I/O 失败,而不是将不可读的会话记录视为空。感谢 @zenglingbiao、@shakkernerd 和 @vincentkoc。 - **重启哨兵诊断:** 报告 SQLite 读写和旧文件清理失败,同时保留尽力而为的重启恢复行为。感谢 @zenglingbiao、@wendy-chsy、@vincentkoc 和 @shakkernerd。 - **原生应用连接与中继可靠性:** 在 Activity 重建期间保持 Android 断开连接状态,在不打开权限提示的情况下使远程相机命令失败,在能力变更后刷新移动节点注册,暴露 iOS 引导连接失败,在会话切换时取消过期的 Talk 所有者,拒绝无效的 Watch 确认,保留启动期间接收到的 Watch 事件,并防止较旧的代理概览请求替换较新的网关状态。感谢 @vincentkoc 和 @joshavant。 - **网关源码监听:** 在启动 tmux 监听器之前,将配置的端口从已安装的服务中分离,保留失败的窗格以进行附加/捕获,并在托管网关旁边保留显式的备用端口监听。感谢 @vincentkoc。 - **Claude CLI 最大轮次诊断:** 将终端最大轮次结果与 OpenClaw 和 Claude 会话上下文一起保留,当工具操作可能已运行时发出警告,并阻止对可能产生副作用的轮次进行不安全的认证配置或模型重放。(#94130) 感谢 @zhangguiping-xydt、@tdrose01、@vincentkoc 和 @shakkernerd。 - **提供商网络重试:** 对齐提供商读取/轮询/下载和代理等待恢复以处理瞬态连接错误,重试有界的提供商 `ENOTFOUND` 失败,同时使网关 `ENOTFOUND` 和非幂等创建操作快速失败。(#101496) 感谢 @xialonglee、@joshavant 和 @vincentkoc。 - **会话重试分类:** 阻止标识符或负载详情仅包含 429/5xx 数字序列的永久提供商错误重新发送完整上下文,并在重试路径间共享有界的速率限制窗口解析。(#105258) 感谢 @destire-mio、@yetval 和 @vincentkoc。 - **LINE 指令模板:** 抑制包含空白必填字段或未标记操作的确认和按钮,同时保留有效的无标题按钮及周围的回复文本。(#105520) 感谢 @edenfunf。 - **SQLite 维护模式验证:** 在压缩之前,拒绝缺少或偏离规范表、约束、索引、触发器或表选项的当前版本全局和代理数据库,同时接受支持的增量迁移布局。感谢 @vincentkoc。 - **Matrix 引导诊断:** 在有界的 stdout 和 stderr 尾部保留完整的 UTF-8 码位,以便加密依赖失败不会在保留边界处显示替换字符。(#105475) 感谢 @qingminlong 和 @vincentkoc。 - **iOS Watch 中继命令:** 允许配对的 iPhone 节点通过默认网关策略广播并调用 `watch.status` 和 `watch.notify`,同时保留直接 watchOS 节点的固定最小命令集。感谢 @vincentkoc 和 @shakkernerd。 - **Swabble 状态配置:** 在读取服务状态时遵循全局 `--config` 路径,而不是静默使用默认配置。感谢 @vincentkoc 和 @shakkernerd。 - **Gradium TTS 凭据出口:** 在分发 API 密钥之前,拒绝非 HTTPS、外部主机和主机名相似的基础 URL,并将受保护的传输固定到 Gradium 文档记录的 API 主机名。感谢 @zhangguiping-xydt 和 @vincentkoc。 - **ClawHub 重试计时:** 拒绝小数延迟秒数和日历标准化的无效 Retry-After 日期,以便运行时和发布读取保持在其有界的回退计划上。(#105479) 感谢 @qingminlong、@masatohoshino、@CadanHu、@vincentkoc 和 @obviyus。 - **网关命令 SecretRefs:** 当另一个命令密钥仍未解决时,保留权威的活跃快照值,仅对缺失的路径进行本地回退,而不是发出每轮 `secrets.resolve` 失败。感谢 @SunnyShu0925 和 @vincentkoc。 - **Cron 交付状态:** 当下游交付失败时,将成功的孤立代理轮次保持为 `status=ok`,同时在交付状态和运行日志中单独保留发送失败。感谢 @Alix-007 和 @vincentkoc。 - **通道入口恢复:** 对格式错误的持久化入口负载进行墓碑化标记并清理,防止损坏的行隐藏或导致后续有效消息被阻塞。感谢 @Pick-cat。 - **Discord 线程归档默认值:** 为绑定创建的线程继承每个父通道的配置自动归档持续时间,而不是强制 60 分钟,同时保留显式覆盖。(#103413) 感谢 @wings1029。 - **已安装插件加载:** 使原生模块回退使用 jiti 的转换路径,而不是重试相同的同步 ESM 加载,防止官方插件导入 SDK 契约模块时出现 Node 24 启动竞争。感谢 @vincentkoc。 - **QA 配置文件通道执行:** 将混合的 Crabline 通道场景划分为一个聚合主机套件,以便基于分类法的配置文件命令和证据工作流不再在执行前中止。 - **插件 SDK API 基线:** 覆盖每个公共入口点,保留完整的声明形状而不引起源代码行数变动,并从更改文件验证中运行基线和导出接口守卫。感谢 @vincentkoc 和 @zw-xysk。 - **官方插件 Beta 兼容性:** 在文档规定的弃用窗口期内,保持精确的 beta.5 session-store 辅助导入在 SQLite 上正常工作,防止已安装的 Codex 和飞书插件在包接受和升级过程中失败。感谢 @vincentkoc 和 @shakkernerd。 - **SQLite 终端会话恢复:** 在代理数据库中跟踪物理转录本的修改时间,以便在主会话被终止或超时时,当转录本写入时间超过注册表更新时间时能够正确轮换,同时在 doctor 导入期间保留旧的转录本修改时间。感谢 @vincentkoc 和 @shakkernerd。 - **网关聊天类型检查:** 在废弃的聚合类型模块被移除后,从所属协议模式导入聊天事件类型,恢复完整的项目类型检查。感谢 @vincentkoc。 - **打包的 Crabbox 命令:** 包含发布包装器导入的 lease-freshness 辅助模块,使 `crabbox:*` 命令在 npm 安装时不会因 `ERR_MODULE_NOT_FOUND` 而失败。感谢 @shakkernerd 和 @vincentkoc。 - **插件会话目录:** 拒绝未知的目录过滤器,将目录报告为插件能力,并在 SDK 注册捕获中保留它们,而不是静默返回空结果或将仅含目录的插件归类为无能力。感谢 @vincentkoc。 - **网关服务审计:** 在网关子命令检查中将 POSIX shell `-c` 包装器视为不透明,避免对 shell 包装的 macOS LaunchAgents 产生虚假的缺失命令警告,而无需解析内部命令或端口。修复 #81751。(#81778) 感谢 @liaoandi 和 @vincentkoc。 - **记忆文件名搜索:** 将路径与块内容分开索引,使精确的完整路径、文件名和词干查询将目标记忆文件排在首位,同时不改变内容 BM25 分数、摘要或嵌入向量。(#94102) 感谢 @Pick-cat 和 @vincentkoc。 - **出站通道引导:** 在配置或注册表重新加载后重试期间,抑制对同一通道、配置和注册表生成的重复失败插件激活。(#100377) 感谢 @xialonglee 和 @vincentkoc。 - **OpenAI Realtime 客户端密钥期限:** 通过受保护的获取边界将语音和转录密钥获取限制在 30 秒内,同时保留身份验证和受限的响应解析。(#102860) 感谢 @Alix-007、@Leon-SK668、@vincentkoc 和 @shakkernerd。 - **网关客户端看门狗:** 对无界和混合的待处理请求保持传输停滞检测处于活动状态,以便死连接拒绝待处理请求、重新连接,且永不重放被拒绝的请求。(#103407) 感谢 @NianJiuZst 和 @vincentkoc。 - **iOS 共享扩展草稿:** 保留以类似脚手架前缀开头的合法共享文本,仅移除精确的旧版脚手架行,避免将类似协议的文本误认为 URL,并对主机镜像内容进行去重。(#103453) 感谢 @lin-hongkuan、@harjothkhara、@vincentkoc 和 @joshavant。 - **Telegram 推理预览:** 通过延迟删除重新定位分割的推理预览,使先前的预览消息不会保持陈旧,同时保留客户端滚动位置。(#97828) 感谢 @ly-wang19 和 @kyle20026。 - **飞书原生卡片线程:** 一次性规范化空白回复目标,并为卡片和媒体部分重用共享回复模式,使原生卡片主题回复保留在其线程中。(#102804) 感谢 @sunlit-deng 和 @vincentkoc。 - **纯文本 XML 工具调用:** 修复零参数调用,并防止字节/字符受限的流规范化泄露不完整或过大的工具语法,同时保留可见的后缀文本。(#102933, #103220, #103585) 感谢 @wangyan2026、@qingminglong、@wuqxuan、@ZOOWH、@aniruddhaadak80、@vincentkoc 和 @maweibin。 - **QQBot 令牌请求:** 使用共享的 30 秒受保护获取期限限制令牌获取,以便停滞的 singleflight 调用者能共同失败、清理并重试。(#102897) 感谢 @maweibin、@vincentkoc 和 @obviyus。 - **Canvas A2UI 验证:** 在 CLI、agent-tool 和最终 node-invoke 边界拒绝格式错误或不受支持的 JSONL,同时保留原生 v0.8 分发。(#103713) 感谢 @qingminglong 和 @vincentkoc。 - **Twilio RCS 入站路由:** 仅在签名 Webhook 验证后规范化 RCS 消费者地址,使发送者匹配和会话正常工作,且不更改出站 RCS 语义。(#102373) 感谢 @clawSean 和 @vincentkoc。 - **ClickClack 输出清理:** 在发送者边界剥离内部工具和 XML 脚手架,抑制仅含脚手架的发送,并保留可选的现代交付 ID。(#103142) 感谢 @masatohoshino、@vincentkoc、@maweibin 和 @zw-xysk。 - **CLI 安装程序清理:** 在失败时删除 Node 暂存目录和 pnpm workspace-rewrite 临时文件。感谢 @SebTardif 和 @vincentkoc。 - **Agent-core 截断:** 避免 head 截断接收到负的行数或字节上限时导致空输出崩溃。(#103425) 感谢 @qingminglong 和 @vincentkoc。 - **Windows Node 解析:** 在解析存在恶意 `PATH` 值下的裸不区分大小写 `node.exe` 条目时,保留当前可执行文件。(#103907) 感谢 @soldforaloss 和 @vincentkoc。 - **Codex 运行时切换:** 接受捆绑的 Codex 运行时用于 `codex/*` 和 `openai/*` 模型路由,同时继续拒绝不受支持的提供程序/运行时组合。(#103762) 感谢 @vincentkoc 和 @shakkernerd。 - **代理中止清理:** 将提示词锁重新获取与终端清理序列化,使取消的嵌入式运行在长达 60 秒内不会因会话锁产生自争用。感谢 @vincentkoc。 - **Chutes OAuth 期限:** 限制令牌交换、配置文件查找和刷新请求的期限,并在可选的用户信息丰富操作停滞时保留已签发的令牌。(#102026) 感谢 @Alix-007 和 @vincentkoc。 - **控制 UI 工作区头像:** 在引导和身份响应中内联已验证的代理头像文件,使个人卡片图像无需未认证的头像路由请求即可渲染,同时保留配置的 Emoji 优先级。(#102892, #97602) 感谢 @LZY3538、@mtuwei 和 @vincentkoc。 - **Exec 安全二进制标志:** 自动批准默认仅 stdin 过滤器的已审核只读布尔标志,同时使未知标志、尾部跟随/重试模式、文件操作数和自定义配置文件的处理保持“失败即关闭”状态。(#88953) 感谢 @yetval 和 @vincentkoc。 - **iOS 会话变更:** 将重命名、归档、置顶、删除和分叉请求限制在所选代理范围内,为分叉会话保留父代理,从而防止多代理聊天操作在错误的代理下修改或创建会话。(#103366, #103415) 感谢 @lin-hongkuan 和 @harjothkhara。 - **模型置顶热重载与回退:** 在 Telegram 配置重载和模型回退期间保持显式 `/model` 选择的权威性,为每个组装的对话轮次捕获一个实时配置快照,并将回退候选项限制为轮次本地状态,而非覆盖用户的置顶设置。(#103324) 感谢 @obviyus 和 @vincentkoc。 - **Swift 协议初始化器:** 将每个架构可选生成的初始化器参数默认值设为 `nil`,从而防止新增协议字段破坏 SDK 构造调用点。 - **Telegram 私信对话上下文:** 在分块、富文本回退、媒体和流式传输交付中,将渲染后的出站消息与稳定的转录标识符关联,防止 Markdown 回复重复显示,同时在缓存的多部分投影不完整时保留完整转录记录。(#102257, #102469) 感谢 @crabkun、@consoleaf、@chenyangjun-xy 和 @vincentkoc。 - **OpenCode Go MiMo 模型目录:** 停止暴露已弃用且会拒绝代理请求的 `mimo-v2-omni` 和 `mimo-v2-pro` 别名,并将发布验证保留在活跃的 MiMo V2.5 路由上。(#103311, #103329) 感谢 @krissding、@vincentkoc 和 @joshavant。 - **审计时间过滤器:** 拒绝 `openclaw audit --after` 和 `--before` 中无效的日历日期,避免将其错误纳入非预期的时间区间,同时保留无时区的时间戳语义。(#103433) 感谢 @qingminglong 和 @vincentkoc。 - **OpenAI 兼容流式工具调用:** 执行以 SSE `data: [DONE]` 结尾但省略 `finish_reason` 的流中的完整原生工具调用,同时保持传输层 EOF 和可见文本情况下的“失败即关闭”策略。(#98124, #97994) 感谢 @SunnyShu0925、@wszhhx、@vincentkoc 和 @maweibin。 - **xAI 提供商别名:** 当模型使用内置的 `x-ai` 提供商别名时,保留 Grok 4.3 和 Grok 4.5 的思维链配置、快速模型路由及加密推理回放功能,避免将有效的思维请求强制限制为 `minimal`。(#103315) 感谢 @vincentkoc 和 @shakkernerd。 - **Doctor 状态隔离:** 当 `OPENCLAW_STATE_DIR` 指向其他位置时,防止自动更新和 Gateway 监听修复导入并归档默认主目录的执行或插件绑定审批记录;保持隐式 CLI 预检仅为通知状态,并将跨状态导入功能保留给操作员直接运行 doctor 命令时使用。(#103247, #103317) 感谢 @vincentkoc。 - **Doctor 干净状态指引:** 在无配置变更的干净运行后,停止建议运行 `openclaw doctor --fix`,同时保留针对性的修复提示。(#103233) 感谢 @kewang-pika、@nonplace 和 @vincentkoc。 - **Google 音乐生成:** 对未受阻但遗漏合同要求音频的 Lyria 响应重试一次,同时保持提示词拦截和终端生成停止状态不可重试。(#103318) 感谢 @shakkernerd。 - **OpenCode Zen 模型目录:** 更新 Claude Sonnet 5、Grok 4.5、Hy3 Free、Kimi K2.7 Code 和 MiniMax M3 的提供商静态种子数据,包含已验证的路由、定价、限制和输入能力,移除已停用的免费层级条目,并通过未认证模型列表暴露相同的目录。(#103184) 感谢 @vincentkoc、@shakkernerd 和 @joshavant。 - **托管浏览器启动:** 将异步 Chrome 引导和运行时进程生成失败作为浏览器错误暴露,同时保持 Gateway 存活,并在后续生命周期故障中保留进程错误处理机制。感谢 @vincentkoc 和 @shakkernerd。 - **浏览器节点代理下载:** 将每个操作生成的下载文件传输至 Gateway 媒体存储库,对齐单文件 10 MiB 和聚合传输预算 16 MiB 的限制,并将多个下载路径重写为 Gateway 本地文件,无需遍历页面控制的结果数据。感谢 @vincentkoc。 - **Gateway 启动迁移:** 当启动期间所选配置发生变化时,在退出前释放共享迁移租约,允许立即重试,而非阻塞就绪状态直至五分钟租约过期。(#103145) 感谢 @joshavant、@vincentkoc 和 @shakkernerd。 - **Apple 超时恢复:** 即使平台工作忽略取消请求,也能迅速从共享操作超时和调用者取消中返回,同时隔离延迟的 Gateway 握手并清理位置与权限等待器。(#103066) 感谢 @NianJiuZst 和 @vincentkoc。 - **Claude CLI 热会话:** 当 Claude 未写入原生转录记录时,保持托管 stdio 的连续性;仅在确切的活动子进程消失或变更时才回退至有界 OpenClaw 历史记录,并防止无状态运行持久化 CLI 绑定。(#96841) 感谢 @bradreaves、@vincentkoc 和 @shakkernerd。 - **CLI 插件列表:** 当不存在旧版输入时,跳过状态迁移的运行时加载,从而降低打包冷启动内存占用,同时为旧版插件索引和配置的会话存储保留迁移功能。感谢 @vincentkoc。 - **Unicode 安全的有界文本:** 在 Control UI、CLI、Gateway、插件、QA、内存和 Android 界面中缩短预览、提示词、诊断信息、标签、会话密钥、链接元数据和身份标识时,保留完整的 UTF-16 代理对。(#102625, #102626, #102627, #102816, #102823, #102833, #102877, #102949, #102963, #102969, #102988, #103010, #103034, #103210, #103341, #103487, #103543, #103580, #103646) 感谢 @zhangguiping-xydt, @wings1029, @wangyan2026, @Pandah97, @MoerAI, @SunnyShu0925, @zhangqueping, @zw-xysk, @cxbAsDev, @lzyyzznl, @coder-master-0915, @LeonidasLux, @mushuiyu886, @ly85206559, @Simon-XYDT, @lsr911, @vincentkoc, @cursoragent, @chengzhichao-xydt 和 @wangmiao0668000666。 - **Cron 列表表格:** 根据终端显示宽度对单元格进行清理和尺寸限制,确保中日韩(CJK)字符、表情符号、组合标记及终端控制输入不会破坏对齐或输出。(#103616) 感谢 @mushuiyu886 和 @vincentkoc。 - **CLI 模型表格:** 根据渲染后的终端宽度对模型列表单元格进行清理、截断和填充,确保表情符号、CJK 字符及其他宽字符保持列对齐。(#102819) 感谢 @Kevin23-design 和 @vincentkoc。 - **技能提示词压缩:** 在将剩余提示词预算用于生成缩短且 UTF-16 安全的描述之前,保留所有已包含的技能标识,在不超过硬性限制的前提下保留触发引导。(#88426) 感谢 @abel-zer0, @vincentkoc, @mushuiyu886, @cursoragent, @chengzhichao-xydt, @wangmiao0668000666 和 @Pandah97。 - **频道 Markdown 代码表格:** 根据渲染显示宽度设置列宽,确保在共享的 Telegram 和 Discord 输出中,CJK 字符、表情符号及混合宽度单元格保持对齐。(#55596, #55512) 感谢 @sparkyrider 和 @zjy282。 - **QQ 机器人审批预览:** 在字素边界处对过长的已清理命令和元数据进行换行,使用可见的续行标记和安全围栏,在不更改命令内容的前提下确保桌面端 QQ 审批可读。(#102119, #101979) 感谢 @Bartok9, @xuzhi5858, @vincentkoc, @maweibin, @mushuiyu886 和 @cursoragent。 - **Codex 电脑控制:** 将固定长度的坐标对发布为同质数组模式,以便 Codex 应用服务器能够使用 `computer` 工具启动线程,而不是拒绝元组类型的 `items`。感谢 @vincentkoc。 - **Google Chat 请求截止时间:** 将控制调用限制在 30 秒内,同时为媒体传输提供基于大小的总预算和独立的 30 秒停滞体保护,防止 Chat API 请求挂起,且不影响大附件上传。(#102227) 感谢 @hugenshen, @vincentkoc 和 @shakkernerd。 - **Google Gemini 前缀模型 ID:** 在选择多模态函数响应行为时识别 `google/gemini-*` 和 `models/gemini-*`,保留 Gemini 2 的图片回退机制,且不导致 Gemini 3 内联图片响应回退。(#102382) 感谢 @LiLan0125, @yetval 和 @vincentkoc。 - **生成的提供商模型目录:** 当 MiniMax 和 NVIDIA 目录声明音频或视频元数据时,在将运行时模型输入投影为文本/图像时保留这些目录行,防止配置的多模态主模型被丢弃并回退。(#97858, #97048) 感谢 @ly-wang19, @zackchiutw, @shakkernerd 和 @vincentkoc。 - **DeepSeek 目录元数据:** 将 V4 Flash 和 Pro 的定价与 DeepSeek 当前的缓存命中、缓存未命中及输出速率对齐;刷新旧版引导流程写入的精确目录元数据;并记录 7 月 24 日弃用旧版 `deepseek-chat` 和 `deepseek-reasoner` 兼容名称的事项。(#103192) 感谢 @vincentkoc。 - **CLI 音频转录文件:** 将推断生成的 Whisper 和 Parakeet 文本文件视为权威来源,防止空输出或缺失输出将进度/状态 stdout 暴露为用户语音。(#87393, #87384) 感谢 @kesslerio。 - **Node 24 上的浏览器操作:** 将浏览器请求取消绑定到客户端和响应生命周期,而不是 Node 24.16+ 过早中止的 body-stream 信号,防止有效的 POST 操作在 JSON 解析后失败。感谢 @obviyus 和 @vincentkoc。 - **SecretRef 模型凭据:** 在认证存储、流设置、SDK 配置和管理型本地提供商探测过程中,将已解析的提供商密钥保存在进程本地哨兵之后,仅在最终网络或提供商插件边界注入明文,同时保留精确值的日志脱敏。(#102008) 感谢 @vincentkoc 和 @shakkernerd。 - **精简本地模型 Shell 访问:** 将 `exec` 直接显示在默认的结构化工具搜索控件旁边,以便经过代码调优的本地模型能够使用其 Shell 回退机制,而不是搜索缺失的领域工具。感谢 @vincentkoc 和 @maweibin。 - **OAuth 刷新争用诊断:** 将本地锁路径从面向用户的刷新失败中移除,避免重复的失败前缀,同时保留结构化的提供商和配置文件分类。感谢 @vincentkoc 和 @shakkernerd。 - **Exec 审批提示:** 将后台禁用的回退警告从待处理的网关/节点审批中移除,仅在命令实际在前台运行时显示。感谢 @vincentkoc。 - **直接轮询投递:** 将直接和混合频道轮询通过所属的出站适配器进行路由,同时保留网关模式路由和频道选项检查。感谢 @NianJiuZst, @vincentkoc 和 @shakkernerd。 - **Agent 等待硬超时快照:** 当外层 `agent.wait` 计时器在重试宽限竞态中胜出时,保留标准的硬超时阶段和时间戳,同时保持队列、排空和重启取消等待的可修正性。感谢 @Pick-cat 和 @vincentkoc。 - **Control UI 类型化审批:** 当代理运行被阻塞时,立即通过授权的 Gateway 命令路径发送 `/approve` 命令,而不是将该命令排在该运行之后。感谢 @vincentkoc 和 @shakkernerd。 - **Microsoft Teams Graph 响应限制:** 对成功的文件上传和聊天 JSON 读取设置上限,防止过大的 Microsoft Graph 响应无限制缓冲。感谢 @Alix-007 和 @vincentkoc。 - **打包的语音运行时:** 停止将基于包的 `speech-core` 视为捆绑插件的边车,恢复 npm 安装中的 TTS 启动,同时发布检查仍确保真正绕过激活的包装器保持包完整。 (#89425) 感谢 @zhangguiping-xydt 和 @vincentkoc。感谢 @ant1b0t 和 @vincentkoc。 - **Codex 应用服务器协议:** 要求 app-server 0.142 或更高版本,移除 0.142 之前的 wire-shape 兼容性,并让 Codex 通过 `tool_search` 检索延迟的原生 `spawn_agent`,以便原生子代理任务镜像在具备搜索能力的模型上正常工作。感谢 @vincentkoc 和 @shakkernerd。 - **Android 物理键盘聊天:** 在物理键盘上使用未修改的 Enter 键发送,同时保留 Shift+Enter 及其他修改后的 Enter 组合键用于多行输入。 (#101239) 感谢 @3ninyt3nin-creator 和 @vincentkoc。 - **中日韩 Markdown 强调:** 通过共享的 Markdown 管道渲染相邻的中日韩强调标点符号,而不是让字面标记跨频道泄漏。 (#101120) 感谢 @nicknmorty。感谢 @j08577600-jpg。 - **备份重试清理:** 在实时写入失败后关闭部分归档输出句柄并隔离每次重试路径,防止 Windows `EBUSY` 锁在多次尝试中级联或留下过期的临时归档。 . 感谢 @ZOOWH、@LiLan0125、@vincentkoc、@joshavant、@shakkernerd 和 @obviyus。 - **Codex 生成的原生子代理:** 保持父级 app-server 订阅和共享客户端处于活动状态,直到生成的原生子代理完成交付稳定,防止丢失唤醒和泄漏的一次性清理。感谢 @vincentkoc。 - **交付恢复节奏:** 在网关启动后对符合条件的出站和重启续传重放进行限速,以免故障积压数据瞬间突破频道速率限制,同时保留基于墙钟时间的恢复预算。 (#101058) 感谢 @ZengWen-DT、@vincentkoc 和 @obviyus。感谢 @aniruddhaadak80、@vincentkoc 和 @obviyus。 - **出站预连接恢复:** 当连接或 DNS 故障证明未发送任何请求时,原子性地清除过期的平台发送证据,允许在连接恢复后重放排队的 Discord 及其他频道消息,同时不削弱未知发送的重复防护。 (#100979) 感谢 @SunnyShu0925 和 @vincentkoc。感谢 @tiffanychum 和 @vincentkoc。 - **Discord 流式最终回复:** 将完成回复作为新消息发送,使不活跃的频道变为未读,同时保留定向提及,避免升级为 `@everyone` 或 `@here`。 (#99662) 感谢 @davelutztx 和 @vincentkoc。 - **OpenAI 兼容的 SSE 解析:** 识别被错误标记为 JSON 的事件流(无需添加第二个 `data:` 前缀),保留来自非标准提供者的有效流式响应。感谢 @ZengWen-DT 和 @vincentkoc。 - **LM Studio 嵌入预加载:** 在预加载嵌入模型时遵守模型级和提供程序级的上下文窗口限制,防止可避免的 GPU 内存溢出故障。感谢 @zak-li、@ZOOWH 和 @hxz398。 - **提供程序过载消息:** 保持速率限制响应分类以用于重试和回退行为,当提供程序未提供明确的重试详情时使用过载措辞。感谢 @SunnyShu0925 和 @vincentkoc。 - **Microsoft Teams 附件元数据:** 限制 Bot Framework `attachmentInfo` JSON 读取,并在流数据耗尽 Gateway 内存之前取消超大流。感谢 @ly85206559 和 @vincentkoc。 - **代理认证复制顺序:** 在将凭据复制到新代理时,保留源代理的可移植认证配置文件优先级,同时排除已跳过的配置文件和临时认证状态。感谢 @machine3at、@vincentkoc 和 @shakkernerd。 - **记忆会话修复:** 将每日“梦境”摄入的记账逻辑置于会话语料库审计和修复之外,以便 `memory status --fix` 能够保留健康的每日状态。感谢 @Alix-007 和 @vincentkoc。 - **远程浏览器 CDP 策略:** 通过现有的主机名白名单放行配置的 CDP 控制主机,而不扩大页面导航策略,同时保持严格策略的发现功能绑定到配置的控制中心。 (#100819) 感谢 @NianJiuZst 和 @vincentkoc。感谢 @SarinV 和 @vincentkoc。 - **配置取消设置诊断:** 解释何时无法取消继承或默认的配置文件值,而不是报告具有误导性的成功删除。感谢 @moeghashim。 - **Crestodian 命令探测:** 限制 stdout 和 stderr 流故障,同时保持子进程关闭和生成错误的权威性,防止未处理的探测崩溃。感谢 @lsr911、@vincentkoc 和 @zw-xysk。 - **飞书提及转发:** 当机器人 Open ID 不可用时采用失败关闭(fail closed)策略,防止群消息被错误分类为显式机器人提及。感谢 @zhangguiping-xydt。 - **Cron 编辑交付:** 在应用部分交付更新时保留每个任务的隐式交付模式,因此禁用尽力而为的交付不再关闭分离的任务公告。感谢 @machine3at、@vincentkoc 和 @shakkernerd。 - **控制面板 UI 会话创建:** 在选中其他会话后,保持新创建的会话位于稳定侧边栏顺序的最前端。感谢 @shakkernerd。 - **控制面板 UI 文件预览:** 通过缓存的、离屏包含的文本块保持大型 Skill Workshop 文件的响应能力,同时保留内容换行、稳定的文件切换、全文件复制和清晰的焦点行为。感谢 @xianshishan、@shakkernerd 和 @vincentkoc。 - **仅 FTS 记忆启动:** 当 `memorySearch.provider` 明确设置为 `none` 时跳过插件能力发现,避免不必要的冷启动扫描。感谢 @vincentkoc。 - **控制面板 UI 代理模型标签:** 在“默认”选择器选项中显示每个已选代理的有效模型,而不是全局模型。 (#77440) 感谢 @hyspacex 和 @vincentkoc。感谢 @jwong-art 和 @vincentkoc。 - **控制面板 UI 入站图片预览:** 在聊天记录重新加载后,通过认证票据路由渲染标准的入站媒体引用。 (#89591) 感谢 @sweetcornna 和 @shakkernerd。感谢 @vergissberlin 和 @shakkernerd。 - **小上下文压缩:** 将有效预留空间限制在已知模型上下文窗口内,防止小型本地模型从第一个 token 就开始进入压缩状态。感谢 @vincentkoc。 - **无详细信息的提供商故障:** 防止上游无详细信息的故障导致 API 密钥认证配置降级,同时保留由 WHAM 支持的 OpenAI OAuth 健康检查及配置的模型回退机制。(#100600) 感谢 @fengjikui, @shakkernerd, 和 @vincentkoc 感谢 @fabasi, @shakkernerd, 和 @vincentkoc。 - **插件安装诊断:** 仅在 hook 清单缺失时,抑制插件安装失败后产生的误导性 hook-pack 回退提示,同时保留可操作的 malformed(格式错误)hook-pack 错误信息。感谢 @vincentkoc 和 @obviyus。 - **配置验证诊断:** 针对每个配置路径,每种未变更的已清理验证警告负载仅输出一次;在验证通过后重置去重状态,并在临时读取失败和刷新失败期间保留警告指纹。(#25574) 感谢 @vincentkoc, @masatohoshino, @CadanHu, 和 @shakkernerd 感谢 @mcaxtr, @masatohoshino, @CadanHu, @vincentkoc, 和 @shakkernerd。 - **配置体积缩减保护:** 对可解析的对象配置,将写入内容与标准字节进行对比,而非原始 BOM 和缩进开销,同时保留原始审计遥测数据及保守的格式错误输入回退机制。(#71865) 感谢 @vincentkoc。感谢 @balric-seo。 - **控制面板 UI 合并更新:** 当更新加入正在进行的 Gateway 重启队列时,显示清晰的排队重启完成横幅提示。感谢 @goutamadwant 和 @vincentkoc。 - **控制面板 UI 连接错误:** 为待处理的 RPC 调用者保留结构化的配对与认证失败信息,同时保持通用断开连接行为不变。感谢 @ruanrrn, @vincentkoc, 和 @zw-xysk。 - **iOS 嵌入式终端:** 在原生 Gateway 认证连接期间,直接打开仅含终端的控制面板界面,而非暴露 Web UI 登录页面。 - **TUI 启动状态:** 在连接后初始化阶段显示 `starting up`(正在启动),且不会覆盖当前运行或重连状态。感谢 @ml12580 和 @vincentkoc。 - **控制面板 UI 重启恢复:** 在 Gateway 更新或重启后,通过有界的全文档刷新机制恢复过期的 bundle 页面。感谢 @ZengWen-DT, @vincentkoc, 和 @shakkernerd。 - **TUI 活跃 Gateway 端口:** 当未配置显式 URL、端口或远程目标时,跟随已验证的活跃本地 Gateway 端口。(#42461) 感谢 @haishmg 和 @vincentkoc 感谢 @jackm1688 和 @vincentkoc。 - **Apple 聊天运行恢复:** 在重连、切回前台及事件中断后,从标准 Gateway 历史记录中恢复活跃响应,同时在 Codex 和 Copilot 转录镜像间保留网关用户轮次标识,以防止重复行。感谢 @vincentkoc。 - **Claude CLI 流式回复:** 当 Claude CLI 的终端结果信封为空时,保留已接收的助手文本,防止在完整流式回答完成后触发虚假的空响应回退。感谢 @totobusnello, @vincentkoc, 和 @shakkernerd。 - **手机身份规范化:** 规范化多余的加号,保留非电话号码的 iMessage 标识符,并在共享通道路由中拒绝不含数字的 Signal 身份。感谢 @morluto 和 @vincentkoc。 - **Tlon scry 响应限制:** 限制成功的 Urbit scry JSON 读取量,并取消超大数据流,而非无限制地缓冲对等节点响应。感谢 @hugenshen 和 @vincentkoc。 - **源码构建可移植性:** 保持 tsdown 配置自包含,使构建过程不依赖从 unrun 的临时模块目录解析 tsdown 包。感谢 @vincentkoc。 - **智能体工具调用解码:** 将代理对范围内的数字 HTML 实体保留为纯文本,同时继续解码有效的补充平面值,防止格式错误的模型输出将孤立的 UTF-16 代理对注入到工具参数中。感谢 @mikasa0818, @vincentkoc, @shakkernerd, @maweibin, 和 @zw-xysk。 - **Gateway 事件分发:** 捕获并记录延迟订阅者设置及处理程序失败,避免未处理的 Promise 拒绝泄漏。感谢 @cxbAsDev, @vincentkoc, 和 @shakkernerd。 - **Ollama 回退路由:** 将不完整的原生流通过 Ollama 提供商钩子进行分类,以便配置的模型回退机制能够继续推进。感谢 @TurboTheTurtle 和 @vincentkoc。 - **差异渲染:** 从单次 SSR 预加载渲染查看器和图像输出,通过水合(hydration)保留语言包高亮,不区分大小写地规范化语言提示,对完全相同的输入/输出显式跳过并返回 `changed` 结果,如实报告文件渲染与输入错误,缓存哈希固定的查看器运行时,并优先使用标准文件设置而非过时别名。感谢 @vincentkoc, @joshavant, 和 @zw-xysk。 - **远程浏览器可靠性:** 通过现有的远程 CDP 超时预算限制持久的 Playwright 标签页枚举,并废弃超时的连接尝试,防止延迟完成操作恢复卡死的连接。(#58968) 感谢 @HemantSudarshan 和 @KeaneYan。 - **浏览器标签页接管:** 当新的 MCP、Playwright 或 CDP 目标未通过最终安全验证、创建后中止或无法重新发现时,保留先前的隐式标签页和稳定别名;在创建标签页前验证标签,并将受管清理范围限制在已接管的标签页。感谢 @hugenshen 和 @vincentkoc。 - **浏览器附件下载:** 当直接 Playwright 导航触发附件下载时,返回受管的 URL、文件名和路径元数据,同时在保存字节前验证最终 URL,并保留单所有者显式下载。(#48045) 感谢 @zhangguiping-xydt 和 @vincentkoc 感谢 @roinou532 和 @vincentkoc。 - **浏览器操作下载:** 当智能体操作触发下载时,返回受管的 URL、文件名和路径元数据,同时保留显式所有权,在保存字节前验证最终 URL,并对策略拒绝的标签页进行隔离而不关闭它们。(#93250) 感谢 @sunlit-deng 和 @vincentkoc 感谢 @scorpiord 和 @vincentkoc。 - **托管浏览器 Cookie 持久化:**初始化新的隔离式 macOS 无头配置文件时使用非交互式加密密钥,同时保留现有配置文件密钥,并在有界信号回退前通过 CDP 关闭 Chromium,以确保持久登录状态在浏览器和 Gateway 正常重启后得以保留。(#96704) 感谢 @TurboTheTurtle, @vincentkoc 和 @shakkernerd。 - **MCP OAuth 响应边界:**拒绝无主体的外部错误响应体,避免调用其本质上无界的 `text` 回退逻辑,同时保留 HTTP 状态码和头部信息以便进行安全的 SDK 诊断。感谢 @Pick-cat, @shakkernerd 和 @vincentkoc。 - **Tlon 图片上传边界:**在上传前限制远程图片获取的大小,对过大或停滞的响应采取安全失败策略,而非无限制地缓冲它们。感谢 @hugenshen 和 @vincentkoc。 - **Mattermost 块流式传输:**在草稿预览模式下保留完整且不重复的文本与工具块,并在禁用预览流式传输时正常执行块流式传输。(#87449) 感谢 @yetval, @Senseonics-AI 和 @vincentkoc。 - **控制面板 UI 审批提示:**防止过期的解析失败和忙碌状态清理泄漏到新的审批或 Gateway 重连中。感谢 @haruaiclone-droid 和 @vincentkoc。 - **macOS 服务 SecretRefs:**当过期的 Gateway LaunchAgents 在调用 shell 缺少相关变量的情况下被修复或重新安装时,保留配置中残留的 SecretRefs 的生成 env-file 值。感谢 @mushuiyu886, @vincentkoc 和 @zw-xysk。 - **Anthropic OAuth 回调:**保持提供商要求的 `localhost` 重定向 URI 稳定,同时允许本地回调监听器绑定明确的回环主机地址。感谢 @xialonglee 和 @vincentkoc。 - **提示释放媒体交付:**在嵌入式运行临时释放会话锁期间,接受保留活动叶节点的侧边追加操作,从而使连续的消息工具媒体回复能够合并,避免误报会话接管失败。 。感谢 @scotthuang, @vincentkoc, @Andy312432 和 @shakkernerd。 - **控制面板 UI 技能过滤器:**统一代理与搜索控件,使用翻译后的标签,并保留原生复选框和单选按钮的尺寸。 。感谢 @evan-YM, @joshavant 和 @vincentkoc。 - **控制面板 UI 已完成运行状态:**将活动与完成更新绑定到运行标识,使过期的完成状态保持“发送”可用,而新运行保持活跃。 。感谢 @tiffanychum, @vincentkoc 和 @shakkernerd。 - **控制面板 UI 上下文使用:**将过期的缓存总量显示为近似值,不触发警告样式或“Compact”操作。感谢 @bladin。 - **控制面板 UI 文件预览:**移除重复的 Escape 键头部提示,同时保留关闭按钮的快捷键提示及 Escape 行为。 。感谢 @xianshishan 和 @vincentkoc。 - **控制面板 UI 自主工具失败:**在后续的自主恢复轮次中保留早期的工具错误结果。 。感谢 @qingminglong 和 @vincentkoc。 - **代理空回复:**当已完成的交互轮次没有可交付的回复(包括排队中的后续回复)时,显示可见的失败状态,同时保留显式静默、待处理的继续操作和已提交的副作用,遵循排队发送策略,并将压缩通知视为进度。感谢 @mushuiyu886 和 @vincentkoc。 - **子进程输出安全:**防止 stdout/stderr 管道故障导致代理执行会话、本地 TUI Shell 命令及有界进程执行崩溃。 。感谢 @cxbAsDev 和 @vincentkoc。 - **Docker 沙箱命令输出:**当 stdout/stderr 捕获中断时,使 Docker 沙箱操作失败并终止,而非返回成功但输出不完整。感谢 @cxbAsDev 和 @vincentkoc。 - **后台刷新隔离:**当一个节点故障时保持远程技能二进制刷新运行,并隔离周期性子代理清理程序的故障,同时不向直接调用者隐藏错误。 。感谢 @cxbAsDev 和 @vincentkoc。 - **技能扫描诊断:**通过现有的资源诊断报告目录枚举失败,而不是静默丢弃受影响的技能。感谢 @wendy-chsy。 - **执行输出清理:**移除完整的 ANSI 序列,并将残留的 C0/C1 控制字符渲染为可见的转义符,而不是静默丢弃输出字节。感谢 @LavyaTandel。 - **助手可见文本:**解包泄漏的独立 `<parameter>` 标签,同时保留其内容以及字面量的代码/XML 示例。感谢 @nankingjing 和 @maweibin。 - **Android 麦克风捕获:**将负的 `AudioRecord.read` 结果视为致命的共享会话错误,以便在设备丢失后转录和 Talk 捕获都能干净地停止。感谢 @NianJiuZst 和 @vincentkoc。 - **Android 按键通话生命周期:**将 Gateway PTT 准备与应用程序前台及手动麦克风所有权序列化,防止过期的后台或重试工作重启、替换或拆除较新的捕获。(#99840) 感谢 @xialonglee 和 @joshavant。 - **精简本地模型工具:**从精简代理界面中移除媒体生成、TTS 和 PDF 工具,同时保留显式配置和运行时可选功能。感谢 @vincentkoc。 - **iOS 开发应用标识:**保持开发应用标记为 OpenClaw,同时使用其独特的调试图标以区别于发布版本。感谢 @joshavant。 - **Android 聊天恢复:**在重连和序列间隙历史快照追赶期间,保留乐观的用户消息和本地拥有的运行,防止已发送消息消失或过期运行接管所有权。(#100197) 感谢 @vincentkoc。 - **iOS QR Gateway 交接:**在交付扫描到的设置码前停止 VisionKit,并在重连期间将延迟认证、审批、Watch 和前台节点工作绑定到其原始 Gateway。感谢 @PollyBot13, @vincentkoc 和 @shakkernerd。 - **代理终端故障:**当代理运行结束且无可见输出时,显示安全的交互式回复,同时保留已完成的消息工具交付和心跳特定指导。感谢 @moeedahmed, @vincentkoc 和 @maweibin。 - **MCP 回环工具结果:** 在通过 HTTP 工具调用时,保留符合 schema 的文本、图片和嵌入式资源内容,同时将格式错误或协议不兼容的块渲染为安全文本。感谢 @tzy-17, @vincentkoc, @shakkernerd 和 @maweibin。 - **控制面板 UI 工具结果图片:** 从 Gateway 历史中渲染直接图片内容块,并使延迟发送滚动的端到端(E2E)设置确定性化。感谢 @lzyyzznl, @vincentkoc, @shakkernerd 和 @maweibin。 - **控制面板 UI 实时工具排序:** 当浏览器与 Gateway 时间戳不一致时,确保助手流式文本保持在其匹配的工具卡片之前。感谢 @Pick-cat 和 @vincentkoc。 - **插件审批诊断:** 区分请求验证拒绝、等待决策过期和不可用的 Gateway,同时确保审批失败时保持“失败关闭”(fail-closed)的安全状态。感谢 @tzy-17 和 @vincentkoc。 - **IRC Unicode 消息:** 在 UTF-16 码点边界处分割出站 PRIVMSG 负载,防止表情符号被截断为孤立的代理对。感谢 @llagy009, @vincentkoc, @mushuiyu886 和 @cursoragent。 - **OpenAI 实时语音问候:** 在显式问候响应接管回合时,防止服务器语音活动检测(VAD)生成第二个出站问候,同时不禁用呼叫者打断功能。感谢 @giodl73-repo。 - **实时语音工具:** 在每个 OpenAI、Azure 和 Google 实时负载边界处过滤格式错误的工具名称,同时保留各提供商特定的有效名称。感谢 @vincentkoc。 - **Discord 语音状态:** 将 Discord 错误 10065 视为正常断开连接状态,同时保留其他无关的 REST 失败。感谢 @asock 和 @vincentkoc。 - **Discord 语音账户:** 按 Discord 账户隔离 `@discordjs/voice` 连接,并在 Gateway 就绪早于监听器注册时恢复自动加入。感谢 @geekhuashan 和 @vincentkoc。 - **iOS 语音唤醒清理:** 在禁用非活跃的语音唤醒时避免初始化麦克风音频管道,防止模拟器启动中止和不必要的音频设置。 - **Cron 持续时间验证:** 拒绝被截断到低于 1 毫秒的正向持续时间,改为静默调度零持续时间间隔。感谢 @qingminglong 和 @vincentkoc。 - **技能工坊提案:** 在生成的提案 Markdown 中保留末尾换行符,同时继续拒绝空白原始内容。感谢 @anyech。 - **Agent 工具输入与 LSP 启动:** 将空白的可选整数参数视为缺失,并在子进程无法生成时立即使嵌入式 LSP 启动失败。感谢 @snotty, @cxbAsDev 和 @vincentkoc。 - **Gateway 与内存诊断:** 报告启动会话持久化失败和关闭时的内存清理工作,而不是静默丢弃这些失败。感谢 @masatohoshino, @lin-hongkuan 和 @vincentkoc。 - **Unicode 与插件包验证:** 匹配反向 UTF-16 边界的原生切片语义,并拒绝缺少 `openclaw.plugin.json` 的已发布插件包。感谢 @Simon-XYDT, @849261680 和 @vincentkoc。 - **Android 调用取消:** 确保协程取消状态贯穿摄像头处理器和 Gateway 调用边界,防止已取消的工作发出过期结果。感谢 @xialonglee, @vincentkoc 和 @shakkernerd。 - **Codex 原生钩子中继诊断:** 避免在本地中继服务器开始监听前写入桥接注册表。感谢 @nankingjing, @joshavant 和 @vincentkoc。 - **语音通话完成状态:** 从完整的保留事件存储中解析已完成的通话(涵盖 Gateway、工具和 CLI 状态路径),同时保持活跃通话查询性能。感谢 @Darren2030, @vincentkoc 和 @maweibin。 - **Agent 停止恢复:** 防止延迟中止的提示在销毁后重新获取孤立会话锁,使 `/stop` 命令能让对话准备好进行下一轮交互。 - **消息传递状态:** 报告失败和部分失败的尽力而为(best-effort)通道传递,而不是返回伪装成成功的消息工具结果。感谢 @masatohoshino, @vincentkoc 和 @shakkernerd。 - **WhatsApp 凭据恢复:** 在启动期间从有效备份中恢复格式错误的主认证状态。感谢 @LeonidasLux 和 @shakkernerd。 - **WhatsApp 引用回复:** 保留机器人撰写的出站引用元数据,以便对这些消息的回复在 WhatsApp Desktop 中保持回复气泡样式。感谢 @Bartok9 和 @vincentkoc。 - **WhatsApp 重连追赶:** 在有限的重连窗口期内接纳近期遗漏的 Baileys `append` 消息,同时保留启动时的过期历史防护。感谢 @VishalJ99 和 @vincentkoc。 - **WhatsApp 重启恢复:** 在账号登出或连接替换导致的断开后,停止自动重启循环,直到账号重新连接。感谢 @openperf。 - **本地 Gateway CLI 认证:** 将回环 CLI token/密码调用限制在非持久化设备作用域内,防止读取探测因过期的配对基线而阻塞后续的写入/管理员命令。(#95997) 感谢 @vincentkoc。 - **插件模块标识:** 在 jiti 转换插件条目时,将 OpenClaw 程序包块保留在 Node 的原生模块图中,防止重复评估和类标识漂移。感谢 @vincentkoc。 - **Shell 补全修复:** 在 doctor 和更新修复期间仅生成核心缓存,同时为新手引导和显式用户重建保留完整的插件命令补全。感谢 @joshavant。 - **MCP schema 诊断:** 将 draft-2020-12 编译器失败归因于外部 MCP schema,使格式错误的模式能生成可操作的设置错误。感谢 @vincentkoc。 - **Windows 计划任务恢复:** 在现有的有限启动轮询中保持干净的提前退出,仅当任务进程和 Gateway 监听器均不可观测时才回退。感谢 @vincentkoc。 - **iMessage 群组警告:** 当有效的群组发送者白名单允许接收群组时,抑制虚假的全量丢弃启动警告,并将真正的空白名单配置指向正确的修复方案。感谢 @vincentkoc。 - **控制面板移动端登录:** 连接失败后保持 Gateway 恢复指引可见,在受限屏幕上安全滚动已断开的网关,并改进移动端键盘和点击目标行为。感谢 @vincentkoc。 - **TUI 流式传输:** 在实时 Gateway 和嵌入式 TUI 会话中渲染仅增量(delta-only)的助手事件,而非等待最终响应。感谢 @flashosophy。 - **模型别名:** 在会话和聊天命令切换模型期间解析带提供商限定的别名,当提供商共享显示别名时避免冲突。感谢 @sahilsatralkar、@vincentkoc 和 @shakkernerd。 - **TUI 新建会话钩子:** 通过共享的 Gateway 生命周期创建 `/new` 会话,使命令和会话钩子在 Gateway 和嵌入式模式下均能接收已完成的父级对话记录,同时防止在活动轮次期间发生回滚。(#49918) 感谢 @BingqingLyu、@vincentkoc 和 @shakkernerd 感谢 @LonExplorer-coder、@vincentkoc 和 @shakkernerd。 - **TUI 中止诊断:** 在 Gateway 和本地 TUI 模式下,为中止的运行显示脱敏的工具参数验证摘要,且不暴露原始模型参数。感谢 @wsyjh8。 - **iOS Watch 回复:** 将排队中的快捷回复持久化到网关作用域的聊天发件箱中,并通过幂等聊天投递提交,防止重连后丢失、重复和跨网关发送。感谢 @NianJiuZst、@vincentkoc 和 @shakkernerd。 - **iOS Gateway 认证重试:** 将存储的设备令牌重试限制为已解析的环回主机,并拒绝通配符绑定地址,防止远程相似主机名接收受信任的重试凭据。感谢 @ly85206559 和 @vincentkoc。 - **Amazon Bedrock 控制平面超时:** 限制模型发现和应用程序推理配置查找,保留调用者取消操作,并在每个请求路径后关闭短期 SDK 客户端。感谢 @Alix-007、@vincentkoc、@shakkernerd 和 @obviyus。 - **Bedrock Mantle 发现:** 限制模型目录获取时间和响应大小,并释放被拒绝的响应体,以便停滞、超大或失败的提供商响应能安全回退。感谢 @zhangguiping-xydt、@vincentkoc 和 @shakkernerd。 - **Discord 线程标题提示:** 在 UTF-16 边界截断生成的标题消息和频道上下文,防止 Emoji 导致模型提示文本格式错误。感谢 @Alix-007、@vincentkoc、@mushuiyu886 和 @cursoragent。 - **任务状态迁移:** 在 sidecar 导入和现有共享数据库打开期间规范化旧的 `not-requested` 投递状态,使升级后的任务注册表和链接的 TaskFlows 无需手动 SQL 即可恢复,并在紧凑的控制台诊断中显示被拒绝的持久化值。感谢 @bek91、@shakkernerd 和 @vincentkoc。 - **回复预投递恢复:** 为每个预投递回调设置可由所有者覆盖的超时期限,在插件工作挂起后释放序列化回复通道,并仅在传输从未启动时保留持久的最终投递重试状态。(#104256) 感谢 @NianJiuZst、@BenjaminBrossi、@vincentkoc 和 @obviyus。 - **Signal 原生引用回复:** 在代理、显式、持久化和分块发送过程中,将活动入站消息保留为原生引用,同时将回复模式策略保留在 Signal 插件内部。(#105347) 感谢 @jesse-merhi 和 @vincentkoc。 - **媒体存储远程下载:** 限制响应头等待和停滞的响应体,关闭被放弃的重定向和错误响应,并删除部分临时文件,防止挂起的源文件阻塞调用者。(#104624) 感谢 @hugenshen 和 @vincentkoc。 - **Cron llama.cpp 工具模式:** 保持面向模型的 cron 声明模式与 llama.cpp 兼容,同时保留网关和运行时的非空验证。修复 #107449。感谢 @lee-xydt。感谢 @Patt92。 - **系统代理恢复指引:** 引导浏览器和应用程序用户前往设置或 OpenClaw 主机,而非仅提供终端退出指引,同时保留必需的停止、初始化和重启生命周期。(#114633) 感谢 @jesse-merhi。 ### 完整贡献记录 完整的贡献记录可在固定标签的 [CHANGELOG.md](https://github.com/openclaw/openclaw/blob/v2026.8.1-beta.2/CHANGELOG.md#complete-contribution-record) 中查看。 ### 发布验证 - npm 包:https://www.npmjs.com/package/openclaw/v/2026.8.1-beta.2 - 注册表压缩包:https://registry.npmjs.org/openclaw/-/openclaw-2026.8.1-beta.2.tgz - npm 完整性校验:`sha512-k4cwlyFOuXN5wN6NOH/gqxupGuvMkOr5OV2Eh7MJmmGFh86wvWSTrGBkL4XkNTg/kszWzGbotI8wKlZ468EjsQ==` - Exact-SHA npm 预检:https://github.com/openclaw/openclaw/actions/runs/31865167546 - 官方 npm 插件发布:https://github.com/openclaw/openclaw/actions/runs/31863860804 和 https://github.com/openclaw/openclaw/actions/runs/31864674947;独立注册表/运行时验证已通过,覆盖实际 89 个包的外部集合。 - 签名标签目标:`8f382a202ff1e15833394b481615dcdda99b04d7` - 发布溯源:核心发布者在获取前一个 beta 标签时超时,且 Fish Audio 的包级受信任发布者拒绝了 OIDC。它们的精确预检压缩包已通过凭据隔离的回退机制发布。注册表签名和压缩包身份已验证,但 `openclaw`、三个核心子包以及 `@openclaw/fish-audio-speech` 的 npm OIDC 溯源不可用。 - ClawHub 未通过此仅限 npm 的 beta 路径发布;现有的 ClawHub 选择器仍保留在上一版本。 - 发布后完整发布验证:https://github.com/openclaw/openclaw/actions/runs/31871527419 — **失败**。常规 CI、打包的 Telegram、Docker 运行时资产、干净安装/更新、所有已发布插件的运行时检查、定向插件 Docker 通道以及隔离的 Gateway 支持的实时模型轮次均已通过。该运行确认了未绑定的上下文引擎会话可回退到默认代理,同时也暴露了发布工具/测试夹具的失败。在未修复并出现绿色完整验证的后续版本前,请勿将此 beta 升级为稳定版。