乐于分享
好东西不私藏

OpenClaw v2026.3.13-1 发布说明 - 恢复性更新

OpenClaw v2026.3.13-1 发布说明 - 恢复性更新

Immutable Recovery Release

This recovery release uses v2026.3.13-1 because GitHub immutable releases do not allow reusing v2026.3.13 after publication.

重要说明:

  • • 此版本用于恢复已损坏的 v2026.3.13 tag/release 路径
  • • 对应的 npm 版本仍是 2026.3.13,不是 2026.3.13-1
  • • -1 后缀仅用于 Git tag 和 GitHub Release

📋 主要变更

🔧 Bug 修复(50+ 项)

核心功能

  • • fix(compaction): 使用完整会话令牌计数进行压缩后健全性检查 #28347[1]
  • • fix(session): 会话重置时保留 lastAccountId 和 lastThreadId #44773[2]
  • • fix(agents): 避免在大小写不敏感挂载上重复注入内存文件 #26054[3]
  • • fix(agents): 重绘会话重置提示以避免 Azure 内容过滤器 #43403[4]
  • • fix(agents): 尊重用户对非原生 openai-completions 的兼容性覆盖 #44432[5]
  • • fix(agents): 丢弃 Anthropic 思考块的重放 #44843[6]
  • • fix(ollama): 隐藏原生推理仅输出 #45330[7]

通信渠道

  • • fix(telegram): 将媒体传输策略纳入 SSRF 防护 #44639[8]
  • • fix: 处理 Discord 网关元数据获取失败 #44397[9]
  • • fix(signal): 添加群组配置到 Signal 频道模式 #27199[10]
  • • fix: 通过 IPv4  fallback 重试 Telegram 入站媒体下载 #45327[11]
  • • fix(feishu): 飞书文件上传保留非 ASCII 文件名 #34262[12]
  • • fix(feishu): 添加事件级去重防止重复回复 #43762[13]
  • • Slack: 添加可选交互式回复指令 #44607[14]

UI/UX

  • • feat(android): 重新设计聊天设置 UI #44894[15]
  • • feat(ios): 添加欢迎引导分页器 #45054[16]
  • • fix(ui): 保持共享认证在不安全的 control-ui 连接上 #45088[17]
  • • fix(ui): 恢复聊天新消息类在滚动按钮上 #44856[18]
  • • fix(ui): 停止仪表板聊天历史重载风暴 #45541[19]
  • • fix(ui): 保持超大聊天回复可读性 #45559[20]
  • • UI: 修复聊天上下文通知图标大小 #45533[21]
  • • ui: 移动端导航抽屉和主题变体优化 #45107[22]

配置与模型

  • • Docker: 添加 OPENCLAW_TZ 时区支持 #34119[23]
  • • fix(config): 添加缺失的 params 字段到 agents.list[] 验证模式 #41171[24]
  • • fix(config): 避免 Anthropic 启动崩溃 #45520[25]
  • • fix(discovery): 添加缺失的域名到 wideArea Zod 配置模式 #35615[26]
  • • fix: 恢复 runtime zod 模式中的 web fetch firecrawl 配置 #42583[27]
  • • fix(models): 应用 Gemini 模型 ID 规范化到 google-vertex 提供商 #42435[28]
  • • fix(agents): 在引导后保留空白本地自定义提供商 API 密钥 #45631[29]

浏览器与自动化

  • • fix(browser): 规范化批量动作分发的选择器和批量支持 #45457[30]
  • • fix(browser): 后续批量失败和限制处理 #45506[31]
  • • fix(browser): 强化现有会话驱动验证和会话生命周期 #45682[32]

平台特定修复

  • • fix(windows): 在重启和进程清理期间抑制可见控制台窗口 #44842[33]
  • • fix(android): 使用 Google 代码扫描器进行引导二维码 #45021[34]
  • • Android: 修复 TalkModeVoiceResolver 中的 HttpURLConnection 泄漏 #43780[35]
  • • macOS: 在 gateway prompter 中尊重 exec-approvals.json 设置 #13707[36]
  • • fix(macos): 防止 PortGuard 在远程模式下杀死 Docker Desktop #13798[37]
  • • fix(macos): 将最低 Node.js 版本与运行时防护对齐 (22.16.0) #45640[38]

