
OpenClaw 24h 更新快报(2026-09-17):渠道投递、会话稳定性、Gateway 截止期
过去24小时,OpenClaw 在多个消息渠道的投递稳定性上下足了功夫。Slack、Google Chat、iMessage、Tlon、Zalo、Matrix 六大平台均收到了一致的"取消后仍尝试发送"问题修复,同时 Session 清理失败时的读写状态保留了更多诊断信息,Gateway 在 systemd 服务用户下的停止期限策略也得到重新校准。
渠道投递稳定性:统一拦截取消后的残余请求
本批次最集中的改动发生在渠道集成层。多条投递链路在用户取消操作后,仍可能在准备阶段结束后继续发出 HTTP 请求或 RPC 调用,表现为"消息已发出去但用户以为已取消"的困惑体验。
Slack 交互操作适配器此前不保留调用方的当前性(currentness)回调,导致 Slack 交互流程进入目标或权限准备阶段后,后续的查询、重试、发送、编辑等请求无法被取消事件拦截。PR #151166 修复了这个问题:已由 Slack 接受的变更仍正常返回结果,之后的普通操作彼此独立。该修复附带了兼容性风险标记(merge-risk: compatibility),建议有深度 Slack 集成的用户留意升级路径。
Google Chat 投递存在类似但更严重的情况:除取消拦截外,同源重定向也可能在取消后发出额外请求。PR #151146(P1)将preferred text 注册和通用消息操作的宿主持续性(host's handoff)回调一并保留,DM 查找和重定向后的 POST 请求均受新的取消检查保护。
iMessage 投递的问题范围更大:无论是首选消息适配器还是传统出站适配器,都在到达运行时发送器之前丢弃了宿主的投递生命周期回调。PR #151144(L size)让原始投递的权限贯穿整个准备阶段,并在每次原生请求前立即检查,同时覆盖了非线程重试和附件后续字幕发送路径。
Tlon、Zalo 和 Matrix 收到了一致的修复:PR #151129(Tlon)、PR #151171(Zalo)和 PR #151093(Matrix)分别拦截各自平台准备阶段的取消后残余请求。Matrix 还有一个额外改进:读取操作不再意外更新 DM 映射关系,避免了会话路由的隐式漂移。
Slack Preamble 可见性与直接投递
Slack 相关修复还有两条较小的改动:PR #151164 让更新间隙保留完整 preamble,确保用户在不退出编辑界面的情况下持续看到上下文;PR #151167 则在当前版本保留周期内保护 preamble 完整性,防止直接投递流程意外截断消息头。
会话与 SQLite 稳定性
Session 清理逻辑收到两条重要修复。PR #151163 解决了一个长期隐患:当清理本身失败时,之前累积的读取失败信息会被静默丢弃,现在这部分上下文得以保留,运维人员在排查异常 Session 行为时有更多可判断依据。
SQLite 工作线程主机上下文共享问题由 PR #151153 和 PR #151154(均为 P1)共同修复,解决了模块副本之间工作线程主机上下文未正确共享导致的连接泄漏或查询错误。
Gateway 与系统单元停止策略
此前,设置了 User=openclaw 且有效停止超时为 90 秒的 systemd 单元,日志中会显示 drain=315000ms、shutdown=325000ms 的异常预算,使 systemd 在 Gateway 完成 drain 之前就将进程杀掉。PR #151142 修正了这一策略:systemd 服务用户现在使用实际生效的截止期限,90 秒单元对应 drain 75 秒、shutdown 85 秒。检查失败时会向管理器、单元和原因发出警告。
更新恢复与运行时可观测性
运行时恢复场景下的状态保留也有改进。PR #150(编号待确认)确保渠道配置在运行时恢复后仍然保留;PR #151089 改善了意外失败时的诊断信息保留能力;PR #151132 恢复了外部 systemd 服务修复的完整路径。
此外,PR #151106 修复了任务回调期间重复触发延迟维护的问题,避免了不必要的后台操作堆积。
本批次更新整体基调为"渠道投递一致性补强",六个平台同步消除同一类隐患,并伴随关键路径的稳定性提升。


评论