OpenClaw 更新分析 — 2026-03-31
> 统计窗口:2026-03-30 05:00 UTC → 2026-03-31 05:00 UTC
> Commits 总数:19+(两页截断,实际可能更多)
> 贡献者:Josh Avant、Gabriel M.、Neerav Makwana、fuller-stack-dev、issaba1、Peter Steinberger、Vincent Koc、Gustavo Madeira Santana 等
概览
今日更新量极大,以 fix 类为主(15/19),覆盖 Config、Telegram、WhatsApp、xAI、插件系统、Sandbox、Host-Env 安全等核心模块。值得关注的重点有三:
1. SecretRef 安全加固(config + UI + gateway 三层联动)
2. Telegram 大规模修复(Forum Topic 路由、音频转录、RFC2544 媒体下载)
3. Cron 隔离模型切换 bug 修复(直接影响本实例的 cron 任务)
重要变更(逐条分析)
🔐 1. fix(config): SecretRef 全链路加固 `#58044`
SHA: 81b777c | 作者: Josh Avant | 时间: 04:55 UTC
改了什么:
- Config 层:SecretRef 写入/读取的 round-trip 处理强化,防止 token 在保存/加载时被意外覆盖或丢失
- Control UI:将结构化值的锁定范围收窄到仅 SecretRef 字段(之前可能误锁其他字段)
- Gateway:在配置写入前增加 SecretRef 预检(preflight),确认提交的 config 中 SecretRef 状态合法
- 文档:澄清 SecretRef 写入语义
对我们的影响:
修复了一个潜在的 令牌覆盖/丢失 bug。如果你有配置了 API key 的 plugin 并频繁通过 Control UI 保存配置,升级后这些 key 不会再被意外清空。建议升级。
📱 2. fix: Telegram Forum-Topic 路由全面修复 `#56060`
SHA: f7ced43 | 作者: Gabriel M. (@one27001) | 时间: 04:48 UTC
改了什么:
- 新增
childplacement 支持:ACP subagent 在 Telegram 中可通过创建 Forum Topic 来绑定子会话(之前只有 Discord 支持) - 修复 Forum Topic 回复路由到 root chat 而非 topic 的 bug
- 修复
agentGroupId解析逻辑:之前extractExplicitGroupId返回带 topic 的 ID 而非纯 group chat ID,导致无法正确解析 - 对于 Telegram Forum Topics,改为直接跳过 thread binding(不需要,routing 已通过 requester origin 正确处理)
- 增加 race condition 防护:当
turnSourceTo不同于 session 存储的to时,不再 fallback 到错误的threadId
对我们的影响:
如果你用 Telegram + ACP(召唤子代理),这次修复后 Forum 群组里的 spawn 会更可靠。不用 Telegram 则影响不大。
🤖 3. fix: xAI 图片工具结果回放修复 `#58017`
SHA: 54c6941 | 作者: Neerav Makwana | 时间: 04:40 UTC
改了什么:
- 规范化 xAI
/v1/responses接口中图片类型的 tool result payload 格式 - 处理 reviewed tool result 的多种 payload 结构
对我们的影响:
如果你用 xAI (Grok) 并且调用涉及图片的工具(如 X Search 返回图片),之前可能会出现图片无法回放/重播的问题。修复后更稳定。TOOLS.md 中记录的 xAI 用法不受影响,但行为变得更可靠。
💬 4. fix: WhatsApp 群组连接时预加载 `#58007`
SHA: 763d5ce | 作者: Neerav Makwana | 时间: 04:39 UTC
改了什么:
- 连接时主动 hydrate(预加载)参与的群组列表
- 避免在群组 hydration 期间阻塞 inbox listeners
对我们的影响:
WhatsApp 用户启动时群组消息可能之前要等一下才能正常收取,现在应该更快、更可靠。
🔌 5. fix: 多 kind 插件双槽位支持 `#57507`
SHA: 235908c | 作者: fuller-stack-dev | 时间: 04:36 UTC
改了什么:
- 支持
kind: ["memory", "context-engine"]这类同时占用多个槽位的插件 - 修复:当某插件被另一个插件接管其中一个槽位时,持有另一个槽位的插件不会被错误 disable
- 引入
kindsEqual()helper、normalizeKinds()排序、slotKeyForPluginKind类型收窄 parsePluginKind现在拒绝空数组
对我们的影响:
对于使用同时承担 memory + context-engine 双重职责插件(如某些高级 RAG 插件)的用户,之前可能遭遇插件被意外禁用导致上下文引擎失效。修复后逻辑更健壮。
⏰ 6. fix: Cron 隔离会话模型切换重试 `#57972`
SHA: 10ac6ea | 作者: issaba1 | 时间: 04:33 UTC
改了什么:
- 当 cron job 设置了
sessionTarget: 'isolated'且指定了与 agent 主模型不同的model时,之前会抛出LiveSessionModelSwitchError并直接失败 - 现在在 runPrompt 外层增加了 retry loop,捕获该错误、更新 provider/model 状态后重试,与
agent-runner-execution.ts中已有的 retry 逻辑保持一致 - 同时修复了 auth profile 在重试时丢失的问题
对我们的影响:⚠️ 直接相关!
我们的 cron 任务(包括本次分析报告)有可能设置了不同的模型。这个 bug 会导致 cron 任务 silently fail。升级后相关 cron 任务稳定性会明显改善。强烈建议升级。
🐧 7. fix(sandbox): SELinux 工作区挂载重新标记 `#58025`
SHA: 7516b42 | 作者: Neerav Makwana | 时间: 04:30 UTC
改了什么:
- 对 sandbox 中受管理的工作区挂载(managed workspace mounts)重新打 SELinux 标签
对我们的影响:
在 SELinux 启用的 Linux 系统(如 Fedora/RHEL)上运行 sandbox 时,文件系统挂载权限问题的修复。Ubuntu 默认不开 SELinux,直接影响不大,但如果之后迁移到相关环境有用。
📎 8. fix: Telegram RFC2544 媒体下载 `#57624`
SHA: e89bd88 | 作者: ToToKr/@MoerAI | 时间: 04:23 UTC
改了什么:
- Telegram CDN 文件服务器有时使用 RFC 2544 benchmark IP 段(198.18.0.0/15)
- 之前 SSRF 策略阻止了这些 IP 的下载,Discord/Slack 则正确允许
- 现在设置
allowRfc2544BenchmarkRange: true与其他 channel 插件行为一致
对我们的影响:
Telegram 下载某些媒体文件时之前可能无声失败,现在应该正常。
🎵 9. fix: Telegram 音频自动转录
SHA: 4f2df61 | 作者: Peter Steinberger | 时间: 00:59 UTC
改了什么:
- 修复 Telegram 语音消息自动转录处理逻辑
对我们的影响:
如果你发语音给 Telegram Bot,会自动调用转录。之前有 bug 导致失败,现在修复了。
🔒 10. fix(sandbox): Remote FS Bridge 读取路径钉定 `#58016`
SHA: 121870a | 作者: Vincent Koc | 时间: 00:55 UTC
改了什么:
- 在 sandbox 的 remote fs bridge 中对读取路径进行钉定(pin)
- 拒绝挂载根目录的读取
- 拒绝非常规文件目标的读取
对我们的影响:
Sandbox 安全加固,防止潜在的路径遍历攻击。对普通用法透明。
🛡️ 11. fix(host-env): 封锁 Python 包索引重定向环境变量 `#58011`
SHA: 7ae1bb0 | 作者: Vincent Koc | 时间: 00:53 UTC
改了什么:
- 屏蔽
PIP_INDEX_URL、UV_INDEX_URL等 Python/uv 包索引重定向环境变量 - 防止通过注入恶意包索引实施供应链攻击
对我们的影响:
安全防护增强。如果在 exec 中跑 pip/uv 安装,恶意环境变量注入现在会被拦截。
🧪 12. test: 测试套件提速(3 commits)
SHA: 3f1d6fe, 6b6ddcd, f7285e0 | 作者: Peter Steinberger
- CLI、core runtime、extension 三个测试套件均进行了提速优化
- 对用户无直接影响,但加快 CI 反馈循环,间接提升代码质量
🔧 其他小修复
fix(ci): handle missing native command capabilities— CI 兼容性修复fix(ci): regenerate mac host env policy— macOS CI 安全策略更新scripts: preserve changelog subsection detection— changelog 生成脚本修复docs: fix QMD install command to use npm package— 安装文档修正(之前错误指向 git URL)
架构观察
1. Telegram 成为本期重点修复平台 — 4 个 commit 直接针对 Telegram,涵盖 Forum Topic 路由、音频转录、SSRF 策略、媒体下载。社区贡献(@one27001、@MoerAI)驱动明显。
2. 安全加固趋势明显 — SecretRef 加固、Sandbox fs bridge 钉定、host-env Python 包索引封锁、SELinux 标签 — 4 个安全相关 commit 在同一天出现,说明团队在系统性地梳理安全边界。
3. 插件系统走向成熟 — 多 kind 插件双槽位支持是插件架构的重要演进,为未来更复杂的 memory+context-engine 组合铺路。
4. 贡献者多元化 — 本期 8+ 个外部贡献者,说明社区活跃度在提升。
5. Cron 系统可靠性补强 — model-switch retry 修复显示团队在认真对待 cron 隔离会话的边界情况。
对我们的影响
| 优先级 | 事项 | 行动 |
|---|---|---|
| ⚠️ 高 | Cron 隔离会话模型切换 retry 修复 | 本实例的 cron 任务可能受益,建议关注下次 `openclaw` 更新并升级 |
| ⚠️ 高 | SecretRef 加固 | 如有通过 Control UI 管理 API key,升级后更安全 |
| 📌 中 | 插件双槽位修复 | 使用复合 kind 插件的用户需关注 |
| 📌 中 | Telegram 多项修复 | 使用 Telegram 通道的用户受益明显 |
| ℹ️ 低 | xAI/WhatsApp 修复、安全加固 | 按需关注 |
当前版本检查: 运行 openclaw status 确认是否需要更新。
原始 Commits
| SHA | 消息 | 作者 | 时间 (UTC) |
|---|---|---|---|
| [81b777c](https://github.com/openclaw/openclaw/commit/81b777c7687d4d2c298cddc150dda6a31026046a) | fix(config): harden SecretRef round-trip handling | Josh Avant | 04:55 |
| [f7ced43](https://github.com/openclaw/openclaw/commit/f7ced438f71115230359e7cd43884d70de6e89fd) | fix: restore Telegram forum-topic routing | Gabriel M. | 04:48 |
| [54c6941](https://github.com/openclaw/openclaw/commit/54c69414ad522a5d56a6bdcdc85e33272d271c6f) | fix: normalize xai tool result image replay | Neerav Makwana | 04:40 |
| [763d5ce](https://github.com/openclaw/openclaw/commit/763d5cea443a8dbb20ad31ea9a703765dd974c7c) | fix: hydrate WhatsApp participating groups | Neerav Makwana | 04:39 |
| [235908c](https://github.com/openclaw/openclaw/commit/235908c30e1b67f704fdd4ae01dea4e1ba94a883) | fix: support multi-kind plugins for dual slot | fuller-stack-dev | 04:36 |
| [10ac6ea](https://github.com/openclaw/openclaw/commit/10ac6ead6b13ebd3fb1124cf1ce890f8fdd781cf) | fix: complete cron isolated model-switch retry | issaba1 | 04:33 |
| [7516b42](https://github.com/openclaw/openclaw/commit/7516b423eb614220c75dd2d36f27d4c73bcc3441) | fix(sandbox): relabel managed workspace mounts for SELinux | Neerav Makwana | 04:30 |
| [e89bd88](https://github.com/openclaw/openclaw/commit/e89bd883d8854cd9e4b8e16d3c6733807df46d0a) | fix: allow Telegram RFC2544 media downloads | ToToKr/@MoerAI | 04:23 |
| [3f1d6fe](https://github.com/openclaw/openclaw/commit/3f1d6fe14784fe193c09e95e76ce1d349f0728fc) | test: speed up cli and command suites | Peter Steinberger | 01:12 |
| [6b6ddcd](https://github.com/openclaw/openclaw/commit/6b6ddcd2a695209b943098a7bf31e574ff32e718) | test: speed up core runtime suites | Peter Steinberger | 01:12 |
| [f7285e0](https://github.com/openclaw/openclaw/commit/f7285e0a9e1357ea1a3f6eac2f138839693f777f) | test: speed up extension suites | Peter Steinberger | 01:11 |
| [1f6a964](https://github.com/openclaw/openclaw/commit/1f6a964e57af0d07787f048a0bf1375f77f0d607) | fix(ci): handle missing native command capabilities | Vincent Koc | 01:15 |
| [5d8ca42](https://github.com/openclaw/openclaw/commit/5d8ca42c7de8118b15782bad9cbac6240585e13a) | fix(ci): regenerate mac host env policy | Vincent Koc | 01:12 |
| [bf6d317](https://github.com/openclaw/openclaw/commit/bf6d3176fcdf09c680d3aad106b3c81f19a20647) | scripts: preserve changelog subsection detection | Gustavo M.S. | 01:05 |
| [2412357](https://github.com/openclaw/openclaw/commit/2412357bb70ebd0480fd11bd5656821cbb1ff929) | docs: fix QMD install command | Vincent Koc | 01:05 |
| [9b6ebc1](https://github.com/openclaw/openclaw/commit/9b6ebc1992864207ac30f3c13cd1061054003df0) | fix(test): trim browser runtime gateway mocks | Vincent Koc | 01:01 |
| [4f2df61](https://github.com/openclaw/openclaw/commit/4f2df617fee8f5bb292c1f0e83abb6d11658b8d2) | fix: handle Telegram audio auto-transcription | Peter Steinberger | 00:59 |
| [121870a](https://github.com/openclaw/openclaw/commit/121870a08583033ed6a0ed73d9ffea32991252bb) | fix(sandbox): pin remote fs bridge reads | Vincent Koc | 00:55 |
| [7ae1bb0](https://github.com/openclaw/openclaw/commit/7ae1bb0c7799fd0cbd2d4de7b0f5b8039837ab8d) | fix(host-env): block Python package index redirection | Vincent Koc | 00:53 |
报告生成时间:2026-03-31 05:00 UTC | 由 Tony 🦾 自动分析