安全与性能

  • • security(docker): 防止 Docker 构建上下文中的网关令牌泄漏 #44956[39]
  • • perf(build): 去重 plugin-sdk 块以修复约 2 倍内存回归 #45426[40]
  • • docker: 在所有 Dockerfile 中添加 apt-get upgrade #45384[41]
  • • fix(cron): 防止隔离 cron 嵌套通道死锁 #45459[42]
  • • fix(gateway): 限制未响应的客户端请求 #45689[43]
  • • Gateway: 将范围限制的探测 RPC 视为降级可达性 #45622[44]
  • • Plugins: 在频道和绑定冲突时快速失败 #45628[45]

CLI 与工具

  • • CLI: 对齐 xhigh 思考帮助文本 #44819[46]
  • • fix: 处理交付去重审查后续 #44666[47]
  • • fix: 解决跨代理子代理生成的目标代理工作区 #40176[48]
  • • Fix: 更新器刷新缺少调用 cwd 时的服务重新安装 #45452[49]
  • • Guard: 更新器服务刷新防止缺少调用 cwd #45486[50]

测试与文档

  • • docs: 将发布后变更日志条目移动到 Unreleased #44691[51]
  • • docs: 修复 xhigh 帮助变更日志致谢 #44874[52]
  • • docs: 修复会话键 :dm: → :direct: #26506[53]
  • • Docs: 描述 Slack 交互式回复 #45463[54]
  • • docs(android): 注明应用尚未公开发布 #23051[55]
  • • Fix: 文档中 brave 成本渲染不正确 #44989[56]
  • • test(config): 在兼容模式夹具中覆盖 requiresOpenAiAnthropicToolPayload #43438[57]
  • • test: 注释聊天中止辅助导出 #45346[58]
  • • test: 保留目标运行的包装器行为 #45518[59]
  • • Updated: 测试中默认模型从 openai-codex/gpt-5.3-codex 更新为 openai-codex/gpt-5.4 #44367[60]
  • • small addition: .gitignore 小增补 #42879[61]
  • • refactor: 移除 Slack 探测中冗余的 ?? undefined #44775[62]

其他修复

  • • fix(sessions): 在 chat.inject 缺失时创建转录文件 #36645[63]
  • • fix(gateway/ui): 恢复 control-ui 认证绕过并分类连接失败 #45512[64]
  • • [codex]: 优化侧边栏状态、代理技能和聊天渲染 #45451[65]

🎉 新贡献者

欢迎以下 17 位首次参与项目的贡献者:

贡献者
PR
@jrrcdev[66]
#44367[60]
@Kaneki-x[67]
#43780[35]
@cheapestinference[68]
#44432[5]
@xingsy97[69]
#43438[57]
@atian8179[70]
#41171[24]
@stim64045-spec[71]
#42583[27]
@Sovtoshi-SC[72]
#42879[61]
@keepitmello[73]
#10456[74]
@moshehbenavraham[75]
#40176[48]
@keelanfh[76]
#44989[56]
@Cafexss[77]
#44775[62]
@Astro-Han[78]
#44856[18]
@eengad[79]
#23051[55]
@jacobtomlinson[80]
#45384[41]
@fabiaodemianyang[81]
#34262[12]
@sliekens[82]
#13707[36]
@teslamint[83]
#13798[37]
@yunweibang[84]
#43762[13]

🔗 完整变更

完整变更日志: v2026.3.12...v2026.3.13-1[85]

感谢所有贡献者让这次发布成为可能! 🎉

引用链接

