← 返回更新日志

OpenClaw v2026.5.31-beta.4 预发布

2026-06-01 · GitHub 原文
### 重点 - 代理和基于 CLI 的后台运行现在能更干净地从中断的工具调用、过期的会话绑定、压缩交接和媒体投递重试中恢复。(#88129, #88136, #88141, #88162, #88182) - 频道和移动端投递在 Telegram、WhatsApp、iMessage、Slack、Discord、Microsoft Teams、Google Chat、Google Meet 以及 iOS 实时通话中更加稳定。(#88096, #88105, #88183, #88231) - 网关和频道设置增加了 Tailscale Serve 服务名称绑定、通信通知设置、更安全的 `agents add`,以及跨 Discord、Telegram、Slack、Matrix 和 Teams 更可靠的进度草稿。(#74715, #83115, #88314, #88749) 感谢 @VladyslavLevchuk 和 @zhangguiping-xydt。 - 提供商和插件请求现在绑定了更多的定时器、重试、OAuth/设备码生命周期、媒体下载、本地服务探针和生成内容轮询路径,防止它们挂起运行。 - 技能、会话元数据、网关运行时状态、插件元数据和存储写入在热路径上减少了重复工作,同时保持配置和分发行为稳定。 - 技能和插件加载现在能更清晰地处理过期的禁用快照和加载器失败,因此频道轮次能避免被禁用的 SecretRef,操作员也能获得更好的恢复指导。(#79072, #79173) 感谢 @zeus1959。 - 工作面板、SecretRef 插件清单、托管的 iOS 推送中继以及外部 Copilot/Tokenjuice 打包提供了更广泛的编排、集成和插件交付面。(#82326, #87469, #87796, #88107, #88117) - 技能工坊现在拥有更完整的控制 UI 流程,包含提案列表、今日操作、修订交接、可搜索的文件预览、审核状态、语言覆盖和可复用的会话路由。 - 聊天和控制 UI 启动路径在历史加载期间保持发送存活,增量流式传输差异,流式传输时跳过 Markdown 处理,并暴露更平和的编辑器控制。(#88772, #88825) - 提供商覆盖和模型元数据现在包括 MiniMax M3、账户 OAuth 端点、Google/Vertex 目录修复、OpenRouter SQLite 模型缓存、Copilot Claude 1M 能力、Foundry 推理对齐以及 OpenAI 响应重放防护。(#88480, #88512, #88851, #88860) - iMessage 监控状态、入站队列和插件安装分类账已迁移到基于 SQLite 的状态,因此重启和本地监控能以更少的重复文件系统扫描进行恢复。(#88794, #88797) - 发布、CI、Docker、E2E 和诊断通道现在限制了更多日志、响应体、就绪探针、工件检查和状态轮询,使失败报告有界证据而非停滞。 ### 变更 - 文档:新增专门的技能工坊指南,涵盖受管技能创建、可审核的提案、CLI、网关、代理工具行为、审批策略、支持文件和恢复。感谢 @shakkernerd。 - 技能:让 `skill_workshop` 代理工具通过受保护的审核流程应用、拒绝和隔离明确提案。感谢 @shakkernerd。 - 技能:让提案携带经过批准的支持文件,放在标准技能文件夹下,并带有扫描器、哈希和回滚保护。感谢 @shakkernerd。 - 技能:允许在审批前,使用带版本和日期的提案前文对未决提案进行原地修订。感谢 @shakkernerd。 - 技能:新增技能工坊,包含未决提案、CLI/网关审核操作、回滚元数据以及 `skill_workshop` 代理工具。感谢 @shakkernerd。 - 技能工坊:新增控制 UI 导航、样式化仪表盘、提案今日视图、修订对话框、文件预览模态框、可搜索的预览文件、可复用的会话交接和本地化字符串。 - 插件:将 Tokenjuice 外部化为官方 `@openclaw/tokenjuice` 插件,附带 npm 和 ClawHub 发布元数据。 - 插件:将 GitHub Copilot 代理运行时外部化为官方 `@openclaw/copilot` 插件,附带 npm 和 ClawHub 发布元数据。 - iOS:新增托管推送中继默认值、实时通话回放,以及一个受保护的 WebSocket ping 路径,以实现更可靠的移动端会话。(#88096, #88105, #88231) - iOS:支持原生 iPad 显示布局。 - 工作面板:新增编排原语和代理协调工具,用于多代理规划和运行跟踪。(#87469) - 工作面板:连接基于任务的板运行,并在编辑模态框中显示任务评论。 - 网关:支持 Tailscale Serve 服务名称绑定,用于网关暴露和状态。 - 代码模式:新增内部命名空间,用于作用域代理/全局会话和精确命名空间工具分发。(#88043) - 代码模式:新增 MCP API 文件和文档,用于代码模式集成。 - 控制 UI:新增“梦游”标签页的代理选择器,并通过梦游状态、日记和日记操作传播所选代理。(#78748) 感谢 @stevenepalmer。 - 控制 UI:为活跃聊天输入添加更平和的聊天编辑器控制。(#88772) - 控制 UI:暴露通信通知设置标签页,使得通知控件可从设置中访问。(#74715) 感谢 @VladyslavLevchuk。 - 插件 SDK/频道:新增类型化呈现命令操作,使原生斜杠命令和回调控件能够通过有能力的频道插件往返传递而不被重新解释。(#88721) - 插件:新增 SecretRef 提供商集成清单契约,并提取共享的 LLM 核心包供提供商/插件复用。(#82326, #88117) - 插件:将插件安装索引持久化到 SQLite 中,使已安装包查询在重载时减少文件系统扫描。(#88794) - 提供商:新增 MiniMax M3 模型支持。(#88860) - 诊断:新增磁盘空间健康检查,并稳定升级后的 JSON 探针。 - 频道:将入站队列存储到 SQLite 中,并将 iMessage 监控状态迁移到基于 SQLite 的跟踪。(#88797) - 技能:新增核心技能索引,并集中技能运行时加载、状态、过滤和提示格式化。 ### 修复 - 代理/TUI:在插件禁用时,阻止本地自定义提供商运行加载插件运行时和身份别名元数据。 - 代理/TUI:恢复飞行中的 TUI 运行切换行为,保持无策略原生钩子回退可用,防范消失的工作空间,并保持轻量隔离子代理的轻量性。 - 代理/媒体:防止异步图像、音乐和视频生成启动结束 Codex 轮次,使混合请求可以在媒体后台渲染时继续处理摘要或其他工作。 - 代理/Codex:防止公共 OpenAI API 密钥配置文件被视为原生 Codex 应用服务器身份验证,同时保留持久化的 Codex OAuth 会话。 - 代理/Codex:流式传输 Codex 应用服务器最终答案的部分内容到实时回复预览,在 SQLite 中保留 ACP 元数据,优先使用真实工具结果而非合成修复输出,并在 ACP 运行时重构期间保留工作空间/会话元数据。(#88405, #88724, #88730) - 控制 UI:保持折叠的工具卡片标有工具名称和操作,而非通用输出文本。感谢 @shakkernerd。 - 代理/Codex:当 `skill_workshop` 可用时,在 Codex 应用服务器提示中显示技能工坊指导。感谢 @shakkernerd。 - 代理/身份验证:原子写入身份配置文件,添加强制重新登录恢复,在仅状态卸载期间保留工作空间,并在过大的轮次前进行压缩,使恢复路径避免部分状态。 - 技能:跳过来自过期持久快照的禁用技能环境覆盖,防止禁用技能的 `apiKey` SecretRef 中止嵌入式或频道轮次。(#79072, #79173) 感谢 @zeus1959。 - CLI:在 `openclaw agents add` 期间避免实时目录验证,因此添加次要代理不再依赖提供商目录可用性。(#76284, #88314) 感谢 @zhangguiping-xydt。 - CLI:保持 `plugins list --json` 仅走快照路径,使插件扫描避免加载完整运行时状态图。 - CLI/桌面:通过 shell 桥接 WSL 剪贴板操作,并识别手动更新的 launchd 任务。(#88764) - 插件:使 PixVerse 外部插件 ClawHub 元数据明确,并将其排除在捆绑分发构建之外。 - 插件:澄清插件加载器失败指导,使缺失或不兼容的插件包能引导操作员找到正确的修复路径。 - 插件:在阻止安装后保留 npm 插件根目录,隔离缓存的工具运行时兄弟路径,并隔离 Web 提供商工厂失败,防止一个坏插件污染兄弟运行时路径。(#77237, #88807) - 定时任务:保持 SQLite 定时任务迁移与旧版运行日志表、归档任务存储、诊断定时任务名称以及旧版一次性运行后删除行为兼容。(#88285) - 定时任务:保持更新交付验证范围受限,加固重启状态,并在隔离的定时任务清理中退役 MCP 运行时。 - 内存:按存储序列化 QMD 更新/嵌入写入,在读错误时保留阶段信号,并在滚动时重写生成的转录路径,使内存/搜索状态在并发的网关和 CLI 活动中幸存。(#66339, #85931) 感谢 @openperf。 - 媒体:允许经验证的 TXT、JSON、YAML 和 YML 主机本地文档发送,同时拒绝伪装成二进制文件的文本文件。(#79658) 感谢 @simplyclever914。 - 语音通话:通过诊断工具将旧版通话日志迁移到插件状态的 SQLite 中,同时使格式错误或不完整的源可重试。(#88731) - 提供商:限制来自 OpenAI、Runway、xAI、MiniMax、BytePlus、DashScope 兼容、FAL、OpenRouter、Google、Vydra 和 Comfy 提供商的生成媒体下载。 - 提供商:将 Google 默认解析为 `google-generative-ai`,注册 Vertex 静态目录行,对齐 Foundry 推理元数据,在 Foundry 回退时跳过 DeepSeek V4 思考参数,使用 MiniMax 账户 OAuth 端点,保留 Copilot Claude 1M 能力,抑制禁用的 Ollama 推理输出,保留 OpenAI 停止完成的工具调用,并在 Responses 存储禁用时避免重放 ID。(#88480, #88512) - 提供商/OpenAI:避免孤立 Responses 消息 ID 重放,并在原始 HTTP 401 提供商错误到达用户可见日志之前进行清理。 - 提供商:在创建中止信号之前限制 GitHub Copilot OAuth 请求超时。 - 定时任务:在临时模型速率限制后重试重复任务,而不是等待下一个预定时间段。 - 代理/Codex:在清理期间保持活动会话锁定,恢复中断的 CLI 工具转录,保留 Codex 身份验证和压缩会话标识,清除孤立工具状态,限制应用服务器空闲计时器,并使媒体完成投递可重试。(#88129, #88136, #88141, #88162, #88182) - 聊天/UI:在控制 UI 中将网关聊天失败显示为可见的助手消息,而非仅设置不可见错误状态。 - 频道:恢复失败的进度草稿启动,并刷新刚刚启动的进度草稿,覆盖 Discord、Telegram、Slack、Matrix 和 Teams,避免丢失早期进度更新。(#83115, #88749) - Discord:限制 REST 实体缓存增长,并使恢复的工具警告输出保持提及惰性。 - 频道:限制 Telegram、Discord、WhatsApp、Signal、飞书、Google Chat、Microsoft Teams、QQBot、Nostr、Zalo、Zalouser 和 Nextcloud 风格请求/重试计时器;保留 SMS 审批回复路由;重试 WhatsApp QR 登录 408 超时。(#88183) - 安全/配置解析:拒绝不安全的 OAuth/令牌生命周期、重试后延迟、入站时间戳、响应体大小、命令超时配置、沙箱观察者令牌 TTL,以及关闭后的网关 WebSocket 调用。 - 网关/安全:速率限制引导令牌验证,保护直接会话显示名称,并添加 Tailscale Serve 服务名称支持,而不削弱网关暴露检查。 - 提供商/媒体:限制托管和本地提供商之间的本地服务、模型、使用量、队列、生成媒体、TTS、音乐、工作流轮询和提供商 OAuth 请求计时器。 - 插件/安装:为频道提供商添加 npm README 覆盖,并将 WhatsApp 媒体解码固定到 Baileys 支持的同行范围,使外部 WhatsApp 安装不会因 npm 同行解析失败。(#88786) - 发布/CI/E2E:限制候选版本读取、β 烟雾 REST 调用、变更日志恢复、厨房水槽和捆绑插件就绪探针、秘密提供商探针、Vitest 路由和主线测试不稳定。(#88127, #88137, #88155, #88160) - 发布/CI/E2E:刷新固定 Node Docker 镜像摘要,并使配对挑战断言与围栏批准命令对齐。(#84981, #84988) 感谢 @LibraHo。 - 发布/CI/E2E:通过仓库 pnpm 运行器运行秘密提供商集成验证,使原生 macOS 和 Windows 验证使用水合包管理器填充程序。 - 发布/CI/E2E:通过仓库 pnpm 运行器运行 Telegram 桌面验证网关,使原生 macOS 验证使用水合包管理器填充程序。 - 文档/CI:通过仓库 pnpm 运行器运行 Mintlify 锚点检查,使文档链接验证在 pnpm 仅通过水合包管理器填充程序可用时正常工作。 - 代理:保持配置的备用模型元数据类型化,使提供商参数、上下文令牌上限和媒体输入限制不会破坏更改的网关类型检查。 - 代理:在接受 `sessions_send` 主体别名之前隐藏验证,同时保持面向模型的 `message` 模式规范。(#88229) 感谢 @zhangguiping-xydt。 - 聊天/UI:在历史加载期间保留启动聊天发送,解除初始控制 UI 聊天发送的阻塞,增量流式传输聊天差异,在流式传输时跳过 Markdown 解析,尊重 Chromium 可执行文件覆盖,并为 E2E 检测系统 Chromium。 - 频道:保留较长的飞书流式回复,当已接受的飞书轮次未产生最终回复时发送可见回退,容忍 iMessage 自聊天时间戳偏差,正确解码 Nostr `npub` 允许列表,并在频道投递期间抑制原始提供商错误。(#87896) - 配置/状态/诊断:跳过状态目录中 .env 文件中未解析的 shell 引用,在深度状态审计期间解析网关身份验证密钥,尊重显式 PI 运行时策略,报告运行时工具模式错误,并保持升级后 JSON 稳定。(#88288) - 网关/会话状态:从网关插件注册表列出命令,加固 MCP 环回工具模式,从 `sessions.list` 隐藏幻影代理存储行,使任务持久化失败显式化,并在交互式分发事件中携带会话 UUID。 - OpenAI/TTS:处理 OpenAI TTS 语音的速度指令。(#74089) - CI/Crabbox:保持默认运行器容量在 Azure 积分按需 D4 通道上,使用 Azure SSH 端口和独立于 Git 的完整检查任务,使广泛验证避免低优先级点配额停滞、水合端口不匹配、非 Git 水合工作空间和过时的 AWS 区域提示。 - CI/Crabbox:将 Crabbox 包装器和 Testbox 工作流编辑路由到其回归测试,使更改测试门不会静默运行零规格。 - CI/工作流:将工作流健全性辅助编辑路由到其保护测试,并覆盖复合动作输入插值检查。 - CI/工具:将 CI 范围、依赖、变更日志和文档辅助编辑路由到其所有者测试,而不是静默跳过更改测试覆盖。 - CI/工具:将包、发布和安装辅助编辑路由到其所有者测试,使更改测试门覆盖发布和安装脚本更改。 - CI/工具:将共享脚本库编辑通过其所有者测试路由,使锁定、进程、安全和扫描辅助不会跳过更改测试覆盖。 - CI/工具:一旦更改的差异已经需要广泛回退,跳过昂贵的导入图扫描,在保持本地更改测试计划快速的同时仍收集显式所有者测试。 - CI/工具:当匹配 `test/scripts` 或 `src/scripts` 覆盖已存在时,将脚本编辑通过常规所有者测试路由。 - CI/工具:在内存 FD 重放脚本中尊重选项终止符,使后续参数不会重新解析。 - 发布/CI/E2E:断言插件生命周期运行时检查输出,而不仅仅是捕获它。 - 发布/CI/E2E:使网关网络验证公布的运行状况 RPC,并在不耗尽完整开放超时的情况下重试早期 WebSocket 关闭。 - 发布/CI/E2E:在发布、Parallels 烟雾、插件严酷测试和扩展内存脚本中尊重选项终止符。 - 发布/CI/E2E:当请求的套件摘要缺失或无效时,使插件网关严酷测试 QA 块失败。 - 性能:使用生成的插件资产但不带 CLI 启动元数据预构建 QA 运行时探针。 - 性能:为仅运行时的 CLI 启动和网关监视构建配置文件跳过声明打包。 - 性能:复用已准备的提供商句柄、严格的工具模式、网关运行时元数据、会话维护配置、插件元数据、捆绑技能允许列表、包本地插件工件、单入口存储写入以及已验证/序列化的会话提示 Blob。