
OpenClaw 24h 更新快报(2026-07-03):Cron 调度恢复、Agent 可靠性全面修漏、移动端权限收敛
过去 24 小时,openclaw/openclaw 仓库共有 38 个 PR 合并。本期重点覆盖三个方向:Cron 持久会话目标正式回归,Agent 运行时的多个可靠性漏洞被系统性修复,同时 Android/iOS 两端的权限与资源清理策略进一步收敛。
Cron 调度:持久会话目标正式恢复
过去一个版本中,一次针对孤立会话的优化意外改变了 Cron 任务的默认行为——所有以 current 或 session:<id> 为目标的定时任务,每轮执行都变成了一个全新会话,导致基于历史上下文的自动化工作流彻底失效。
PR #98947 将这一行为修正回来:Cron 任务的默认语义恢复为"在创建任务的会话中运行",只有显式声明 isolated 的任务才会请求独立会话。修复涉及调度目标解析、会话身份管理、存储层、Prompt 缓存、运行上下文归属、任务穿透、Gateway 接入、测试套件和文档共计 17 个文件。相关回归测试(58 项)和聚焦套件(323 项)均全部通过。
这意味着基于上下文的定时 AI 助手任务(如每日报告生成、自动化复查)现在可以正常利用前序会话的状态,而不必每次重新初始化。
Agent 运行时:系列可靠性修漏
本期合并了同一可靠性审计产出的多个关联修复,覆盖 CLI 生命周期管理、上下文溢出恢复和输出分类三个层面。
PR #99159 是其中规模最大的一个,一口气解决了六个独立缺陷:loopback MCP 服务启动失败从 warn-and-continue 改为 fail-loud(避免静默 tool-less agent);清理了从未被激活的 drain 状态机;live 路径中途 exit-0 现在正确触发 failover 而非吞掉回复;超过 5MB 的 Transcript 不再全局禁用 reseed,改为保留末尾 5MB 有界片段;CLI 图像文件现在有 7 天 TTL 清理逻辑;prepare 阶段的资源泄漏问题被归拢到单一 owner 结构中。整体代码净量为负(+456/−458)。
PR #98934 针对上下文溢出后会话永久挂死的问题:context_overflow 现在携带 cli_context_overflow 重试码,触发 fresh-session reseed 而不是每次都在同一个溢出的会话上失败。同时修复了非 capture 模式下 recovery retry 落到已删除 run artifact 上的问题。
PR #98942 统一了 live session 和 one-shot 两个输出路径的 result 分类逻辑,消除了四处行为漂移:is_error 结果在 one-shot 路径被错误地当作成功回复、raw NDJSON transcript 被意外投递为消息、one-shot 解析器的行缓冲无上限增长、以及 macOS/Linux 上多字节 UTF-8 在 chunk 边界被截断损坏。共享分类逻辑后删除了 live 路径中的重复守卫代码(−65 行)。
PR #98933 修复了两个 P1 缺陷:wedged Claude CLI 子进程在 turn 启动阶段卡住时,输出 promise 没有 rejection handler,导致 no-output timer 触发后无人处理而触发 process.exit(1),带走整个 Gateway;以及心跳 turn 不再更新 cliSessionBinding,导致每次心跳后用户 turn 都回到心跳前的会话。两者现在均已正确处理。
此外,PR #99134 修正了 OpenAI OAuth 刷新失败后的假阳性健康状态:refresh 错误现在明确上报需要重新认证而非回退到外部 CLI 凭证,避免 operator 看到误导性的绿色状态。
移动端:权限与资源清理策略收敛
移动端本次更新聚焦权限申请和异常路径的资源释放。
PR #99204 和 PR #99158 共同将 Android 联系人和日历写入权限的申请纳入正式权限流:此前仅在 onboarding 阶段触发,现已扩展至全局权限检查路径。
PR #99155 修复了 iOS 屏幕录制在取消后未停止的问题;PR #99153 则确保 Android 相机片段在取消时正确清理,避免本地存储残留。
Telegram 侧,PR #99143 将群组历史设置固定为始终开启,PR #99145 则抑制了 room-event 通知泄露到 auto-reply 通道的问题。
整体来看,本次更新以可靠性修复为主线,Cron 持久化和 Agent 运行时修漏覆盖了上一版本引入的多个退化点,移动端权限模型也在向更一致的方向收敛。


评论