
OpenClaw 24h 更新快报(2026-04-20):Cron 调度、Gateway 安全、设备配对
过去 24 小时,openclaw/openclaw 仓库有 12 个 merged PR,主要集中在 Cron 调度语义修正、Gateway 鉴权加固、以及设备配对流程的健壮性提升。这批更新虽以修复为主,但涉及多个核心模块的行为变更,值得关注。
Cron 调度:语义精确化
连续多个 PR 对 Cron 触发和投递语义做了精确修正,覆盖重复投递去重、隔离消息目标保留、mode none 的明确校验、以及 deferred heartbeat 目标覆盖的保护。
- PR #69353 fix(cron): require explicit recipient for mode none —— mode none 原先允许不指定接收方,新规要求必须显式声明,避免静默投递失败。
- PR #69153 fix(cron): preserve isolated message targets —— 隔离消息目标在投递过程中被错误覆盖,现已修复。
- PR #69000 fix(cron): key recurring delivery dedupe to execution —— 关键定时任务的重复投递去重逻辑被移至实际执行阶段,减少竞争窗口。
- PR #69285 fix(cron): return undefined for delivered when delivery not requested —— 未请求投递时不再错误返回 delivered 状态。
- PR #69121 fix(cron): preserve deferred heartbeat target override —— deferred heartbeat 场景下的目标覆盖逻辑得到保护。
- PR #69040 fix(gateway): preserve cron delivery validation semantics —— Gateway 层对 Cron 投递的校验语义被重新对齐。
Gateway:配置保护与 WebSocket 鉴权
Gateway 模块连续推进两轮安全加固,分别针对配置变更的守卫逻辑和 WebSocket 广播的读权限校验。
- PR #69377 fix(gateway): tighten gateway config mutation guard —— 配置变更守卫被进一步收紧,降低意外修改风险。
- PR #69373 fix(gateway): require read scope for chat websocket broadcasts —— WebSocket 广播现在要求调用方持有 read 作用域,防止未授权信息外泄。
设备配对:安全与可发现性
配对流程有多个改进,分别涉及权限校验、恢复信息展示和认证漂移检测。
- PR #69375 Limit paired-device pairing actions to the caller device —— 配对设备的配对操作现在被限制在发起设备,防止跨设备劫持。
- PR #69227 Fix pairing-required recovery details —— 需要配对才能查看的恢复信息现在正确展示。
- PR #69210 fix: surface device pairing auth drift in doctor —— 设备配对认证漂移现在会在 doctor 诊断中暴露。
- PR #69221 Explain pairing scope upgrades during reconnects —— 重连时的配对权限升级现在有明确说明。
Agent 与模型能力
- PR #69114 fix(bootstrap): close silent 10% content gap in trim ratios —— bootstrap 阶段的内容截断比率存在约 10% 的静默缺口,现已修复。
- PR #69207 Default GitHub Copilot onboarding to Claude Opus 4.6 —— 新用户 Copilot onboarding 默认模型升级为 Claude Opus 4.6。
- PR #69215 Split gateway probe capability from reachability —— probe 能力与可达性检测被拆分为独立维度,提升诊断精度。
渠道集成
- PR #69476 fix(telegram): harden polling transport liveness —— Telegram polling 传输层的心跳存活检测被加强,减少断连漏报。
- PR #69193 fix(bluebubbles): configurable sendTimeoutMs, bump send default to 30s —— bluebubbles 发送超时时间改为可配置,默认值从 10s 提升至 30s。
- PR #69191 fix(telegram): require numeric allowFrom ids in setup —— Telegram allowFrom 配置现在强制要求数字 ID。
- PR #69339 fix(discord): avoid native opus install path —— Discord 频道的原生 opus 安装路径冲突问题被修复。
其他
- PR #69376 fix(dotenv): reserve workspace OPENCLAW env namespace —— workspace 内 OPENCLAW 相关环境变量命名空间被明确保留,防止意外覆盖。
- PR #69219 fix(plugins): preserve memory capability across snapshot plugin loads —— 快照加载插件时的 memory 能力保留问题被修复。
- PR #69335 fix(deps): remove extension-owned deps from root install —— 根级依赖中的扩展自有模块被移除,降低版本冲突风险。
- PR #69316 perf: memoize plugin loader alias maps —— 插件加载器别名映射增加缓存,减少重复计算。
- PR #69164 fix: retry TUI chat history during startup —— TUI 启动时的聊天历史加载失败现在会自动重试。
- PR #69122 qa-lab: make live lanes CI-ready for v1 E2E automation —— qa-lab live lanes 已做好 CI 就绪,支持 v1 E2E 自动化测试。
本次更新核心基调是对关键路径的安全加固与行为精确化,多个修复涉及并发场景下的边界条件,建议有使用 Cron/Gateway/配对功能的用户关注。


评论