OpenClaw 更新分析 — 2026-05-17
82 commits · 17贡献者 · 最新版本 v2026.5.12(5/14发布)
概览
今天(UTC 5/17)共 82 个提交,来自 17 位贡献者。自 v2026.5.12 发布以来三天累计 150+ commit,进入密集 bugfix 阶段。
本周核心主题:Telegram 稳定性大修 + 安全加固 + 插件路径体系重构。
重要变更
📱 Telegram 稳定性大修(7 commits)
FIX Ayaan Zaidi 集中修复了 Telegram 回复链上下文保留问题,Josh Avant 修复了 Bedrock 集成中的静默失败 bug。
核心修复:
422a1374静默失败修复 — 不可送达的 Telegram 终端消息不再被标记为"成功"(#82905)ee10fe17回复链上下文 — 机器人回复能正确携带祖先消息上下文(#82863)741eafea区分部分回复快照与完整回复e50927b6TTS 到达时保留流式文本(#82820)c4f20b65保留隐式默认账户(#82794)
影响: 我们通过 Telegram 使用 OpenClaw 时,消息投递状态更准确,回复链上下文更完整,TTS 和文本流不再冲突。
🤖 Agent / Subagent 体系(8 commits)
7d131763FIX 使用当前 assistant 的最终 payload (#82850) — Josh Avant3b2cd0ddFIX 子 agent spawn 遵循 cwd (#81896) — Gio Della-Liberad887eb8dFIX 强化 subagent 完成交付 — Peter Steinberger5d81c29cFIX 协调 subagent 等待超时 — Peter Steinberger91ae1a6cFIX 分离嵌入式 agent dispatch 计时 — Galin Iliev9b96f813FIX skills 工具 policy 调用 (#78525) — Agustin Rivera2c549ae2FIX CLI 支持 image describe URL (#82854) — Neerav Makwanaad8ae05fFIX 规范化异常 assistant 内容 — IWhatsskill
关注点: 3b2cd0dd (Honor cwd for native subagent spawns) 直接关系到 subagent 的工作目录行为。 5d81c29c 修复了 subagent 等待超时问题——之前遇到过 subagent 长任务超时中断的问题。
🎵 新功能
f4539041FEAT 新增 fal + OpenRouter 音乐生成 (#82789) 🎶 — Peter Steinberger5b383af7FEAT 原生 macOS Dashboard 窗口 — Peter Steinbergerda8afe35FEAT QA Lab scenario pack selector — Vincent Koc
一次性加了 fal 和 OpenRouter 两个音乐生成后端!
🖥️ Codex / OpenAI 集成(3 commits)
84ec0c27FEAT Control UI 侧边栏 session 快捷键 (#82810) — Peter421b9e28FIX 恢复 Codex snapshot 工具进度 (#82917) — Peter 🔄 (最新 commit)562d460dFIX 保护 post-tool assistant 终端间隙 (#82816) — Josh
⚙️ Gateway / Core(5 commits)
abb06c6eFIX Gateway 暴露时需要认证(安全加固)bea4f0d2FIX 活跃回复期间延迟心跳845da0edFIX 避免阻塞 usage cache 刷新 (#82778)91f45d9cFIX 去重 exec 后续延续 (#82717)ca236d09FIX 强化 gateway launchd 和 configure 段
🔐 安全 / Auth(3 commits)
524185a6FIX exec approval 绑定到真实路径 (#82825)2416de14FIX SecretRef 推理支持 provider 命令 (#82798)6b4d3717FIX 环境引用被视为 audit-safe
影响: 524185a6 修复了 exec approval 的路径解析安全漏洞,approval 现在绑定到真实路径而非符号链接。
🧩 插件体系重构(7 commits from Vincent Koc)
Vincent Koc 集中重构了插件的路径解析体系:
- 修复 bundled plugin 的入口路径、覆盖层解析、运行时状态探测
- 修复 Browser 插件的 Chrome bridge 诊断信息泄露(MCP attach 详情被写入日志)
🧠 Memory 系统(2 commits)
8af2af24FIX 启动时追回过期 session (#82341)a6225060FIX 中止超时的 embedding 请求 (#82770)
🔄 Discord(3 commits)
6a8a6551TEST 覆盖 durable chunk 重试投递 (#82898)549a0ea3FIX 恢复截断的进度 final54619d40FIX 保留仅 tool 回复的进度 draft
⏰ Cron / Tasks(3 commits)
46fde2bdFIX 隔离 cron 在活跃子 agent 下的最佳投递 (#82843) — Alex Knightb29152e3FIX 跟踪 claimed reply hooks 为执行 — Peter
📡 多平台(4 commits)
45d9a094FIX 保留 Signal 群组 session ID (#82853)5040eb5dFIX WhatsApp 文档回退扩展名 (#82851)94ed68bcFIX WhatsApp forceDocument 端到端生效 (#79272)f2d8f383FIX 路由 CLI runtime drain 到 CLI runner (#82857)
🔧 其他修复
6a1b1674FIX 改善 Mac 设置性能9bb4d137FIX Docker 中仅 brew 安装 skill 的修复 (#82845)ab2943e2FIX 修复 legacy 升级中配置的插件 (#82859)ffc7bda4FIX 让 qwen 遵守 chat-template thinking level2c7200f5FIX 保留 TUI draft(chat 忙时) — Harry Xiec1bc6adfFIX 恢复忙时 TUI draft — Peter9e31b9d3FIX 修复 edit 工具 file_path 的 workspace 编辑恢复 (#81909)5fe4e09bFIX 从 thinking block 提取 reasoning_content — Sunnyone2three8e21b3c9FIX Anthropic messages 传输中保留 reasoning_content — Sunnyone2three2a7f9f35FIX 避免 Copilot replay item ID 冲突b77077f4FIX GitHub Copilot identity-encoded API 响应9f112a1aFIX 在缺失 auth 错误中包含已检查的凭证来源77ca3dc9FIX 允许直接媒体失败摘要3fad7705FIX 更新 PI runtime 包
🌐 18 语言 locale 刷新
github-actions 自动化 PR,包括中文简/繁体、日韩、欧洲各语言。
架构观察
- Telegram 修复日: 今天是罕见的单一模块集中修复,Ayaan Zaidi 和 Josh Avant 合作覆盖了回复链上下文、TTS 和 Bedrock 集成三大块
- 插件路径体系重构: Vincent Koc 在一个 session 中完成了 7 个相关 commit,从源覆盖层到运行时探测全覆盖
- 安全关注提升: Gateway 暴露需要认证、exec approval 绑定真实路径、SecretRef 推理——多个安全相关修复同一天出现
- 社区活跃: 17 位贡献者,包括新面孔 Shakker、Sunnyone2three、Agustin Rivera、Neerav Makwana
- 发布后 bugfix 期: v2026.5.12 发布后 3 天 150+ commit,属正常发布后飓风期
对我们的影响
直接相关
- Telegram 体验改善: 回复链上下文更准确,TTS + 文本流不再冲突,消息投递状态可靠
- Music Generation: 新增 fal + OpenRouter 后端,如果我们在用音乐生成能力的话会直接受益
- Subagent 稳定性: 等待超时协调 + 完成交付强化,有助于避免 subagent 长任务问题
- Cron 投递改进: 隔离 cron + 活跃子 agent 的最佳投递修复,对日报系统有积极影响
- Memory 系统: 超时 embedding 请求中止 + 过期 session 追回,改善记忆系统可靠性
原始 commits(今日 82 个)
| SHA | 信息 | 作者 |
|---|---|---|
| 421b9e28 | fix: restore Codex snapshot tool progress (#82917) | Peter Steinberger |
| 6a8a6551 | test(discord): cover durable chunk retry delivery (#82898) | Peter Steinberger |
| df23b0f8 | chore(ui): refresh fa control ui locale | github-actions[bot] |
| 5a350431 | chore(ui): refresh nl control ui locale | github-actions[bot] |
| cb71ad5a | chore(ui): refresh vi control ui locale | github-actions[bot] |
| 7899e998 | chore(ui): refresh pl control ui locale | github-actions[bot] |
| f12b6fa6 | chore(ui): refresh th control ui locale | github-actions[bot] |
| 1d2aa4db | chore(ui): refresh id control ui locale | github-actions[bot] |
| a16150c7 | chore(ui): refresh uk control ui locale | github-actions[bot] |
| 09c8f972 | chore(ui): refresh it control ui locale | github-actions[bot] |
| 6c5f97d0 | chore(ui): refresh tr control ui locale | github-actions[bot] |
| 17109bc2 | chore(ui): refresh ar control ui locale | github-actions[bot] |
| 3fad7705 | fix: update PI runtime packages | Peter Steinberger |
| 9b96f813 | fix(skills): honor tool policy for inline dispatch (#78525) | Agustin Rivera |
| 6da6abdb | chore(ui): refresh es control ui locale | github-actions[bot] |
| 10a0c438 | chore(ui): refresh fr control ui locale | github-actions[bot] |
| 743ad4f2 | chore(ui): refresh ja-JP control ui locale | github-actions[bot] |
| f5d0345f | chore(ui): refresh ko control ui locale | github-actions[bot] |
| 8901cf86 | chore(ui): refresh zh-TW control ui locale | github-actions[bot] |
| 5fddcfae | chore(ui): refresh pt-BR control ui locale | github-actions[bot] |
| b7893fc1 | chore(ui): refresh de control ui locale | github-actions[bot] |
| 6ca0cd43 | chore(ui): refresh zh-CN control ui locale | github-actions[bot] |
| 84ec0c27 | [codex] Add Control UI sidebar session shortcuts (#82810) | Peter Steinberger |
| f2d8f383 | fix(followup): route CLI runtime drains through CLI runner (#82847) (#82857) | hcl |
| 422a1374 | Fix silent success for non-deliverable Bedrock Telegram turns (#82905) | Josh Avant |
| abb06c6e | fix(gateway): require auth for exposed startup | Peter Steinberger |
| 18812bfc | fix(process): clarify lane wait diagnostics (#82792) | Galin Iliev |
| 150179de | fix(ui): track gateway protocol constants | Galin Iliev |
| bd51d8f2 | Deduplicate preview-streamed final replies (#82625) | Gio Della-Libera |
| 5c02b724 | Preserve authored config metadata in doctor (#82687) | Gio Della-Libera |
| 6a1b1674 | fix: improve mac settings performance | Peter Steinberger |
| 7d131763 | fix(agents): use current assistant final payloads (#82850) | Josh Avant |
| b77077f4 | fix(github-copilot): request identity-encoded API responses | Peter Steinberger |
| 5d81c29c | fix: reconcile subagent wait timeouts | Peter Steinberger |
| 06e85d5e | fix: honor explicit message tool allowlists (#82889) | Peter Steinberger |
| 2c549ae2 | fix(cli): support image describe urls (#82854) | Neerav Makwana |
| 5fe4e09b | fix: extract reasoning_content from thinking blocks | Sunnyone2three |
| ab2943e2 | fix(update): repair configured plugins during legacy upgrades (#82859) | Josh Avant |
| ee10fe17 | fix(telegram): preserve reply-chain context (#82863) | Ayaan Zaidi |
| 741eafea | fix(telegram): distinguish partial reply snapshots | Ayaan Zaidi |
| 91ae1a6c | fix(agents): split embedded attempt dispatch timing | Galin Iliev |
| 9bb4d137 | Fix brew-only skill installs in Docker (#82845) | Alex Knight |
| 46fde2bd | Fix isolated best-effort cron delivery with active subagents (#82843) | Alex Knight |
| 549a0ea3 | fix(discord): recover truncated progress finals | Peter Steinberger |
| 39a9a347 | Fix heartbeat runner failure copy (#82848) | Josh Avant |
| 8880a582 | test(telegram): prove bot reply-chain context | Ayaan Zaidi |
| 440e7d2a | fix(telegram): preserve reply-chain context | Ayaan Zaidi |
| 45d9a094 | fix: preserve Signal group session IDs (#82853) | Peter Steinberger |
| f5626906 | fix(sessions): prune malformed missing transcript rows (#82745) | WhatsSkiLL |
| b29152e3 | fix(cron): track claimed reply hooks as execution | Peter Steinberger |
| b328f57b | fix(channels): show missing external channel config (#82849) | Peter Steinberger |
| 5040eb5d | fix: add WhatsApp document fallback extensions (#82851) | Marcus Castro |
| 8e21b3c9 | fix: preserve reasoning_content in anthropic-messages transport for proxy providers | Sunnyone2three |
| ca236d09 | fix: harden gateway launchd and configure sections | Peter Steinberger |
| 9e67f53b | fix(cli): resolve web command SecretRefs | Peter Steinberger |
| d887eb8d | fix(agents): harden subagent completion delivery | Peter Steinberger |
| 524185a6 | fix(exec): bind approval trust to realpaths (#82825) | Peter Steinberger |
| 9b5f5b86 | changelog: add memory startup catch-up and telegram default account preservation | Vincent Koc |
| d801d27d | fix(qa-lab): add gateway log sentinels | Vincent Koc |
| c4f20b65 | fix(telegram): preserve implicit default account (#82794) | Gio Della-Libera |
| c8e12ca0 | changelog: add browser MCP redaction and MEMORY/TTS guidance (#81930) | Vincent Koc |
| 6821fbcf | Clarify MEMORY guidance over generic TTS hints (#81930) | Gio Della-Libera |
| 9f112a1a | fix: include checked credential source in missing auth errors | gleb |
| 3b2cd0dd | Honor cwd for native subagent spawns (#81896) | Gio Della-Libera |
| bea4f0d2 | fix(gateway): defer heartbeats during active replies | Peter Steinberger |
| 77ca3dc9 | fix: allow direct media failure summaries | Peter Steinberger |
| 6e2e63a9 | fix: suppress equivalent OpenAI Codex fallback notices | Peter Steinberger |
| 8af2af24 | fix(memory): catch up stale sessions on startup (#82341) | Gio Della-Libera |
| 4537b89d | fix(agents): normalize Copilot replay tool IDs | Galin Iliev |
| c1c67306 | fix(openai): restore Codex xhigh thinking metadata (#82761) | Peter Steinberger |
| ffc7bda4 | fix(qwen): honor chat-template thinking level | Peter Steinberger |
| f4539041 | feat: add fal and OpenRouter music generation (#82789) | Peter Steinberger |
| a6225060 | fix(memory): abort timed-out embedding requests (#82770) | Peter Steinberger |
| b77b3a7a | changelog: add Anthropic-messages reasoning_content thinking-block extraction | Vincent Koc |
| 562d460d | fix(codex): guard post-tool raw assistant terminal gaps (#82816) | Josh Avant |
| 2416de14 | Fix infer SecretRef resolution for provider-backed commands (#82798) | Josh Avant |
| f5904392 | fix: scope plugin metadata to workspace context | Shakker |
| 2a7f9f35 | fix: avoid Copilot replay item ID collisions | Peter Steinberger |
| ad8ae05f | fix(agents): normalize malformed assistant content | IWhatsskill |
| e50927b6 | fix(telegram): keep streamed text when tts arrives (#82820) | Josh Avant |
| 9e31b9d3 | Fix edit recovery for file_path workspace edits (#81909) | Gio Della-Libera |
| c1bc6adf | fix: restore busy TUI draft | Peter Steinberger |
| ab595dec | fix: normalize malformed assistant replay content (#82748) | Peter Steinberger |
| 1896f8a3 | fix: resolve installed plugin facade dist surfaces | Peter Steinberger |
| 6b4d3717 | fix(secrets): treat env refs as audit-safe auth values | |
| 2c7200f5 | fix(tui): preserve draft while chat is busy | Harry Xie |
| dcb41609 | docs: clarify Crabbox scenario proof | Peter Steinberger |
| 845da0ed | fix(gateway): avoid blocking usage cache refreshes (#82778) | hcl |
| 54619d40 | fix(discord): keep progress drafts for tool-only replies | Peter Steinberger |
| 21244d97 | fix(tasks): make delegated completions review-ready | 100menotu001 |
| ecb9028f | fix(browser): redact chrome mcp attach details | Vincent Koc |
| 55e4b76b | fix(browser): preserve raw chrome launch diagnostics | Vincent Koc |
| 82e8b523 | fix(browser): redact chrome bridge diagnostics | Vincent Koc |
数据来源: GitHub API · 2026-05-17 00:00-05:30 UTC · 82 commits