[1] #28347: https://github.com/openclaw/openclaw/pull/28347[2] #44773: https://github.com/openclaw/openclaw/pull/44773[3] #26054: https://github.com/openclaw/openclaw/pull/26054[4] #43403: https://github.com/openclaw/openclaw/pull/43403[5] #44432: https://github.com/openclaw/openclaw/pull/44432[6] #44843: https://github.com/openclaw/openclaw/pull/44843[7] #45330: https://github.com/openclaw/openclaw/pull/45330[8] #44639: https://github.com/openclaw/openclaw/pull/44639[9] #44397: https://github.com/openclaw/openclaw/pull/44397[10] #27199: https://github.com/openclaw/openclaw/pull/27199[11] #45327: https://github.com/openclaw/openclaw/pull/45327[12] #34262: https://github.com/openclaw/openclaw/pull/34262[13] #43762: https://github.com/openclaw/openclaw/pull/43762[14] #44607: https://github.com/openclaw/openclaw/pull/44607[15] #44894: https://github.com/openclaw/openclaw/pull/44894[16] #45054: https://github.com/openclaw/openclaw/pull/45054[17] #45088: https://github.com/openclaw/openclaw/pull/45088[18] #44856: https://github.com/openclaw/openclaw/pull/44856[19] #45541: https://github.com/openclaw/openclaw/pull/45541[20] #45559: https://github.com/openclaw/openclaw/pull/45559[21] #45533: https://github.com/openclaw/openclaw/pull/45533[22] #45107: https://github.com/openclaw/openclaw/pull/45107[23] #34119: https://github.com/openclaw/openclaw/pull/34119[24] #41171: https://github.com/openclaw/openclaw/pull/41171[25] #45520: https://github.com/openclaw/openclaw/pull/45520[26] #35615: https://github.com/openclaw/openclaw/pull/35615[27] #42583: https://github.com/openclaw/openclaw/pull/42583[28] #42435: https://github.com/openclaw/openclaw/pull/42435[29] #45631: https://github.com/openclaw/openclaw/pull/45631[30] #45457: https://github.com/openclaw/openclaw/pull/45457[31] #45506: https://github.com/openclaw/openclaw/pull/45506[32] #45682: https://github.com/openclaw/openclaw/pull/45682[33] #44842: https://github.com/openclaw/openclaw/pull/44842[34] #45021: https://github.com/openclaw/openclaw/pull/45021[35] #43780: https://github.com/openclaw/openclaw/pull/43780[36] #13707: https://github.com/openclaw/openclaw/pull/13707[37] #13798: https://github.com/openclaw/openclaw/pull/13798[38] #45640: https://github.com/openclaw/openclaw/pull/45640[39] #44956: https://github.com/openclaw/openclaw/pull/44956[40] #45426: https://github.com/openclaw/openclaw/pull/45426[41] #45384: https://github.com/openclaw/openclaw/pull/45384[42] #45459: https://github.com/openclaw/openclaw/pull/45459[43] #45689: https://github.com/openclaw/openclaw/pull/45689[44] #45622: https://github.com/openclaw/openclaw/pull/45622[45] #45628: https://github.com/openclaw/openclaw/pull/45628[46] #44819: https://github.com/openclaw/openclaw/pull/44819[47] #44666: https://github.com/openclaw/openclaw/pull/44666[48] #40176: https://github.com/openclaw/openclaw/pull/40176[49] #45452: https://github.com/openclaw/openclaw/pull/45452[50] #45486: https://github.com/openclaw/openclaw/pull/45486[51] #44691: https://github.com/openclaw/openclaw/pull/44691[52] #44874: https://github.com/openclaw/openclaw/pull/44874[53] #26506: https://github.com/openclaw/openclaw/pull/26506[54] #45463: https://github.com/openclaw/openclaw/pull/45463[55] #23051: https://github.com/openclaw/openclaw/pull/23051[56] #44989: https://github.com/openclaw/openclaw/pull/44989[57] #43438: https://github.com/openclaw/openclaw/pull/43438[58] #45346: https://github.com/openclaw/openclaw/pull/45346[59] #45518: https://github.com/openclaw/openclaw/pull/45518[60] #44367: https://github.com/openclaw/openclaw/pull/44367[61] #42879: https://github.com/openclaw/openclaw/pull/42879[62] #44775: https://github.com/openclaw/openclaw/pull/44775[63] #36645: https://github.com/openclaw/openclaw/pull/36645[64] #45512: https://github.com/openclaw/openclaw/pull/45512[65] #45451: https://github.com/openclaw/openclaw/pull/45451[66] @jrrcdev: https://github.com/jrrcdev[67] @Kaneki-x: https://github.com/Kaneki-x[68] @cheapestinference: https://github.com/cheapestinference[69] @xingsy97: https://github.com/xingsy97[70] @atian8179: https://github.com/atian8179[71] @stim64045-spec: https://github.com/stim64045-spec[72] @Sovtoshi-SC: https://github.com/Sovtoshi-SC[73] @keepitmello: https://github.com/keepitmello[74] #10456: https://github.com/openclaw/openclaw/pull/10456[75] @moshehbenavraham: https://github.com/moshehbenavraham[76] @keelanfh: https://github.com/keelanfh[77] @Cafexss: https://github.com/Cafexss[78] @Astro-Han: https://github.com/Astro-Han[79] @eengad: https://github.com/eengad[80] @jacobtomlinson: https://github.com/jacobtomlinson[81] @fabiaodemianyang: https://github.com/fabiaodemianyang[82] @sliekens: https://github.com/sliekens[83] @teslamint: https://github.com/teslamint[84] @yunweibang: https://github.com/yunweibang[85] v2026.3.12...v2026.3.13-1: https://github.com/openclaw/openclaw/compare/v2026.3.12...v2026.3.13-1