← 返回更新日志

OpenClaw v2026.5.20-beta.1 预发布

2026-05-21 · GitHub 原文
### 变更 - Discord:让语音会话跟随配置的 Discord 用户进入语音频道,支持允许频道检查、多用户交接、有限制的协调以及 DAVE 恢复保留。(#84264)感谢 @fuller-stack-dev。 - Discord/语音:默认在实时语音会话指令中包含有限的 `IDENTITY.md`、`USER.md` 和 `SOUL.md` 配置文件上下文,可通过设置 `voice.realtime.bootstrapContextFiles: []` 来禁用。(#84499)感谢 @fuller-stack-dev。 - 依赖:将捆绑的 Codex 运行环境升级至 `@openai/codex` `0.132.0`,并更新应用服务器模型列表文档以匹配新目录。 - CLI/策略:新增捆绑的策略插件,用于基于策略的频道一致性检查、`doctor` 诊断结果以及可选的 workspace 修复。(#80407)感谢 @giodl73-repo。 - 代理/配置:允许设置 `agents.list[].experimental.localModelLean`,从而可为单个配置的代理启用精简本地模型模式,而无需全局启用。 - 提供商/xAI:新增设备代码 OAuth 登录方式,使远程和无头环境无需本地浏览器回调即可授权 xAI。(#84005)感谢 @fuller-stack-dev。 - 提供商/OpenRouter:对 OpenRouter 请求启用提供商级别的 `params.provider` 路由策略,其中模型和代理参数会覆盖默认值。感谢 @amknight。 ### 修复 - WhatsApp:将 Baileys 更新至 `7.0.0-rc12`。 - 依赖:将 `@openclaw/fs-safe` 更新至 `0.2.7`,使 OpenClaw 默认的 Python 辅助关闭策略在 Linux/macOS 上仍能保留最佳努力的 Node 写入回退,用于私有存储、密钥写入、运行日志和媒体附件。 - 浏览器:对截图和带标签的快照应用配置的图像清理限制,使浏览器捕获的图像遵循与其他图像结果相同的缩放策略。(#84595) - Doctor:在 `doctor --fix` 期间移除无法识别的 `models.providers.*.models[*].compat.thinkingFormat` 值,以便升级后过时的提供商模型配置能够通过验证。修复 #77803。 - 状态:当会话固定在与 `agents.defaults.model.primary` 不同的模型上时,显示配置的默认模型、会话选择的模型、原因、清除提示以及文档链接。 - Mac 应用:保持本地打包使用稳定的应用标识进行签名,以便进行权限测试,并修复当前 Vite/Highlight.js 导出下的 Control UI 生产构建。 - macOS 应用:将内置的 Peekaboo 桥接更新至 3.2.1,使 OpenClaw 托管的 UI 自动化能够与当前的 Peekaboo CLI 捕获流程配合使用。 - Cron:对于成功的定时运行,当诊断信息中仅包含尾部纯工具警告时,仍传递首选 final assistant 输出,而不是将运行标记为失败。 - fix(mattermost):在缺少频道类型时关闭失败 [AI]。(#84091)感谢 @pgondhi987。 - 重新检查重建的 system.run argv [AI]。(#84090)感谢 @pgondhi987。 - CLI:除非设置了 `OPENCLAW_ENABLE_PRIVATE_QA_CLI=1`,否则将私有 QA 子命令排除在导出的命令描述符之外,以使根帮助和子命令标记与运行时注册保持一致。(#84519) - CLI/cron:限制 `openclaw cron show` 的任务查询分页,使不推进或无限制的 `cron.list` 响应失败而不是挂起命令。修复 #83856。(#83989) - 代理/消息:在成功发送源频道 `message` 后停止仅消息工具轮次,同时保持会话写锁定下的对话镜像。(#84289) - 代理:将静默心跳响应工具对话产物过滤出嵌入的上下文快照,以避免后续用户轮次被心跳无操作消息污染。(#83477)感谢 @fuller-stack-dev。 - 代理/OpenAI:对每个提供商/模型/工具签名记录一次重复的严格工具模式降级诊断,减少重复调试噪音,同时保留 `strict=false` 的回退行为。修复 #82930。(#82933)感谢 @galiniliev。 - 代理/代码模式:在模型可见的模式文本中明确说明 `exec` 工具的 JavaScript/TypeScript 限制、无 Node 模块以及目录桥接约束,使代理无需反复试错即可使用已启用的工具。(#84269)感谢 @Kaspre。 - Codex:在没有设置每次调用或配置的图像超时时,为 `image_generate` 动态工具调用设置 120 秒的默认看门狗,使图像生成不再回退到通用的 30 秒桥接超时。(#84254)感谢 @moritzmmayerhofer。 - Codex:避免在大型诊断积压清除且不阻塞工具响应时产生重复的动态工具终端诊断。(#82937)感谢 @galiniliev。 - CLI/消息:当频道发送返回消息 ID 时,在 `openclaw message --json` 输出中包含稳定的顶层 `messageId`。(#84191)感谢 @100menotu001。 - Cron:在加载或添加定时任务时保留旧版顶层数组格式的 `jobs.json` 存储,使旧版 cron 任务在升级过程中不再被视为空存储。修复 #60799。(#84433)感谢 @IWhatsskill。 - Gateway/代理:当 `agents.list[].name` 未设置时,在 Gateway 代理摘要中使用代理的 `identity.name`,使配置的代理标签在客户端中保持可见。(#84355;引用 #57835)感谢 @luoyanglang。 - 频道/回复:在消息工具回复中保持正常 `/verbose` 模式下失败工具进度的紧凑性,并防止最终答案后出现延迟的纯文本工具输出。(#84303)感谢 @VACInc。 - 插件/钩子:为 `before_compaction` 和 `after_compaction` 钩子应用默认 30 秒超时,避免挂起的插件处理程序阻塞压缩完成。(#84153) - Discord:在适配和渲染 Discord 消息控件时保留禁用的演示按钮。(#84188)感谢 @100menotu001。 - Twitch:添加仅测试用的客户端管理器注册表重置辅助函数,使非隔离的 Twitch 测试能够在测试用例之间清除缓存的管理器。修复 #83887。(#84244)感谢 @hclsys。 - Cron:在保留回复交付上下文的同时,在主会话定时工作的唤醒通道上运行,使后台 cron 轮次不再阻塞人类主会话聊天。修复 #82766。(#82767)感谢 @galiniliev。 - Cron:对隔离的定时任务使用结构化的嵌入式运行拒绝元数据,使被阻止的 exec 请求失败任务,而不会将普通助手散文视为拒绝。(#84067)感谢 @abnershang。 - Cron:保留成功定时运行的恢复工具警告诊断信息,使最终的 cron 输出得以交付,而不会被后处理的警告替换。(#84045)感谢 @abnershang。 - 插件/性能:将显式的插件发现结果贯穿传递给 `loadBundledCapabilityRuntimeRegistry`、`resolveBundledPluginSources` 和 `listChannelCatalogEntries`,使已持有发现结果的调用者跳过重复的文件系统遍历。感谢 @SebTardif。 - 加固更新重启脚本创建 [AI]。(#84088)感谢 @pgondhi987。 - Docker:在官方发布镜像保留列表中包含捆绑的 Codex 插件,确保 Docker 清理后默认的 OpenAI 代理运行环境仍然可用。修复 #83613。(#83626)感谢 @YuanHanzhong。 - CLI/channels:当滚动尾部窗口恰好从行边界开始时,保留 `openclaw channels logs` 输出的第一行,与 `src/logging/log-tail.ts` 中已修复的 `readLogSlice` 行为一致。 - Control UI:将终端会话状态视为权威,覆盖过时的活动运行标志,使已完成的终端运行不再显示中止/实时 UI。(#84057) - CLI:保留内联根选项值中的嵌入等号,而不是在第二个分隔符后截断。(#83995)感谢 @ThiagoCAltoe。 - Matrix/config:接受 `messages.queue.byChannel.matrix` 队列覆盖,并使队列提供者的模式/类型键与 Matrix、Google Chat 和 Mattermost 保持一致。感谢 @bdjben。 - CLI:通过共享的错误格式化器格式化 `openclaw acp client` 失败,使对象形状的错误保持可读,而不是打印 `[object Object]`。修复 #83904。(#84080) - 提供商/Ollama:将未知能力的模型默认为支持工具,使发现的本地 Ollama 模型在 `/api/show` 省略能力时能够使用工具。(#84055)感谢 @dutifulbob。 - 安装程序/Windows:将 `install.ps1` 入门指南作为附加的子进程启动,使全新的原生 Windows 安装不会在 `Starting setup...` 处明显冻结或损坏向导的终端渲染。 - CLI/update:在单版本 CLI/Gateway 协议偏差下保持重启健康检查正常工作,并在包根目录未改变时对所有后续命令使用托管 Gateway 服务 Node,使 `openclaw update` 在存在多个 Node 安装时不再静默切换到不同 Node 二进制。感谢 @amknight。 - CLI/gateway:在 `gateway status` JSON 输出中包含运行中的 Gateway 版本,保留现有服务器元数据,同时对于读取探测回退到状态 RPC 数据。修复 #56222。感谢 @galiniliev。 - 内存/搜索:当活动内存搜索超时时关闭本地嵌入提供者,使待处理的本地模型加载和嵌入上下文被中止并释放。(#83858)感谢 @brokemac79。 - CLI/nodes:在 `openclaw nodes approve` 之前请求待处理的节点表面审批范围,使支持 exec 的节点审批能够使用管理员范围的 Gateway 凭证,而不是因 `missing scope: operator.admin` 而失败。(#84392)感谢 @joshavant。 - 代理:在 `pi-trajectory-flush` 超时警告中包含有限制的轨迹队列写入器诊断,使刷新停滞显示待写入、队列字节和追加状态。修复 #82961。(#82962)感谢 @galiniliev。 - 代理/子代理:通过重试不支持对话等待的唤醒操作并强制消息工具交接,恢复过时的完成宣布,当请求者运行已过时时。(#83699)感谢 @galiniliev。 - 代理/子代理:将通配符子代理目标允许列表限制为已配置的代理,同时保留显式列出的兼容性目标。修复 #84040。(#84357)感谢 @joshavant。 - 提供商/Anthropic:将通过 Claude CLI 认证选择的 Anthropic 模型引用路由到 Claude CLI 运行时,使简写引用(如 `anthropic/opus-4.7`)不再回退到嵌入式 Anthropic 计费。修复 #84222。(#84374)感谢 @joshavant。 - 代理:对于云和自托管提供商,如果显式设置了 `models.providers.<id>.timeoutSeconds` 值高于默认空闲看门狗,则优先使用该值,使长时间等待首个 token 时不再在约 120 秒后回退(当提供商超时更高时)。修复 #83979。(#83970?原文为 #83979,保留)。 - 代理/Codex:加密的 Responses 推理重放保持限界于出处,使过时的镜像 Codex 对话在请求组装前丢弃无效的加密内容,同时保留匹配的同一会话重放。修复 #83836。(#84367)感谢 @joshavant。 - 代理/子代理:跳过休眠完成请求者的过时嵌入式运行唤醒探测,使延迟的子代理完成直接进入请求者代理/直接交接,而不是产生 `reason=no_active_run` 队列噪音。(#82964)感谢 @galiniliev。 - CLI:在瞬态失败后重试配置快照读取,使一次被拒绝的读取不再毒化同一进程中的后续命令。(#83931)感谢 @honor2030。 - 媒体:在使用远程媒体回退文件名之前解码 URL 路径的基础名称,使诸如 `My%20Report.pdf` 之类的文件显示为 `My Report.pdf`。修复 #84050。(#84052)感谢 @jbetala7。 - WhatsApp:澄清入站群组诊断,使观察到但未注册的群组指向 `channels.whatsapp.groups`,而不更改路由或发送者授权。(#83846)感谢 @neeravmakwana。 - WhatsApp:除了重新连接处理程序外,还通过 30 秒的定期定时器清空待处理的出站投递,使在提供商已连接时排队的消息不再等待下一次重新连接才能发送。(#79083)感谢 @Oviemudiaga。 - CLI/TUI:在 TUI 自动补全中包含 Gateway 插件斜杠命令,使连接会话能够建议由运行中的 Gateway 暴露的插件自有命令。(#83640)感谢 @se7en-agent。 - Gateway/移动端:恢复 iOS 和 Android 入门引导中的 QR 设置码交接有限制的操作符令牌,同时将管理员和配对范围排除在引导之外。(#83684)感谢 @ngutman。 - iOS:修复 TestFlight 构建的 Release 存档编译。(#84255)感谢 @ngutman。 - 代理/压缩:使用宿主安全超时限制插件拥有的 CLI 对话压缩,使挂起的上下文引擎无法再阻塞轮次后清理。(#84083)感谢 @100yenadmin。 - Control UI/使用:在用法面板中截断过长的上下文技能、工具和文件名,同时悬停时显示完整名称。(#42197)感谢 @Rain120。 - Codex:在 `/codex account` 中优先考虑显式的 `models auth order set` 和 `config.auth.order`,而不是过时的 `lastGood`,并且当每个显式顺序的配置文件都不符合条件时显示 `no working credential`,而不是将较低排名的配置文件标记为活动。修复 #84386。(#84412)感谢 @openperf。 - 代理:使 `messages.suppressToolErrors` 对可变工具失败生效,使配置的聊天界面不再接收单独的警告负载。(#81561)感谢 @moeedahmed。 - 代理/回退:对于混合速率限制加计费回退耗尽,提供计费指导说明,而不是泛泛的失败信息。修复 #79396。(#79489)感谢 @aayushprsingh。 ### 发布验证 - npm 包:https://www.npmjs.com/package/openclaw/v/2026.5.20-beta.1 - 注册表 tarball:https://registry.npmjs.org/openclaw/-/openclaw-2026.5.20-beta.1.tgz - 完整性校验:sha512-6xBnBZqnqI4HoAs7CU1ZmzFDqPhe/aauKr0DsmMEReLvxap9DyLK7YPTTDU/A5v3dlSHlCgzFbVIvgTaUXgy4w== - 完整发布验证:https://github.com/openclaw/openclaw/actions/runs/26195853190 - npm 预检:https://github.com/openclaw/openclaw/actions/runs/26195855712 - 发布:https://github.com/openclaw/openclaw/actions/runs/26196993217 - npm Telegram beta E2E:https://github.com/openclaw/openclaw/actions/runs/26198047747