OpenClaw 更新分析 — 2026-04-14
概览
过去 24 小时共 30 个 commits,主要围绕三个方向:
- Telegram 话题缓存持久化(Ayaan Zaidi, 6 个 commits)
- Baileys (WhatsApp) 依赖修复(steipete, 2 个 commits)
- 插件目录查找缓存优化(社区贡献 @yfge)
- systemd 服务修复(社区贡献 @tmimmanuel)
- 大量测试对齐和类型修复(steipete 主导的 rebase 后修复)
重要变更
1. Telegram 话题缓存持久化 🔥
Commits: ad181b2, 59afcf9, 6eafb5f, 4f92b1f, c91d3d4, 8a9d5e3
作者: Ayaan Zaidi
类型: feat/fix
Telegram 群组的 topic-name 缓存现在会持久化到磁盘,不再每次启动都重新获取。同时修复了在无 session runtime 环境下也能使用 topic cache 的问题。这对大量使用 Telegram 群组的用户有明显改善——减少 API 调用,加快冷启动。
2. 插件目录查找缓存 (#66246)
Commit: 8524849
作者: @yfge(社区贡献)
类型: fix/perf
外部插件目录查找(auto-enable 流程)现在有缓存,避免重复的网络请求。修复了 #66159。对安装了多个外部插件的用户有性能提升。
3. systemd 服务修复 (#66249)
Commit: a2ab9e6
作者: @tmimmanuel(社区贡献)
类型: fix
修复了服务修复过程中 systemd unit 文件可能内联 dotenv secrets 的问题——这是安全隐患,密码可能暴露在 unit 文件中。
4. Baileys 依赖修复
Commits: 3deea5a, 67ffb6f
作者: steipete
类型: fix
修复了 baileys(WhatsApp 协议库)的根依赖镜像和本地化问题,确保 WhatsApp 通道稳定工作。
5. Rebase 后类型/测试对齐
Commits: 10+ 个 test/fix commits(steipete)
类型: refactor/test
steipete 在合并 PR 后进行了大量类型漂移修复和测试对齐工作,涉及 cron runtime、model fallback、gateway wake gating、docker fs bridge 等模块。这些是内部质量保障,对用户无直接影响但提高了稳定性。
架构观察
1. Telegram 模块正在加强:话题缓存持久化是 Telegram 集成成熟度的体现,从纯内存缓存演进到磁盘持久化
2. 社区贡献活跃:连续两天有社区 PR 合并(@yfge 的插件缓存、@tmimmanuel 的 systemd 修复),项目生态在健康发展
3. 测试密度高:30 个 commits 中约 15 个是测试相关,说明核心团队非常重视测试覆盖
4. Baileys 本地化:将 baileys 保持为 plugin-local 依赖,暗示 WhatsApp 支持可能作为可选插件独立演进
对我们的影响
- ✅ Telegram 群组体验提升:topic 缓存持久化后,重启 OpenClaw 不再需要重新获取话题名称
- ✅ WhatsApp 通道更稳定:baileys 依赖修复减少了潜在的连接问题
- ✅ 外部插件加载更快:插件目录查找有缓存,auto-enable 流程更流畅
- ⚠️ 建议更新:systemd 安全修复值得尽快升级
原始 commits
| SHA | 时间 | 作者 | 描述 |
|---|---|---|---|
| 8524849 | 04:11 | @yfge | fix: cache external plugin catalog lookups in auto-enable |
| 55604a9 | 03:48 | steipete | test: keep telegram cache boundary compatible |
| 73d3cf9 | 01:25 | steipete | test: bound docker fs bridge probes |
| 3deea5a | 01:22 | steipete | fix: mirror baileys root dependency |
| df84225 | 23:08 | steipete | test: align post-rebase full-suite drift |
| 67ffb6f | 22:07 | steipete | fix: keep baileys plugin-local |
| 1277294 | 21:57 | steipete | test: drop removed agent scope suppression |
| 296471b | 21:50 | steipete | test: align cron model error expectations |
| 4b127ad | 21:42 | steipete | test: align agent session resolver mocks |
| 0d6643e | 21:08 | steipete | test: align cron runtime seams |
| 311bc84 | 20:57 | steipete | fix: remove agent config lint suppression |
| d4f556a | 20:50 | steipete | fix: align latest main type drift |
| 5b24009 | 16:48 | steipete | test: mock model fallback source check |
| cf3d27a | 15:58 | steipete | test: use cron embedded runtime mock |
| 00415e2 | 15:46 | steipete | test: refresh cron and mcp typed fixtures |
| ff8605f | 15:43 | steipete | test: update model fallback auth store mock |
| 1e11b36 | 15:26 | steipete | test: align feishu replay helper typing |
| c09031f | 15:23 | steipete | fix: tighten inbound replay typing |
| 63965dc | 10:23 | steipete | test: stabilize gateway wake gating regression |
| ca9f969 | 09:19 | steipete | test: cover gateway wake startup gating |
| a2ab9e6 | 03:36 | @tmimmanuel | fix: avoid inline dotenv secrets in systemd unit |
| 3c501d3 | 03:28 | obviy.us | test: remove timer dependency from telegram topic cache tests |
| 556905a | 03:16 | obviy.us | fix: restore pnpm check |
| 0eebb49 | 03:04 | steipete | test: enforce npm pack budget in install smoke |
| 8a9d5e3 | 02:11 | obviy.us | fix: move telegram topic-cache changelog to unreleased |
| c91d3d4 | 18:42 | obviy.us | fix(telegram): persist topic cache via default runtime |
| 4f92b1f | 18:29 | obviy.us | fix(telegram): allow topic cache without session runtime |
| 6eafb5f | 18:19 | obviy.us | docs(changelog): note telegram topic-name persistence |
| 59afcf9 | 18:19 | obviy.us | test(telegram): cover topic-name cache reload |
| ad181b2 | 18:18 | obviy.us | fix(telegram): persist topic-name cache |