← 返回更新日志

OpenClaw v2026.5.25-beta.1 预发布

2026-05-26 · GitHub 原文
## 2026.5.25-beta.1 ### Beta 1 后期修复 - iMessage:将当前频道/账户的入站附件根路径纳入图片工具,使得保存在 `~/Library/Messages/Attachments` 下的 iMessage 附件(包括通配符根路径)能够通过现有的入站路径策略读取,而不会被拒绝为 `path-not-allowed`。修复 #30170。(#86569) - iMessage:当 `channels.imessage.accounts` 同时列出 `default` 和指向同一本地 Messages 源的命名账户时,去重监视器启动,防止重复的 `imsg rpc` 进程和加倍的入站回复,同时保留重复账户用于出站发送/状态查询。修复 #65141。(#86705) - Codex:在主机路径与沙箱路径之间重映射工作区指令文件时,保留沙箱引导路径格式。 ## 2026.5.25 ### 修复 - 安装程序:让本地前缀 CLI 安装程序在 musl Linux 上使用 Alpine 的 `apk` Node.js、npm 和 Git 包,而不再下载会导致 `node:sqlite` 失败的 glibc Node 压缩包。 - 检查:预过滤跟踪的冲突标记扫描,使得变更检查在干净运行时避免读取每个仓库文件。 - 插件:允许链接的本地插件路径探测 TypeScript 源条目,而无需编译后的包输出,从而在原生 Windows 上恢复源码检出插件的开发。 - CLI:在启动 OpenClaw 命令之前,将源码检出的构建输出路由到 stderr,避免陈旧的本地构建污染 `--json` 标准输出。 - 安装程序:在 Alpine Linux 上通过 `apk` 安装 Node.js,而不是回退到 NodeSource 包管理器路径。 - 代理/性能:缓存基于清单的 CLI 提供者描述和回退提供者解析,使得模型回退重试避免重复的捆绑提供者运行时扫描,同时在插件重载时仍使缓存失效。 - 安装程序:检测 musl Linux shell(如 Alpine)为 Linux,而不是在 npm 安装前拒绝它们。 - Windows:通过跨平台启动器运行带有环境覆盖的直通 Node 包脚本,使得网关、TUI、Docker-all、生成模块格式化以及可选的 Discord 原生 opus 安装入口点能在原生 Windows 上工作。 - 测试:通过 Node 包装器运行 Vitest 导入计时入口点,使得原生 Windows 包脚本能够收集导入诊断信息。 - 控制 UI:将大型构建时运行时依赖拆分为稳定块,使得 Linux/Docker 安装和包构建保持在应用块警告阈值以下。 - 测试:通过 Node 包装器运行 `test:max` 和 `test:changed:max`,使得高工作线程 Vitest 入口点能在原生 Windows 上工作。 - 测试:在综合 RPC 遍历中重试临时的环回 HTTP 重置,使得原生 Windows 就绪探测在网关已经就绪后不会失败。 - 测试:通过 Node 包装器运行 `test:serial`,使得有针对性的串行 Vitest 命令能在原生 Windows 上工作。 - 测试:规范化 Vitest 配置路径断言,使得基础设施配置套件能在原生 Windows 路径上运行。 - 安装程序:当存在原始 npm `min-release-age` 配置时,避免不兼容的生成 `--before` 安装过滤器。(#85491) 感谢 @TurboTheTurtle。 - 代理/MCP:限制捆绑的 MCP `tools/list` 目录发现,使得挂起的 MCP 服务器不会阻塞会话工具物化。(#85063) 感谢 @nxmxbbd。 - 频道/iMessage:在去抖/路由之前,通过 GUID 恢复格式错误的无锚点群组监视负载,并丢弃不可恢复的负载而非回复发送者 DM。修复 #84470。参考 #84503。感谢 @zhangguiping-xydt 和 @zqchris。 - 频道/iMessage:在完成追赶传递后,将启动追赶光标从实时处理的行前进,包括追赶仍在运行时收到的行,从而避免重启时重放它们。(#85475) 感谢 @TurboTheTurtle。 - 测试:将共享的 Windows 命令助手挂载到裸 Docker E2E 测试框架容器中,使得已发布的升级幸存配置可以在 Linux 上启动。 - 测试:保持插件绑定命令转义 Docker 烟雾测试专注于其预期的 Vitest 用例,并跳过仅源码安装生命周期脚本。 - 测试:让通用插件安装 E2E 断言使用可配置的临时根目录和 Windows 主目录相对安装路径。 - 测试:保持综合插件断言夹具在可配置的临时根目录上,使得原生 Windows 运行不再跳过全表面诊断覆盖。 - 测试:当子启动从未产生就绪探测或进程指标时,使网关启动基准测试失败,而不是报告所有 `n/a` 样本为通过。 - 配置/密钥:允许 exec SecretRef id 包含 `#` 选择器,使得 AWS 风格的 `secret#json_key` id 验证一致。(#80731) 感谢 @TurboTheTurtle。 - 测试:保持 Telegram 用户凭证助手在平台临时和路径 API 上,使得原生 Windows 凭证导出和恢复命令不会通过仅 POSIX 路径写入。 - 安装程序:在进度计数器中包含可选的验证阶段,使得 `--verify` 显示 `[4/4] 正在验证安装` 而不是 `[4/3]`。 - Crabbox:让包装器从链接的 Git 工作树中找到同级的 Crabbox 检出,使得 Codex 工作树无需 PATH 垫片即可运行远程门控。 - CI:在共享助手标志解析中容忍标准的 `--` 选项分隔符,使得性能和测试命令接受包管理器参数转发。 - 测试:保留 `--` 传递参数在实时媒体、实时分片和扩展批次测试框架中,使得 Vitest 过滤器不会被误读或静默忽略。 - Crabbox:默认 AWS macOS 运行程序请求按需容量,使得 EC2 Mac 证明命令不会在不支持的 Spot 市场默认值上失败。 - 测试:通过 Windows npm 垫片运行升级幸存配置配方命令,使得原生 Windows 包遍历保持基线配置覆盖。 - 图片工具:在没有提供者运行时钩子时,使用捆绑的 Anthropic 媒体限制来解析图片压缩策略。 - 测试:当网关 RSS 采样不可用时,使综合 RPC Docker 遍历失败,而不是静默禁用每进程内存守卫。 - 测试:在 Vitest 包装器中抑制当前 Rolldown 插件计时警告格式,使得小型针对性运行不会在重复的构建计时噪音中淹没有用的 stderr。 - 模型/OpenRouter:使用来自 `top_provider` 元数据的端点特定 OpenRouter 上下文限制,使得提供者路由模型不再夸大可用上下文。(#85949) 感谢 @TurboTheTurtle。 - Crabbox:同步干净的稀疏检出远程变更门控,通过临时完整检出并叠加仅本地提交作为工作树变更,使得 git 支持的脚本检查可以播种运行程序仓库。 - 代理:在子代理交接路径上解析完成交付策略和队列默认值时,避免加载捆绑的频道插件。 - 测试:允许通过显式目标预检分割 Vitest 配置分片,使得 CI 分片作业运行其预期项目。 - 测试:使启动内存和启动基准烟雾脚本在从新源码检出运行时构建 CLI 启动工件。 - iMessage:将授权的斜杠命令回合标记为文本来源命令,使得 `/status`、`/new` 和 `/restart` 确认返回源对话。(#82642) 感谢 @homer-byte。 - Crabbox:将 Corepack 垫片安装到可写的 hydration `PNPM_HOME` 中,使得本地 AWS 运行程序 hydration 不再尝试覆盖 `/usr/local/bin/pnpm`。 - 实时测试:当选择的覆盖因超时或陈旧的高信号过滤器而丢失时,使网关实时模型扫描失败,而不是报告虚假的缺失配置文件覆盖,并将 Docker OpenAI 网关覆盖固定到当前 `gpt-5.5` 通道。 - 测试:当统计样本或配置的限制无效时,使 Docker 资源上限检查失败,而不是静默报告零峰值。 - 认证/Codex:当唯一可用的种子位于 macOS 钥匙串中时,从嵌入式旧版 Codex OAuth 侧车加载器发出一次性可操作的 `log.warn`,指明 `openclaw doctor --fix` 和 macOS 钥匙串,而不是让凭证静默落入下游的 `未找到提供者 "openai-codex" 的 API 密钥`。感谢 @romneyda。 - 代理:当无提供者的会话模型匹配多个提供者前缀的运行时策略时,关闭时失败,使得 CLI 运行时路由不再依赖配置顺序。(#85970) 感谢 @potterdigital。 - 控制 UI/代理:保持折叠的工具行可读,避免过早省略号;保留原始展开的工具详情;并使压缩后的 AGENTS.md 重新注入为可选,以避免重复的项目上下文。修复 #45649 和 #45488。感谢 @BunsDev。 ## 发布验证 - npm 包:https://www.npmjs.com/package/openclaw/v/2026.5.25-beta.1 - 注册表压缩包:https://registry.npmjs.org/openclaw/-/openclaw-2026.5.25-beta.1.tgz - 完整性校验:sha512-aTxlF5Cls7/JTg3sjalOiZTa62kVzulOcKlkjNDuVfF1iJlwoo+L3T9i+V/Byp2tjs2V3lhdQ71kc7QVlAu1dg== - 发布分支/标签 SHA:f5b52bddb50d48a803891f265dee1eb540ef4108 - 针对性本地测试:`pnpm test src/agents/tools/image-tool.test.ts src/agents/tools/media-tool-shared.test.ts src/media/channel-inbound-roots.fast-path.test.ts extensions/imessage/src/accounts.test.ts extensions/imessage/src/channel.runtime.test.ts extensions/imessage/src/doctor.test.ts extensions/codex/src/app-server/run-attempt.test.ts test/scripts/package-acceptance-workflow.test.ts -- --reporter=dot` - 针对性本地类型验证:`pnpm check:test-types` - npm 预检:https://github.com/openclaw/openclaw/actions/runs/26443590151 - npm 发布:https://github.com/openclaw/openclaw/actions/runs/26444459399 - 注意:beta 版本发布特意仅使用了 npm 预检验证;在升级为 stable/latest 之前,仍需进行完整的发布验证。