
OpenClaw 24h 更新快报(2026-06-12):Telegram Spooled Replay、Anthropic Thinking、Cron 时区
过去 24 小时,OpenClaw 仓库合并了超过 20 个 PR,集中修复了多条关键路径上的可靠性缺陷。Telegram 渠道的重放机制终于解决了深藏的死锁问题;Anthropic 思考块签名失败后不再污染会话历史;Cron 表达式替换时保留了时区和间隔配置。此外,CLI 技能渲染、Provider 模型降级、渠道消息投递等模块也均有重要修复。
Telegram 渠道:Spooled Replay 死锁修复
PR #92281 是本周期影响力最大的变更之一。该 PR 修复了 Telegram 隔离入口(isolated ingress) spooled replay 场景下的死锁问题:此前, buffered/deferred 消息处理在最终回复派发完成前过早确认了 Telegram 更新生命周期,导致派发失败后更新 ID 被错误推进,使重试机制永久失效。
修复后, buffered dispatch 失败会保持在入口 spool 中,不会推进 Telegram update 水位线或留下悬空的 claims。该修复经过 AWS Crabbox 真实 Telegram bot 验证,live proof 显示修复后 update ID 正确保持在 pending 状态并可重试。
同期还有 PR #92416:修复 outbound 渠道中顶层 image 参数未正确作为媒体源传递的问题,提升了图片/媒体消息投递的可靠性。
Agent 会话:Anthropic Thinking 签名失败后不再污染会话历史
PR #92286 修复了一个长期困扰使用 Anthropic 思考块的用户的 bug:当 provider 拒绝回放的 thinking 签名时,现有重试逻辑可以成功(通过 stripped retry),但损坏的 thinking 块仍会留在 session 历史中,导致后续轮次持续失败。
修复在 thinking.ts 中增加了恢复门控(recovery gate),在 stripped retry 成功后主动将损坏的 thinking 块从活跃分支中移除,避免污染后续对话。修复使用现有的 transcript rewrite/session update 路径,而非引入 provider 特定的降级逻辑。live proof 在 AWS Crabbox 上使用真实 claude-sonnet-4-6 API 验证通过。
沙箱:CLI 技能提示词从 materialize path 正确渲染
PR #92508 修复沙箱环境中 CLI skill 提示词未从 materialized path 正确渲染的问题,确保在沙箱内运行的 skill 提示词与预期行为一致。
Cron 调度:Cron 表达式替换不再丢失时区和间隔
PR #92295 修复了一个影响所有使用 Cron 定时任务用户的 bug:执行 openclaw cron edit <id> --cron "<expr>" 时,若不同时传递 --tz 和 --stagger 参数,现有的 schedule.tz 和 schedule.staggerMs 会被静默丢弃。根因在于 register.cron-edit.ts 的"direct"路径做了全量 schedule 替换而非合并。
修复后,direct 路径在替换 cron 表达式时会加载现有任务,通过空值合并(nullish coalescing)保留原有的时区和间隔值,只在用户明确传入时才覆盖。配套修复还有 PR #92225:修复了禁用心跳的单次 cron 重试行为,确保一次性定时任务在心跳关闭时仍能正确重试。
Provider 与模型配置:静态模型降级与 DeepSeek 传输继承
PR #92293 修复了 Provider 静态模型降级解析逻辑的缺陷,确保当主模型不可用时,fallback 模型能正确继承传输配置。同期 PR #92265 则修复了配置了 DeepSeek 模型时传输继承失败的问题,使 DeepSeek 模型能正确使用配置的传输层。
PR #92387 修复了 anthropic-vertex 扩展在传输预算超限的载荷上重复标记 cache_control 的问题,避免不必要的缓存行为。
渠道消息投递:心跳承诺递送与 CLI 兜底
PR #92231 修复了被压制的心跳承诺(suppressed heartbeat commitment)递送失败的问题,确保即使在特定抑制条件下,心跳承诺也能正确触发并送达。同期 PR #92226 为 CLI 兜底的 /btw 路径增加了 fail-closed 保护,防止在 CLI 不可用时产生未预期行为。
Gateway 与 SecretRef 诊断可读性
PR #92290 改善了 SecretRef 认证方式下 Gateway 的诊断信息可读性:当 Gateway 进程可以解析 gateway.auth.* SecretRef,但客户端诊断命令无法访问时,不会再抛出原始的 GatewaySecretRefUnavailableError 或误导性的 unhealthy/unreachable 状态。修复利用现有的可达但未认证 Gateway 健康检查逻辑,为 health、gateway health、doctor、channels status 等命令提供了一致的可读诊断输出,同时保持了 gateway call 等严格调用的 fail-closed 行为。
开发者体验:OTLP 日志追踪关联与 Codex 内存注册
PR #92276 修复了 OTLP 日志与 trace 的关联问题,确保日志条目能正确关联到对应的分布式追踪链路,提升了诊断能力。
PR #92350 修复了 Codex 扩展中内存提示词注册被意外清除的问题,确保在长时间运行的会话中 Codex 技能能持续使用已注册的内存上下文。
其他值得关注的变化
PR #92282 将 Linux 服务自动更新从旧版移交至新架构;PR #92280 为 Agent 模块增加了对结构化不支持模型错误的分类;PR #92343 修复了 Agent 在源消息工具回复后继续执行的问题,确保工作流不被意外中断。
本次更新整体基调偏稳定性修复,渠道投递、Agent 会话状态和 Cron 调度是修复最密集的三个区域,建议相关用户尽快升级。


评论