OpenClaw 24h 更新快报(2026-10-13):Gateway 会话修复、Cron 清理可靠性、控制台 Doctor 改进

内容管家 AI领域评论11字数 916阅读3分3秒阅读模式
OpenClaw 24h 更新快报(2026-10-13):Gateway 会话修复、Cron 清理可靠性、控制台 Doctor 改进

OpenClaw 24h 更新快报(2026-10-12):Gateway 会话修复、Cron 清理可靠性、控制台 Doctor 改进

过去 24 小时,OpenClaw 合并了超过 30 个 PR,涵盖 Gateway 会话生命周期修复、Cron 任务取消后的清理可靠性、控制台 Doctor 指令对损坏配置的容错能力提升,以及 Session 写入与 UI 主题加载的性能优化。

Gateway 会话生命周期

PR #170281 修复了一个长期存在但低调的会话终止问题:当一个发起突变的请求完成或被取消时,队列中的 sessions.changed 工作会继承该请求的 AsyncWorkScope,而正常的请求清理或异步调度器清理会中止这个 scope,导致准备阶段的所有者抛出 This operation was aborted 错误,最终表现为客户端收到不必要的会话列表刷新。

修复将队列发布工作从生产者 scope 中剥离,保留其他异步绑定和当前行 authority,同时维持现有的关闭排放逻辑。改动仅 +2 行生产代码(16 行新增,14 行删除),不引入新状态、缓存或配置项。回归测试显示:修复前 20 个并发会话产生 20 次中止警告和 20 次降级刷新,修复后均为 0。

Cron 任务取消后的清理可靠性

PR #264 针对 Cron 运行被取消后清理工作未完成的问题。根本原因在于核心 Webhook promise 未被 trackAsyncWork 所有者保留,导致 scope 在延迟清理注册下一个操作之前就被关闭了。

修复将 promise 绑定到现有 trackAsyncWork 所有者,取消路径仍通过相同的 Promise.race 返回,而 launch 侧保留未完成的清理和投递尾部。所有现有行为(交付权限、撤销、Watchdog、活跃运行结算、已提交媒体检查)均被保留。

Doctor 指令对损坏配置的容错能力

PR #170256(合并自 PR #169047,感谢 @nosmile99)修复了 openclaw doctor --fix 在 legacy auth 文件损坏或无法读取时会错误删除 canonical OAuth profile 的问题:读取失败被当作"不存在"处理,导致合法 profile 被当作过期阴影清理。

修复后,OAuth 阴影清理所有者仅将 ENOENT 视为缺失状态,将扫描警告传播到 Doctor 预览和修复输出,并在删除前重新检查 canonical 引用。生产代码净减少 8 行(+55/-63),同时测试覆盖大幅增强。

Session 写入性能优化

PR #170250 针对重启安全的 chat.send 在输入接收和回复初始化阶段各写入一次会话活动时间戳的问题。修复后输入记录器直接复用已提交的活动数据用于匹配现有会话的初始化,避免了每次输入产生两次 SQL 写入(一次 session_nodes,一次 session_windows),每个加热会话减少两次 SQL 写入。

Control UI 主题加载性能

PR #170240 优化了仪表板深链重载时重复采样主题令牌的问题。修复前每次 reload 调用 5 次 getComputedStyle 和 115 次 getPropertyValue,修复后分别降至 1 次和 23 次,降幅达 80%。

实现方式是将主题桥接从"每次读取时重新构建 23 个令牌的完整消息"改为"缓存快照 + 观察者追踪变化",仅在 CSS 加载就绪时刷新一次令牌。回归测试覆盖自定义样式插入、延迟/替换 stylesheet 加载、插件 media 激活等场景。

本次更新以修复为主,集中在可靠性和容错方向,Gateway 和 Cron 各有一个明确影响生产稳定性的修复值得关注。

常用链接

 
内容管家

发表评论