
OpenClaw 24h 更新快报(2026-06-07):ReDoS 防护、iMessage 超时、iOS Talk 回退透明化
过去 24 小时,OpenClaw 共合并 30 个 PR,涵盖多个重要安全修复、模型提供商兼容性改进、渠道集成增强以及大规模 SQLite 存储迁移。ReDoS 漏洞防护、iMessage 发送超时修复和 iOS Talk 回退体验透明化是本次最值得关注的变化。
安全与稳定性
PR #91233 修复了 Agent 后台会话名称推导中的 ReDoS(正则表达式拒绝服务)漏洞。该漏洞由 ClawSweeper 自动化发现并通过 automerge 合并,属于 P1 高优先级修复。攻击者若能控制会话名称中的特殊字符序列,可能导致后台会话名称推导发生灾难性回溯,使 OpenClaw 在处理特定会话名时进入长时间卡顿或无响应。修复改用安全字符串构造方式,完全消除该风险路径。
iOS 版 iMessage 渠道在 macOS 26 上进行了两项韧性修复(PR #91041)。第一,当私用 API 不可用时,探测现在将 imsg 自身的状态原因(SIP / 库验证 / macOS 26 AMFI gate)写入状态消息,不再给出误导性的"运行 imsg launch"提示;第二,将发送超时与探测超时解耦——探测保持快速响应(10s),而发送操作独立使用 150s 超时,以覆盖 macOS 26 上观察到的最长约 124s 间歇性卡顿,避免长附件或长文本消息的发送在完成前被错误中止。
模型与 AI 能力
PR #91248 修复了 Ollama 模型目录元数据丢失问题。配置好的 Ollama 模型引用(local / remote / Ollama Cloud)在运行时目录增强过程中,现在会优先用来自 /api/show 的实时元数据进行丰富,而非直接被覆盖。这一修复确保了精确配置的模型标识符不会被空占位符或环境变量污染,同时保留了用户对 API key 和元数据的控制权。
多提供商兼容性问题也在本次更新中得到处理。PR #91125 修正了 Gemini 路径中的 Google provider 前缀剥离逻辑,避免了某些流式响应解析失败。PR #91073 修正了 OpenRouter 流式生成成本计算不一致问题,确保流式响应下的用量计费准确。PR #91118 修正了 Foundry Responses 的 reasoning replay id 保留问题,防止多轮推理时上下文丢失。
渠道集成与通知
iOS Talk 体验本次得到显著改善(PR #91201)。此前当配置的网关实时语音模式启动失败,iOS 会静默回退到本地语音识别/TTS,用户完全无法感知背后发生了什么。新实现将"配置的语音模式"与"当前活跃的语音模式"分开显示,并在实时语音不可用时在 Talk 界面顶部显示专用横幅,说明原因和当前使用的回退方案。网关实时 relay 启动失败现在会通过结构化 issue 代码报告给 iOS 端,而不是发出一个未分类的关闭事件就消失。
Discord 渠道的运行时适配器可解析性也得到修复(PR #91119),解决了 Discord 适配器在特定条件下无法正确解析导致消息路由失败的问题。
内容处理
PR #91101 修正了 ReplyChain 和 ReplyToBody JSON 路径中的正文截断逻辑。当回复正文超过 2000 字符时,旧逻辑只保留前缀而丢弃最有价值的尾部上下文。新实现的 truncateBodyHeadTail 函数采用 UTF-16 安全方式(基于码点迭代而非字符串下标),保留前 60% 和尾部 40%,中间以 …[omitted]… 标记,使 2000 字符预算同时覆盖首尾两端。该修复解决了 issue #91042 中报告的"长回复被截断后关键信息丢失"问题。
大规模 SQLite 存储迁移
本次更新包含多项将原有 JSON 文件存储迁移到 SQLite 的重构,涉及多个插件和核心子系统:
- PR #91133:Plugin SDK 持久化去重状态迁移至 SQLite(Nextcloud Talk 等插件受益)
- PR #91127:沙箱注册表存储迁移至 SQLite
- PR #91100:Matrix 加密侧链存储迁移至 SQLite,含从旧 JSON 的医生迁移导入路径
- PR #91088:Matrix 同步缓存存储迁移至 SQLite
- PR #91072:Memory-wiki 源同步状态存储迁移至 SQLite
- PR #91053:Zalo 托管媒体存储迁移至插件状态 SQLite
- PR #91056:memory-core dreams 状态存储迁移至 SQLite
- PR #91034:acpx 进程状态存储迁移至 SQLite
- PR #91030:device-pair 通知状态存储迁移至 SQLite
这些迁移均配套了 doctor 命令下的数据导入路径,确保从旧 JSON 格式到 SQLite 的平滑升级不丢失可读数据。
其他修复
传统 Agent 注册表 schema 通过 doctor 命令迁移至新格式(PR #91131),解决了长期积累的 schema 兼容性问题。QQBot 群工具策略配置迁移至新结构(PR #91128),修复了配置冲突和消息投递误判。Cron 重试分类现在要求 HTTP 上下文(PR #90954,确保 server_error 类型重试在有完整请求上下文时才能触发。模型配置持久化 schema 增加了对 thinkingLevelMap 的支持(PR #91037),Xiaomi 补全 replay 兼容性也得到修正(PR #91113)。
本次更新基调以"安全优先、存储统一、体验透明"为主线,大规模 SQLite 迁移将显著改善多插件并发写入时的文件锁竞争问题,而 iOS Talk 回退透明化填补了语音交互中长期存在的信息盲区。


评论