OpenClaw 更新分析 — 2026-04-15

概览

过去 24 小时共 30 个 commits,活跃度非常高。重点方向:

重要变更(逐条分析)

🔥 feat: BlueBubbles 重启后补回漏收消息 (`6f1d321`)

模块: extensions/bluebubbles

影响: 解决了 BlueBubbles (iMessage) 通道的长期痛点 — gateway 重启期间 webhook 丢失的消息现在会自动补回。新增 catchup.ts,启动时查询 BB Server 获取断档期间的消息并重新处理,支持游标持久化、去重和边界控制。

🔥 fix: Cron agentTurn 崩溃 (`90c06c0`)

模块: Gateway / Cron

影响: cron 任务使用 agentTurn 时,event.content 为 undefined 导致 TypeError 崩溃。修复了 parseFaceTagsfilterInternalMarkers 对 falsy 输入的处理。如果你用 cron 定时任务,这个修复很重要。

🔥 fix: OpenRouter Qwen3 reasoning_details 流 (`e0bf756`)

模块: OpenRouter provider

影响: Qwen3 模型通过 OpenRouter 使用时,reasoning_details 字段未被识别,导致 payloads=0 和不完整回合错误。修复后正确处理推理内容和工具调用。直接影响到通过 OpenRouter 使用 Qwen3 的用户。

🔥 fix: 自托管 STT 的 allowPrivateNetwork 回归 (`0c0463b`)

模块: Audio / Media understanding

影响: v2026.4.14 引入的回归 — 自托管 STT(语音转文字)端点的 allowPrivateNetwork 配置被静默丢弃,导致无法访问内网 STT 服务。已修复 provider 级别配置的合并逻辑。

fix: Telegram 命令同步改为进程级缓存 (`b1d03b4`)

模块: Telegram channel

影响: gateway 重启后 Telegram bot 命令菜单消失。原因是命令哈希缓存持久化到磁盘,重启后匹配到旧哈希就跳过注册。改为进程级 Map 缓存,每次重启都重新注册。

fix: Telegram 原生 auto 默认值恢复 (`ff4edd0`)

模块: Telegram config

影响: Telegram 原生命令(auto 模式)的默认值被意外移除,现已恢复。

fix: Telegram 二进制载荷清理 (`734bb9c`)

模块: Telegram documents

影响: 用户发送的二进制文件内容(如图片原始字节)不再被塞进 prompt,防止 token 膨胀。对经常通过 Telegram 发文件的用户有帮助。

fix: Onboarding 通道选择崩溃 (`2e2cbdd`)

模块: CLI / Onboarding

影响: 全局安装的 CLI 在通道选择步骤崩溃。修复了 bundled channel catalog 的路径解析。

feat: Secret scanning skill 支持 discussion_comment (`9727ed4`)

模块: Skills

影响: GitHub secret scanning 技能现在能扫描 discussion 评论中的泄露密钥。

memory: 阻止 dreaming 自我消化 (`0c4e0d7`)

模块: Memory system

影响: 防止 memory dreaming 过程中将自身生成的内容重新消化,避免记忆污染循环。

Reply: 保留分阶段 block 元数据 (`8db4bb7`)

模块: Reply system

影响: 分阶段生成的回复现在正确保留 block 元数据,改善富文本回复的完整性。

fix: 媒体 private-network 请求类型 (`5ca65c8`) + 清理陈旧 import (`0bc4472`)

模块: Media

影响: 类型修正和代码清理,确保媒体请求的 private-network flag 正确传递。

架构观察

1. Matrix 通道大规模 QA 重构: Gustavo 一人贡献了 8+ 个 QA commits,涵盖事件模块提取、场景拆分、配置覆盖、contract runtime 分离等。说明 Matrix 通道正在积极开发中,可能即将发布重要更新。

2. Telegram 集中修复: 3 个独立修复指向 Telegram 通道近期有多处回归,团队在积极清理。

3. BlueBubbles 走向成熟: catchup 机制(22 个测试、411/411 通过)表明 iMessage 集成正在从"能用"走向"可靠"。

4. 社区贡献活跃: 多个 commits 标注了外部贡献者(@bladin, @jhsmith409, @nightq, @kashevk0),社区生态健康。

5. 新维护者: Mason Huang 加入维护者团队,同时贡献了 secret scanning 功能。

对我们的影响

原始 commits

SHA时间作者描述
0aea99804:36Mason HuangAdd Mason Huang as maintainer
7d7dc7504:16Gustavo M. SantanaQA: speed up Matrix live lane
2e2cbdd04:08Roger Chienfix(onboard): crash at channel selection on globally installed CLI
cd3e6e104:03Peter Steinbergerbuild: refresh config baseline
ec7635204:01Peter Steinbergerbuild: refresh bundled channel metadata
5ca65c803:58Peter Steinbergerfix: type media private-network request flag
90c06c003:47xinmotlanthuafix: guard against undefined event.content in cron agentTurn
fb92ca103:44Gustavo M. SantanaQA: genericize mock streaming fixtures
5042b8b03:44Gustavo M. SantanaQA: split Matrix contract runtime
8db4bb703:44Gustavo M. SantanaReply: preserve phased block metadata
0bc447202:57Peter Steinbergerfix: remove stale media override import
e0bf75602:45bladinfix: handle OpenRouter Qwen3 reasoning_details streams
0c0463b02:35Jim Smithfix: restore allowPrivateNetwork for self-hosted STT endpoints
b1d03b402:32Mr.NightQfix: keep Telegram command sync process-local
6f1d32102:20Omar Shahinefeat(bluebubbles): replay missed webhook messages after restart
ff4edd002:16Serhiifix: restore Telegram native auto defaults
d974cea02:13Peter Steinbergertest(e2e): harden Parallels smoke probes
1c46fa002:01Peter Steinbergertest(e2e): quote linux bad-plugin diagnostic grep
3c03d4101:16Gustavo M. SantanaQA: split Matrix scenario leaf types
4c5273101:15Gustavo M. Santanafix(ci): parse quoted pnpm snapshot keys
da4327701:12Gustavo M. Santanafix(ci): make pnpm audit hook dependency-free
e49be9301:08Peter Steinbergerfix(release): keep legacy update QA sidecars
9463f1c01:07Gustavo M. SantanaQA: expand Matrix config scenario coverage
734bb9c00:53François MartinTelegram/documents: sanitize binary payloads
0c4e0d700:29Gustavo M. Santanamemory: block dreaming self-ingestion
5702ab600:27Peter Steinbergertest(e2e): harden beta preflight failures
9727ed400:11Mason Huangfeat(skills): add discussion_comment to secret-scanning
55ee32700:10Vincent Kocfix(ci): replace retired pnpm audit hook
3aae0fb00:06Gustavo M. SantanaQA: tighten Matrix substrate coverage
874eebe00:06Gustavo M. SantanaQA: extract Matrix event modules