OpenClaw 24h 更新快报(2026-08-02):TaskFlow 维护、自动化告警刷新、CLI 测试去重

内容管家 AI领域评论26字数 944阅读3分8秒阅读模式
OpenClaw 24h 更新快报(2026-08-02):TaskFlow 维护、自动化告警刷新、CLI 测试去重

OpenClaw 24h 更新快报(2026-08-02):TaskFlow 维护、自动化告警刷新、CLI 测试去重

过去24小时,OpenClaw 主线仓库有3个维护者标签 PR 合并,涵盖任务调度持久化、Web UI 事件响应和测试基础设施三个不同维度。其中 TaskFlow 维护 Predicate 修复直接影响长时间运行的审批流是否会在例行维护中被误删,值得所有使用 TaskFlow 的部署者关注。

TaskFlow 维护:防止存活中的 blocked 流程被误删

PR #117606 修复了一个 v2026.7.2-beta.6 引入的回归问题:TaskFlow 维护任务将所有 blocked 状态的流程一律判定为终态,七天后将其从共享 SQLite 数据库中物理删除。然而,当一个托管控制器有意保持 endedAt: null(表示流程正在等待审批或外部事件)时,它同样是 blocked 状态,却并非终态。

修复方式极为精准:只改变维护Owner中的终态判断条件——blocked 流转为终态的前提从"状态为 blocked"改为"状态为 blocked 且 endedAt 不为空"。这意味着真正结束的 blocked 流程仍然在七天后被清理,而处于等待状态的审批门和外部工作流可以在整个维护周期内安稳存活,不会因为一次 Gateway 重启或例行维护而凭空消失。

对于已经发送过取消请求但尚未完成的 blocked 流程,维护逻辑也一并修正,使其能够正确进入取消协调流程,而非永久悬停。该修复不涉及任何配置、Schema、迁移或插件 API 变更,现有行为不受影响。

控制台 UI:cron 事件触发自动化告警刷新

PR #117648 修复了 Control UI 侧边栏与 Automations 页面之间的不一致:后者早已监听 Gatewaycron 事件并在触发时刷新任务数据,但侧边栏的自动化失败提醒只会在连接变化或定时 stale 检查时才会更新,导致 cron 任务失败后侧边栏的红色提醒持续残留,直到用户手动刷新页面。

该 PR 为侧边栏组件增加了 lifecycleOwned 的 Gateway 事件订阅,在收到 cron 事件时仅重新拉取 cron 快照,同时有意保留已有的 model-auth 状态——这是因为自动化变更与模型认证状态无关,混在一起刷新会导致用户体验上的闪烁。该修复还包含一个组件回归测试,覆盖 stale 告警清除场景。

Matrix CLI 测试:消除55个测试间的重复 Fixture

PR #117651 重构了 Matrix 扩展 CLI 命令测试的 fixture 体系。此前,Matrix CLI 测试owner(extensions/matrix/src/cli.test.ts)在55个测试中重复编写了相同的命令构造逻辑、规范 argv 格式和完整的嵌套结果结构,导致每次新增行为时需要在大面积测试文件中复制大量模板代码。

重构引入了一个"每次运行fresh的Command runner"加"不可变 per-call fixture builder"的模式,统一管理测试命令的构造和结果校验。生产代码 LOC 变化为零,测试代码净减少375行(+414/-789),同时所有64个 argv 向量的行为、所有233个运行时 matcher 调用以及132个精确调用参数检查均与修改前完全一致,确保没有引入任何行为回归。

尾声

本次更新的三个 PR 均属于边界精确修复:TaskFlow 修复了一个状态判断 Predicate,UI 修复了一个事件监听缺失,测试基础设施消除了重复。没有任何大范围重构或新功能引入,维护线稳中求进。

常用链接

 
内容管家

发表评论