← 返回更新日志

OpenClaw v2026.5.22

2026-05-24 · GitHub 原文
## 2026.5.22 ### 变更 - 网关/性能:复用进程稳定的通道目录读取,避免重复的绑定通道边界检查,并轮换网关监视 CPU 配置文件,以便基准测试运行不会累积无界构件。 - 网关/性能:在启动、配置、模型、通道、设置和密钥元数据读取器之间复用不可变的插件元数据快照,使热路径避免重复的插件文件统计和清单注册表重载。 - 网关/性能:延迟加载启动时空闲的插件工作、核心网关方法处理程序和嵌入式 ACPX 运行时,使网关健康就绪信号不再等待未使用的处理程序树或 ACPX 探测。 - 网关/性能:缓存插件 SDK 公共表面别名映射并跳过不相关的 macOS Linuxbrew PATH 探测,使网关启动避免重复的文件系统遍历和缓慢的缺失目录统计。 - 会议纪要:在核心 npm 包之外添加一个纯源代码的外部会议纪要插件和 SDK 源提供者契约,具有自动启动捕获配置、手动转录导入、只读 `openclaw meeting-notes` CLI 访问,以及作为第一个实时源的 Discord 语音。 - 文档/通道/配置:添加 Signal `configPath`、Telegram 通配符主题默认值、本地时间备份存档名称、Termux 主目录回退、包含路径验证、密钥扫描安全占位符指南、Gemini CLI/Antigravity 媒体指南以及 macOS VM 自动登录指南。感谢 @NorseGaud, @yudistiraashadi, @huangqian8, @VibhorGautam, @maweibin, @tianxingleo, @IgnacioPro, 和 @xzcxzcyy-claw。 - 文档:澄清模型使用可移植性、Codex 迁移前提条件、状态引导措辞、线程绑定子代理限制、钩子所有权和配置保留安全指南。感谢 @aniruddhaadak80, @leno23, @TomDjerry, @matthewxmurphy, @vincentkoc, 和 @stablegenius49。 - 文档:澄清 README 入门和网关启动路径、WhatsApp 二维码/408 恢复、cron 输出语言提示、技能高级功能、网关上游 403 故障排除和插件回退覆盖指南。感谢 @deepujain, @Zacxxx, @Jah-yee, @neyric, @usimic, @Renu-Cybe, @BigUncle, 和 @SeashoreShi。 - 文档:澄清上下文修剪比率边界、本地仪表板恢复、CLI 环境标记、远程入门令牌行为和 Peekaboo Bridge 对子进程代理的权限。感谢 @ayesha-aziz123, @dishraters, @hougangdev, 和 @brandonlipman。 - 文档:澄清浏览器 CDP 诊断、Plugin SDK 允许列表导入、状态反应计时默认值、队列引导行为、有限工具故障排除、cron HEARTBEAT 处理、Telegram 多代理组、Bitwarden SecretRef 设置和 EasyRunner 部署。感谢 @Quratulain-bilal, @mbelinky, @Mickey-, @vancece, @xenouzik, @posigit, @surlymochan, @janaka, 和 @choiking。 - Crabbox/Testbox:从临时完整检出运行干净的稀疏检出 Testbox 同步,并通过 Corepack pnpm 路由远程变更门。 - 文档:澄清仅 IPv4 网关 BYOH 绑定、可信代理范围清除、Android 配对批准、macOS 辅助功能授权、Zalo 配置文件环境变量、密码存储 SecretRef 设置和中文记忆导航。感谢 @itskai-dev, @gwh7078, @longstoryscott, @MoeJaberr, 和 @yuaiccc。 - 文档:将 GLM 整合到 Z.AI 下,添加 Upstash Box 安装指南和网关暴露操作手册,澄清 MEDIA 指令、Copilot 和 Voyage 设置、配置路径引用、真实行为证明和记忆文件写入指南。感谢 @BobDu, @alitariksahin, @Jefsky, @musaabhasan, @OmerZeyveli, @leno23, @WuKongAI-CMU, @luoyanglang, 和 @majin1102。 - 文档:澄清媒体提供者凭证、Codex/OpenClaw 代码模式边界、Slack 和 Telegram 确认反应、飞书动态代理、密钥明文边界、记忆指南和中文词汇表术语。感谢 @nielskaspers, @cosmopolitan033, @drclaw-iq, @alexgduarte, @zccyman, @chengoak, 和 @cassthebandit。 - 打包:从 npm tarball 中排除文档图片和资源,减少发布包大小,而不影响运行时文档搜索或 CLI 行为。感谢 @SebTardif。 - 媒体理解:停止自动探测 Gemini CLI,仅在配置的提供者 API 之后将 Antigravity CLI 用作较低优先级的图像/视频回退。 - 代理/子代理:将默认子代理引导上下文限制为 `AGENTS.md` 和 `TOOLS.md`,默认将角色、身份、用户、记忆、心跳和设置文件排除在委派工作者之外。(#85283)感谢 @100yenadmin。 - 维护者技能:将插件 SDK/API 边界工作排除在 `openclaw-landable-bug-sweep` 之外,以便 bugbash 扫荡专注于小的易修复问题。 - QA-Lab/诊断:扩展 OpenTelemetry 烟雾测试工具以证明追踪、指标和日志导出,并添加一流的 Prometheus 和可观测性烟雾别名。 - 插件 SDK:添加一个通用的通道消息轮询发送器,以便通道插件可以在不依赖通道特定 SDK 外观的情况下暴露轮询投递。 - Crabbox:使本地包装器的提供者验证与安装的 Crabbox 二进制文件保持同步,同时保留支持的别名,如 `docker` 和 `blacksmith`。(#85302)感谢 @hxy91819。 - 维护者技能:添加 `openclaw-landable-bug-sweep`,用于从问题/PR 扫荡中生成五个小的、已审阅的、CI 绿色的 OpenClaw 错误修复 PR。 - 控制 UI/聊天:在聊天会话选择器中添加搜索和“加载更多”分页,保持初始会话加载有界,同时使较旧的对话可访问。(#85237)感谢 @amknight。 - CLI/入门:当裸 `openclaw` 在存在作者配置之前运行时,开始经典入门,同时将已配置的安装保留在 Crestodian 上。(#72343)感谢 @fuller-stack-dev。 - Discord:允许为长时间运行的组件工作流配置有界的 `agentComponents.ttlMs` 回调注册表生命周期,支持按帐户覆盖和 24 小时上限。(#84189)感谢 @100menotu001。 - xAI/Grok:为 Grok `web_search` 复用 xAI OAuth 认证配置文件,通过 Web 搜索线程传递活跃代理认证,添加 Grok 模型别名,并让媒体提供者声明默认操作超时。(#85182)感谢 @fuller-stack-dev。 - 插件 SDK:添加行级会话工作流辅助函数并弃用 `loadSessionStore`,以便插件可以在不依赖旧版全存储形状的情况下读取和修补会话。(#84693)感谢 @efpiva。 - 网关/插件:在分派期间复用兼容的网关启动插件注册表,以便安全的插件分派避免冗余的注册表加载。(#84324)感谢 @ai-hpc。 - 插件/SDK:添加一个通用的 `embeddingProviders` 能力契约和注册 API,以便嵌入可以在内存特定适配器之外成为可复用的提供者表面。 - 依赖项:刷新提供者、插件、UI 和工具包,将 `protobufjs` 更新到 8.4.0 以清除当前 npm 通告,并将 Claude ACP 完成补丁向前携带到 `@agentclientprotocol/claude-agent-acp` 0.36.1。 - 代理/工具:移除旧的发送者-所有者工具门控路径,以便配置的工具对受信任的会话保持可见,而命令和通道操作认证仍携带真实的发送者身份。 - QA-Lab:添加精选的模拟 JSONL 回放夹具和首次漂移报告,用于运行时一致性审计。(#80323, refs #80176)感谢 @100yenadmin。 - QA-Lab:添加一个 QA 总线工具追踪可见性场景,用于经过清理的工具调用断言。 - QA-Lab:用具体的观察到的 QA 行为替换种子场景提示中的通用证据框架。 - QA-Lab:在覆盖率报告中列出命名的场景包,以便个人代理隐私覆盖率在审计中保持可见。 - QA-Lab:在覆盖率报告中列出实时传输通道成员身份,以便真实的传输检查与种子的 qa-channel 场景保持分离。 - 发布/包:在包验收通道之前运行包完整性检查,以便公共安装/更新验证在私有 QA 资产泄漏到包之前失败。 - QA-Lab:将可选的 100 轮运行时一致性浸泡包含在发布浸泡工件中,以便长时间运行的 Codex/Pi 转录漂移在默认门之外保持可见。(#80395)感谢 @100yenadmin。 - QA-Lab:为 Codex 应用服务器超时和停滞运行哨兵添加一个纯实时的长上下文进度监视器场景。(#80323)感谢 @100yenadmin。 - QA-Lab:将网关重启恢复和流式最终完整性场景标记为纯实时运行时一致性通道。(#80323)感谢 @100yenadmin。 - QA-Lab:添加一个个人代理故障恢复场景,检查诚实的部分状态、重试边界和本地恢复工件。(#83872)感谢 @iFiras-Max1。 - QA-Lab:包含一个可选的 `update.run` 包自身升级哨兵,用于破坏性的最新包恢复检查。 - QA-Lab:为缺少安装、固定版本漂移、首次轮次安装排序和 doctor 迁移安全添加 Codex 插件生命周期和认证配置文件夹具覆盖。(#80323, refs #80174)感谢 @100yenadmin。 - 模型/性能:在网关启动时预热提供者认证状态映射,以便 `/models` 和每个模型列表调用在热路径上短路每个提供者插件/外部 CLI 发现。每次调用成本从约 20 秒降至约 5 毫秒(约 4100 倍);一次性启动预热在热重载后重置并重新预热。(#84816)感谢 @sjf。 - 发布/安全:用生成的 shrinkwrap 发布根 npm 包和 OpenClaw 拥有的 npm 插件,为合适的插件 tarball 支持捆绑的插件运行时依赖项,并要求审查锁定文件/shrinkwrap 变更,以便发布的安装使用锁定的依赖关系图。 - 测试/性能:将 doctor 核心健康检查单元覆盖率与真实的技能/工作区发现隔离,以便 `doctor-core-checks` 不再主导单元性能,同时保留一个真实的技能就绪烟雾测试。(#84493)感谢 @frankekn。 ### 修复 - WebChat:汇总内部消息-工具源回复,以便工具卡不再重复可见的回复正文。(#84773)感谢 @jason-allen-oneal。 - 网关:在之后的非终端事件中保留延迟生命周期错误清理,以便提供者超时可以持久化失败的会话状态,而不是让会话卡在运行状态。(#85256, fixes #63819)感谢 @samzong。 - 代理/子代理:在超时摘要期间报告仅工具的子进度,而不是显示无可见输出。 - Telegram/ACP:当入站 ACP 目标不携带单独的线程 ID 时,保留显式的 `:topic:` 对话后缀。 - 浏览器/代理:绕过托管代理的精确本地托管 Chrome CDP 就绪性和 DevTools WebSocket 端点,以便当操作员代理阻止环回出口时,`openclaw browser start` 正常工作。(#83255)感谢 @lightcap。 - Ollama:绕过托管代理的配置本地嵌入源,同时保留对未配置目标的 SSRF 防护。感谢 @Kaspre。 - OpenAI/图像:通过原生 OpenAI Images API 路由 Codex API 密钥图像生成,而不是通过 Codex OAuth 流式后端,避免来自有效 API 密钥的 401 错误。 - 代理/OpenAI 补全:为类似 OpenAI 的代理端点省略空的工具负载字段,以便严格的 vLLM 风格服务器接受无工具轮次。(#85835)感谢 @rendrag-git。 - 检查/Windows:将完整的 `pnpm check` 阶段命令通过托管子运行器路由,以便 Windows 在那里也避免 Node shell-argv 弃用警告。 - 检查/Windows:通过显式的 `cmd.exe` 包装运行托管子命令,而不是使用 argv 的 Node shell 模式,避免在变更检查期间 Node 24 子进程弃用警告。 - 网关:从代理提示历史中省略内部流错误占位符条目,以便失败助手轮次不会作为模型创作的文本重放。(#85652)感谢 @anyech。 - 会话:在锁获取期间强制执行会话写锁最大持有策略,以便可以在过期锁窗口之前回收长时间持有的锁。(#85764)感谢 @njuboy11。 - 模型:修剪已退休的 Groq、GitHub Copilot、OpenAI、xAI 和旧版 Claude 目录条目,并使用 doctor 迁移将现有配置升级到当前提供者引用。 - Doctor/更新:通过比较规范路径将联结支持的源检出识别为 git 安装,然后再显示包管理器更新指南。修复 #82215。感谢 @igormf。 - 通道:在直接聊天、群组、频道和论坛主题中尊重 `/verbose on` 工具/进度摘要,同时保留安静的默认行为。(#85488)感谢 @kurplunkin。 - CLI/技能:当技能设置没有缺少的依赖项要安装时,显示包含下一步命令的已就绪通知。(#85032)感谢 @aniruddhaadak80。 - Microsoft Foundry:将 DeepSeek V4 Pro 和 Flash 模型通过 Foundry Responses API 路由,同时将较旧的 DeepSeek 模型保留在现有路径上。(#85549)感谢 @roslinmahmud。 - 状态/使用:在完整使用输出中显示 AWS SDK 模型配置的成本估算,同时保持仅令牌使用回复免费。(#85619)感谢 @ItsOtherMauridian。 - 代理/OpenAI Responses:为 OpenAI Responses API 系列重试非可见的仅推理轮次,而不是将它们视为空的失败轮次。(#85603)感谢 @SebTardif。 - 指令标签:当显示剥离未进行任何指令标签更改时,保留消息和内容部分对象身份。(#85682)感谢 @willamhou。 - Telegram:从 `sendMessage` 操作发送本地 `path`/`filePath` 和结构化附件媒体,而不是丢弃它们或发送纯文本消息。(#85219)感谢 @keshavbotagent。 - 会话/状态:当新鲜提供者使用量不可用时,显示估算的上下文预算,并在会话重置和压缩边界清除过时估算。(#84830)感谢 @giodl73-repo。 - 网关/配置:在启动时将相对 `OPENCLAWS_STATE_DIR` 覆盖固定为绝对路径,以便后续工作目录更改无法重新定位网关状态。(#52264)感谢 @PerfectPan。 - 发布/包:通过 Windows 安全的 npm 命令 shim 运行 npm 发布、预发布和发布后验证,以便原生 Windows 检查可以执行 `npm.cmd` 而不是将其视为二进制文件。 - 代理/工具:通过工具选择传递 CLI 运行时别名,以便提供者拥有的 CLI 别名在到达正确运行时之前不再被拒绝。(#85631)感谢 @potterdigital。 - 密钥:在交互式 `secrets configure` 确认后显示不可逆的 apply 警告,以便已确认的迁移仍获得最终安全提示。(#85638)感谢 @alkor2000。 - 代理/CLI 输出:当助手使用事件存在时,忽略累积的 Claude `stream-json` 结果使用量,防止膨胀的缓存读取计数。(#85625)感谢 @zhouhe-xydt。 - CLI:通过保持其保持活动间隔引用使 `waitForever()` 保持活动,以便公共辅助函数不再立即以 Node 的未解决等待代码退出。(#85694)感谢 @m1qaweb。 - 代理/引导:针对缺失文件名保护引导名称检查,以便格式错误的引导条目发出警告并截断而不是崩溃。修复 #85523。(#85615)感谢 @zhouhe-xydt。 - CLI/任务:拒绝部分数字的 `openclaw tasks audit --limit` 值,以便审计限制必须是真正的正整数,而不是接受类似 `5abc` 的字符串。(#84901)感谢 @jbetala7。 - 状态/诊断:限制深度 Docker 审计探测,以便 `openclaw status --deep` 报告慢速容器检查,而不是在无界检查后挂起。(#85476)感谢 @giodl73-repo。 - 提供者/Anthropic:将 1M 上下文处理迁移到支持 GA 的 Claude 4.x 模型,将符合条件的模型大小调整为 1M,无需已退休的 `context-1m-2025-08-07` beta,忽略旧配置中该退休 beta,并保留需要 OAuth 的 Anthropic beta 标头。(#45613)感谢 @haoyu-haoyu。 - Cron/Telegram:通过 Telegram 插件而不是 cron 核心解析论坛主题投递目标,包括用于公告投递的 `:topic:` 和 `:topicId` 形式。感谢 @etticat。 - Twitch:防止过时的消息处理程序清理回调移除同一帐户的较新处理程序注册,保留重新连接后的入站消息投递。修复 #83888。(#85425)感谢 @alkor2000。 - 记忆/LanceDB:通过活跃的记忆提供者桥暴露公共记忆工件,以便记忆-wiki 导入持久的记忆文件、每日笔记、梦想报告和事件日志,而不依赖记忆核心内部。修复 #83604。(#85060)感谢 @brokemac79。 - Crabbox:通过内联 hydrate 工作流的 Node/pnpm 设置而不是调用仓库本地复合操作,使 AWS 水合与本地 Actions 重放兼容。 - 代理/子代理:简化本地子代理完成切换,以便子代理向请求者报告其最新的可见助手结果而不使用 `message`,同时保持父拥有的消息-工具投递策略不变。修复 #85070。(#85089)感谢 @brokemac79。 - Docker 设置:停止在设置日志和打印的后续命令中打印网关承载令牌。 - 代理:当 PI 兼容候选者不需要代理工具插件准备时,让嵌入的压缩回退重试继续进行。 - 代理/工具:在决定媒体、图像生成、视频生成、音乐生成和 PDF 工具是否可用时,尊重配置的自定义提供者 API 密钥。(#85570) - StepFun:停止宣传过时的通用 API 密钥认证选项,以便入门仅提供运行时支持的 Standard 和 Step Plan 选项。 - 诊断:将 OpenTelemetry 日志正文保留在显式内容捕获之后,并从 OpenTelemetry 和 Prometheus 标签中清理范围的代理会话密钥,同时保留有界队列通道前缀。 - Windows 安装程序:当 `pnpm install` 或 `pnpm build` 失败时,使 Git 检出安装失败,而不是将包装器写入缺失的 CLI 构建。 - 会话:在 `/new` 轮换期间暴露先前转录归档失败,以便磁盘重命名错误被记录,而不是静默隐藏搁浅的转录文件。修复 #81984。(#85586, from #82081)感谢 @0xghost42。 - TUI/代理:将内部 UI 消息-工具回复镜像到最终聊天输出,以便仅使用消息-工具的代理在 `openclaw tui` 中保持可见。修复 #85538。感谢 @danpolasek。 - 代理:将并行的 OpenAI 兼容工具调用增量保留在单独的参数缓冲区中,以便交错工具调用不再损坏流式参数。(#82263)感谢 @luna-system。 - 记忆/doctor:将缺失或不可用的 QMD 工作区目录报告为工作区故障,而不是通用二进制故障。(#63167)感谢 @sercada。 - 调试代理:记录 CONNECT 客户端套接字错误并销毁配对上流套接字,以便突然的客户端断开不再泄漏隧道资源。(#82444)感谢 @SebTardif。 - 差异:当一张卡片失败时,继续水合后续差异卡片,以便单个损坏的卡片不再使整个差异查看器空白。(#84775)感谢 @cosmopolitan033。 - Mac 应用:使用原生设置侧边栏窗口 chrome,以便侧边栏切换保持在左侧,并且内容不再在过大的标题栏填充下裁剪。 - QA-Lab/Codex:为流程场景捆绑认证/插件夹具导入,并让终端异步媒体工具结束 Codex 应用服务器轮次而不会超时。(#80397, refs #80323)感谢 @100yenadmin。 - 网关/代理:当过时的缓存代理会话条目与存储更新竞争时,保留新的会话覆盖和元数据,以便子代理模型/提供者覆盖和路由策略在并发写入中存活。(#19328)感谢 @CodeReclaimers。 - 控制 UI/聊天:保持聊天会话搜索内联于会话选择器,以便标题不再显示重复的独立搜索行。 - 控制 UI/聊天:折叠聚焦模式标题 chrome 并抑制隐藏标题滚动更新,以便聚焦模式在滚动时不再跳跃。感谢 @amknight。 - Codex 应用服务器:在服务器端压缩超时时重新启动原生应用服务器并重试一次,以便预检压缩停滞恢复而不是使每次分派失败。(#85500) - 恢复控制 UI 网关令牌配对 [AI]。(#85459)感谢 @pgondhi987。 - OpenAI 视频:为本地/自定义视频端点尊重配置的提供者请求私有网络选项,以便明确信任的模拟和自托管提供者不被阻止。感谢 @shakkernerd。 - OpenAI 视频:将上传的视频编辑请求发送到文档化的 `/videos/edits` 端点,并附带 `video` 文件,而不是将 MP4 引用发布到 `/videos`。感谢 @shakkernerd。 - 代理/通道:通过网关代理完成切换保留消息-工具投递证据,以便成功的生成媒体发送不会后跟虚假失败消息。感谢 @shakkernerd。 - CLI/更新:在后核心收敛期间修复托管 npm 插件 `openclaw` 对等链接,并在重新启动前拒绝过时或错误目标的对等链接。(#83794)感谢 @fuller-stack-dev。 - CLI/代理:当通道配置了多个帐户时,将新省略的帐户绑定默认设置为所有帐户,并澄清帐户范围文档。(#49769)感谢 @Gcaufy。 - Codex 应用服务器:让授权的 `/codex` 控制命令(如 `/codex detach`)逃脱插件拥有的对话绑定,同时将未知或未授权的斜杠文本路由到绑定的插件。修复 #85157。(#85188)感谢 @TurboTheTurtle。 - 自动回复/模型:通过共享有界的只读目录路径与网关模型列表,保持 `/models` 浏览回复快速。(#84735)感谢 @safrano9999。 - Codex 应用服务器:当有效 exec 主机为 `node` 时禁用原生代码模式,并保持 OpenClaw `exec`/`process` 可用,以便 `/exec host=node` 将 shell 命令路由到选定的节点而不是网关。修复 #85012。(#85090)感谢 @sahilsatralkar。 - 代理:将嵌入的自动压缩会话写锁监视器绑定到压缩超时而不是完整运行超时,以便卡住的压缩无法在完整运行窗口内持有实时会话锁。(#84949)感谢 @luoyanglang。 - 网关/代理:返回相位感知的 `agent.wait` 超时归属,并且仅在提供者启动的超时上冷却认证配置文件。Refs #65504。感谢 @100yenadmin。 - 网关:延迟提供者认证状态预热直到启动就绪之后,以便早期网关工具/会话请求不被提供者认证发现阻塞。(#85272)感谢 @dutifulbob。 - 网关/模型:在认证配置文件失败后合并提供者认证状态重新预热,并记录事件循环延迟以进行预热/重新预热工作,以便提供者认证爆发不再将完整认证扫描堆叠在通道回复之后。 - 网关/模型:停止已取消的提供者认证状态预热继续完整提供者扫描,以便重载和认证失败爆发不再使启动保持忙碌。 - 代理/Codex:将第一个计划更新显示为临时聊天状态通知,而不将其计为最终助手内容。 - CLI/更新:遍历 macOS 进程祖先并尊重继承的网关运行时 PID,以便包更新停止托管网关服务之前,嵌套的内联更新子项可以拒绝而不是杀死拥有它们的 LaunchAgent 监督网关。修复 #85120。 - 网关/LaunchAgent:等待 launchd 重载 bootout 完成,并在 bootstrap 竞争时回退到 kickstart,以便重载切换不会使服务注销。修复 #84630。(#84641)感谢 @NianJiuZst。 - 网关/LaunchAgent:当服务已加载时,将并发的 launchd bootstrap 视为成功的重新启动,避免虚假的 macOS Gateway 重启失败。修复 #84721。(#84722)感谢 @googlerest。 - 网关/服务:将活跃的 `openclaw` 命令 bin 目录包含在托管服务 PATH 生成和 doctor 审计期望中,适用于 npm 全局 macOS 安装。修复 #84201。(#84475)感谢 @jbetala7。 - 控制 UI/聊天:为已知的非推理模型禁用思考选择器,而不是显示重复的 Off 选项。修复 #84069。感谢 @DrippingMellow。 - 记忆:在解析之前扩展配置的额外记忆路径中的 `~`,以便用户主目录相对的文件夹不被视为工作区相对。修复 #58026。感谢 @stadman。 - 技能:在检查技能要求时将 `openclaw.os: macos` 视为 Darwin,以便仅 macOS 技能不再在 macOS 主机上报告为缺失。修复 #61338。感谢 @Jessecq1995。 - 控制 UI/日志:从显示的网关日志消息中去除 ANSI 转义序列,以便颜色代码不再显示为原始文本。修复 #64399。感谢 @guguangxin-eng。 - Docker:使用 `node` 所有权预先创建工作区和认证配置文件配置挂载点,以便首次运行的命名卷不会以 root 所有权启动。修复 #85076。感谢 @Noerr。 - Telegram:通过出站 Markdown 分块传递配置的 Markdown 表格模式,以便分块发送一致地渲染表格。修复 #85085。感谢 @ShuaiHui。 - CLI/更新:在包切换期间保留托管网关服务环境,以便 macOS LaunchAgent 修复/重启读取更新前的服务状态而不是调用者 shell 状态。(#83026) - 代理/提供者:在自定义提供者认证钩子和传输选择中尊重每个模型的 `api` 和 `baseUrl` 覆盖。修复 #80487。(#80488)感谢 @huveewomg。 - 网关/重启:在原地升级信号处理之前预加载生命周期运行时,以便包替换不会死锁重启导入。(#84890)感谢 @myps6415。 - CLI/更新:从稳定的现有目录启动托管网关更新切换辅助函数,并在 macOS LaunchAgent 切换期间容忍已删除的 cwd/包根目录。修复 #83808。(#83875)感谢 @jason-allen-oneal。 - 技能:跨代理工作区监视每个共享技能目录一次,而不是每个代理一次,防止文件描述符耗尽(`EMFILE`),该问题曾导致 bundle-mcp 进程被处理并在多代理网关上使会话停滞。修复 #84968。(#85130)感谢 @openperf。 - 发布/安全:将生成的 npm shrinkwrap 包版本保持在 pnpm 锁定图内,以便发布的包锁无法绕过 pnpm 依赖项年龄和覆盖策略。 - Cron:对常见网络错误代码(如 `EAI_AGAIN`、`EHOSTUNREACH` 和 `ENETUNREACH`)尊重 `cron.retry.retryOn: ["network"]`。 - 网关聊天:在代理启动后广播返回的代理运行错误负载,以便 ACP/WebChat 客户端接收终端空闲超时错误。修复 #84945。 - 网关聊天显示:在清理后的聊天历史中保留 OpenAI 兼容的 `prompt_tokens`、`completion_tokens` 和 `total_tokens` 使用字段,以便 llama.cpp 会话保持上下文计数。修复 #77992。感谢 @MarTT79。 - 仪表板/CLI:即使存在 SSH 环境变量,也允许通过 `open` 在 macOS 上启动浏览器,同时保留 Linux SSH 无显示保护。修复 #67088。感谢 @theglove44。 - Codex 应用服务器:将原生 Web 搜索观察结果排除在镜像聊天转录之外,同时保留工具进度遥测。修复 #85109。感谢 @ugitmebaby。 - OpenCode Go:在提供者请求之前剥离不支持的 Kimi 推理重放字段,以便重复的 `kimi-k2.6` 轮次不会失败模式验证。修复 #83812。感谢 @Sleeck。 - 浏览器/CDP:当 Chrome DevTools 端点接受连接但返回空 HTTP 回复时,添加 WSL2 端口代理自循环提示。修复 #59209。感谢 @Owlock。 - 代理/OpenAI:在边界感知的传输失败时保留结构化的提供者错误代码、类型和已编辑的正文元数据。 - Doctor/Codex:将原生 Codex 资产警告指向规范的 `openclaw migrate plan codex` 预览命令。修复 #84948。感谢 @markoa。 - CLI/模型:使 `capability model auth logout --agent` 从选定的非默认代理存储中移除认证配置文件。修复 #85092。感谢 @islandpreneur007。 - 网关/模型:在模型列表认证检查期间复用准备的提供者认证元数据,以便重复查找避免广泛的插件发现,同时保留合成的本地认证。 - CLI/状态:当 `openclaw status --deep` 已经可以到达运行的网关 RPC 服务时,抑制 systemd 用户服务设置提示。修复 #85094。感谢 @islandpreneur007。 - CLI/设备:当同设备修复请求替换正在被批准的请求 ID 时,恢复本地批准。 - CLI/代理:在回退到嵌入的 `openclaw agent` 执行之前,重试瞬时的正常关闭网关握手。 - CLI/更新:将托管网关服务停止/重启状态行排除在 `openclaw update --json` 标准输出之外,以便包更新自动化可以解析 JSON 负载。 - 插件:为原生外部插件运行时解析 OpenClaw 插件 SDK 子路径,而不变异包安装或拓宽进程范围模块解析。 - 代理/OpenAI:保留 Responses 和 Chat Completions 的 `reasoning_tokens` 使用元数据,而不将其重复计入聚合输出令牌。(#85319) - 控制 UI/聊天:将粘贴的 `data:image/...;base64,...` 剪贴板文本转换为图像附件,而不是将负载转储到编辑器。修复 #62604。感谢 @cpwilhelmi。 - 提供者/Gemini:从 Web 搜索时间范围过滤器中去除小数秒,以便 Gemini 接受新鲜度受限的搜索请求。(#85071)感谢 @Noerr。 - OpenAI Codex:保留对稀疏 `openai-codex/gpt-5.5` 目录行的图像输入支持。(#85095)感谢 @sercada。 - CLI/模型:为 OpenAI Codex 认证添加管道或粘贴的 API 密钥路径,并在 API 密钥粘贴到令牌模式认证时发出警告。(#85533)感谢 @joshavant。 - Telegram:将缺少工具隔离入口失败的死信处理,以便中毒的假脱机更新不再阻塞同一通道的后续消息。修复 #85470。(#85605)感谢 @joshavant。 - 插件/发现:在推导插件 id 提示时去除 `-plugin` 包后缀,以便包名称与清单 id 对齐。(#85170)感谢 @JulyanXu。 - Tlon:停止在插件清单中宣传不存在的代理工具契约。 - Telegram:通过 Markdown 渲染保留围栏代码块语言,以便 Telegram 接收 `language-*` 代码类。(#85209)感谢 @leno23。 - Windows 安装程序:从 Windows 本地目录运行 npm 和 Corepack 命令 shim,以便从 WSL2 UNC 路径启动的安装不会在 OpenClaw 安装之前失败。 - Windows 更新:当依赖项安装、构建、UI 构建或 doctor 修复失败时,将 git 支持的更新回滚到之前的检出。 - Windows 安装程序:将用户本地便携式 Git 持久化到 PATH,并为 git 支持的安装和更新激活仓库固定的 pnpm 版本。 - Windows 安装程序:当原生 Windows 没有 Node 且没有 winget、Chocolatey 或 Scoop 时,引导用户本地便携式 Node.js,以便首次运行安装可以在裸主机上继续。 - Windows 安装程序:使用原生 `tar` 提取下载的便携式 Node.js 目录,然后再回退到 .NET zip 提取,避免 PowerShell 5.1 存档和路径长度失败。 - fix(integrations):强制执行通道读取目标允许列表 [AI]。(#84982)感谢 @pgondhi987。 - 代理/心跳:将单一所有者 `session.dmScope=main` 的直接消息 exec 和 cron 事件唤醒路由回代理主会话,以便异步完成不再将上下文遗留在孤立的直接 DM 队列中。修复 #71581。(#83743)感谢 @Kaspre。 - 代理/代码模式:通过 `command` 钩子别名(带有 `toolKind`/`toolInputKind` 区分器)暴露外部代码模式 `exec` 源,以便 exec 形状的策略可以区分代码模式单元格。(#83483)感谢 @Kaspre。 - 代理/代码模式:为已知的工作者故障返回结构化的超时和运行时不可用错误代码。修复 #83389。(#83444)感谢 @Kaspre。 - QA-Lab:当场景需要启动配置补丁时隔离多场景套件工作者,防止消息路由配置泄漏到不相关的场景。 - QA-Lab:使提交心跳目标无场景立即请求心跳,而不是等待下一个预定心跳。 - Codex/插件 SDK:通过通用工具任务运行时提供 Codex 原生子代理完成,以便工具支持的插件可以镜像持久任务生命周期和完成投递,而无需 Codex 特定 SDK 导入。(#83445)感谢 @bryanpearson。 - 网关 CLI:在挑战后立即暴露本地连接组装失败,而不是等待包装器超时。修复 #68944。(#85253)感谢 @samzong。 - 消息:在到达 WebChat 或外部通道之前,从出站回复中剥离不支持的 Web 搜索引用控制标记。修复 #85193。(#85204)感谢 @neeravmakwana。 - 代理/exec:将被拒绝的 exec 批准视为终端,而不是将其反馈到代理后续工作中,并在中止处理中识别中文停止短语。修复 #69386。(#85194)感谢 @samzong。 - CLI/代理:在 SIGINT/SIGTERM 上中止接受的网关支持的 `openclaw agent` 运行,以便 cron 和监督员超时不会使远程代理工作保持活动。修复 #71710。(#84381)感谢 @Kaspre。 - Codex 应用服务器:使用结构化失败元数据重试一次安全的 stdio 客户端关闭轮次,同时暴露空闲 `turn/completed` 超时而不是盲目重放活跃的共享服务器轮次。感谢 @VACInc。 - Codex 应用服务器:拒绝嵌入 Node 或包管理器参数的命令覆盖,并将用户指向 `appServer.args`,以便 Windows 启动避免 shell 解析失败。(#84417)感谢 @TurboTheTurtle。 - 代理/Copilot:在发送前丢弃不安全的 GitHub Copilot Responses 推理重放项,以便 Telegram 直接会话不再因过长的重放 ID 而失败。修复 #85197。(#85198)感谢 @galiniliev。 - UI:为顶栏颜色模式按钮添加可访问的工具提示,以便 System、Light 和 Dark 选项在悬停和聚焦时带有标签。(#85227)感谢 @amknight。 - fix:限制 Windows 任务脚本名称 [AI]。(#85064)感谢 @pgondhi987。 - 控制 UI:保持聊天会话选择器不隐藏较旧的或跨代理配置的对话,同时保留有界的已配置代理刷新。(#85211)感谢 @amknight。 - 代理/Anthropic:在流式 Anthropic 工具使用 JSON 中保留不安全的整数工具调用输入值,防止 Discord 风格的 ID 在分派前被四舍五入。修复 #47229。(#83063)感谢 @leno23。 - 代理/Codex:在提供者提交之前在 LLM 边界估算工具密集型提示压力,以便持久会话在溢出上下文窗口之前进行压缩。(#85541)感谢 @fuller-stack-dev 和 @joshavant。 - 代理/钩子:在进程清理之前等待本地一次性 CLI 和 Codex `agent_end` 插件钩子,以便终端可观测性可靠刷新。(#85007) - 提供者/Google:当过时的目录元数据声明 `reasoning:false` 时,保留 Gemini 3 cron 的 `thinkingDefault: "low"`,以便计划运行保持提供者支持的思考而不是降级为关闭。(#85185)感谢 @neeravmakwana。 - CLI/代理:允许 `openclaw agent --session-key` 定位显式会话密钥,包括代理作用域的旧版密钥。(#85121)感谢 @Kaspre。 - 自动回复/ACP:在开始工具工作之前等待同通道块回复投递,同时仍尊重 ACP 分派中止,以便停止的轮次不会等待慢速通道发送。(#83722)感谢 @IWhatsskill。 - Codex/ACP:将仅报告进度、省略最终可交付成果或请求者投递失败的必需子运行完成标记为阻塞,同时保留真实的最终报告。(#85110)感谢 @IWhatsskill。 - 通道:在入站去抖路径中将诸如 `stop`、`abort` 和 `wait` 的裸中止消息视为立即控制命令,以便停止请求不会因待处理消息合并而延迟。(#83348)感谢 @IWhatsskill。 - 通道/消息工具:在代理内通道选择期间解析配置的外部通道插件,以便 `openclaw agent --local` 消息工具发送不再将可用通道报告为不可用。(#85022)感谢 @Kaspre。 - 代理/心跳:为计划心跳运行尊重群组/通道 `message_tool` 可见回复策略和模型特定的 Codex 运行时配置,以便失败的内部工具输出保持私有。修复 #85310。(#85357)感谢 @neeravmakwana。 - 网关/ACP:当通过 `sessions_spawn` 生成的子 ACP 会话的父会话被重置或删除时,关闭这些子会话,而不是留下孤立的 `claude-agent-acp` 进程,这些进程会累积并耗尽内存。修复 #68916。(#85190)感谢 @openperf。 - Codex 应用服务器:当 OpenClaw exec 解析到节点主机时阻止原生执行路径,同时保留第一方 CLI 节点绑定路径。修复 #85012。(#85534)感谢 @joshavant。 - 诊断:限制清理超时详细日志,当异步诊断突发超过队列上限时发出丢弃摘要,并通过诊断遥测暴露异步队列丢弃。 - 代理/子代理:将阻塞的子运行完成暴露为错误,而不是成功的子代理完成。(#80886)感谢 @TurboTheTurtle。 - 上下文引擎:当选定的代理运行时无法满足声明的上下文引擎主机要求时,以描述性错误关闭。 - 代理/Pi:将接受的嵌入 `sessions_spawn` 子会话切换视为终端进度,以便父轮次不再报告虚假的不可交付故障。(#85054)感谢 @samzong。 - CLI/模型:从运行时配置解析 `openclaw models set` 别名,同时将作者别名置于仅运行时默认值之前。(#83262)感谢 @IWhatsskill。 - Doctor:将个人 Codex CLI 资产通知显示为信息而非警告。修复 #84859。 - WhatsApp:将 Baileys 更新到 `7.0.0-rc13` 并删除过时的记录器类型补丁。 - CLI/更新:在暂存的 npm 安装之前预打包 GitHub/git 包更新目标,恢复用于一次性包更新的 `openclaw update --tag main`。(#81296)感谢 @fuller-stack-dev。 - 网关:将成功的同源消息工具发送镜像到会话转录中,以便交付的回复保留在后续历史/上下文中。(#84837)感谢 @iFiras-Max1。 - 媒体生成:当生成的媒体通过活跃会话回复完成时,防止图像、音乐和视频完成投递重复或丢失任务所有权。(#84006)感谢 @fuller-stack-dev。 - 基础设施/json:在加载 JSON 状态时重试瞬时的“读取期间文件已更改”竞争,以便配置和状态读取恢复而不是导致轮次失败。(#84285) - 插件/提供者:在设置模式发现期间对工作区提供者插件关闭,除非显式信任,防止未受信任的工作区插件代码在提供者设置期间运行。(#81069)感谢 @mmaps。 - 提供者/Ollama:将配置的 Ollama Cloud `OLLAMA_API_KEY` 标记解析为真正的发现密钥,以便云端提供者条目保持经认证的模型目录访问。(#85037) - Discord:通过运行时记录器转发结构化错误和原因元数据,使持久组件注册表回退警告可操作。修复 #84185。(#84190)感谢 @100menotu001。 - 网关/会话:在同一提供者内切换模型时,保留兼容的会话认证配置文件覆盖,包括提供者认证别名。修复 #81837。(#81886)感谢 @TurboTheTurtle。 - 网关/状态:在 `openclaw status --all` 中暴露入站投递遥测计数器和传输活性警告。修复 #49577。(#72724) - Docker:修剪包排除的插件源工作区和依赖闭包,以便运行时镜像不保留未选择插件的包。 - 提供者/Ollama:将 Docker/OrbStack 主机别名视为本地 Ollama 端点,以便当 OpenClaw 在 VM/容器中运行且 Ollama 在主机上运行时,`ollama-local` 标记认证正常工作。修复 #84875。 - QA-Lab:默认将显式可搜索/延迟的 OpenClaw 动态工具行保持为仅报告,以便工具覆盖门不会将模拟发现差距视为硬产品失败。(#80319)感谢 @100yenadmin。 - 代理/配置:防止非 Google 提供者模型引用被 Google Gemini 预览 ID 规范化重写。(#84762)感谢 @zhangguiping-xydt。 - 安装程序:在启动入门之前要求真实的控制终端,以便无头 `curl | bash` 安装在安装 CLI 后干净完成。 - 代理/Codex:当提示超时与 Codex 应用服务器完成竞争时,提升完成的最终助手响应,而不是返回空超时信封。Refs #84516。 - Codex 应用服务器:防止中断的轮次状态被单独视为 OpenClaw 中止,以便仅工具轮次仍符合无可见答案恢复条件。修复 #84492。 - 代理:当运行时模型元数据不可用时,将心跳模型泄漏上下文提示限制在存储的会话窗口内,以便溢出恢复建议不会建议比活动会话实际具有的更大的窗口。 - 控制 UI/Web 推送:使用 `https://openclaw.ai` 作为生成的默认 VAPID 主题,而不是旧的本地主机邮箱,以便当 `OPENCLAW_VAPID_SUBJECT` 未设置时,iOS PWA 推送设置使用 Apple 可接受的主题。修复 #83134。(#83317)感谢 @IWhatsskill。 - 控制 UI:区分继承的思考关闭设置和显式的 Off 选择,以便思考选择器不再显示两个相同的 Off 行。(#85223)感谢 @amknight。 - 代理/Pi:在打包的 npm 入门代理轮次之后,防止嵌入的会话转录写入触发虚假的接管检测。 - Codex/TUI:暴露 Codex 本地的轮次后压缩失败,而不是继续未压缩状态,并在本地空闲/下一轮处理之前保持成功的本地压缩序列化。修复 #84305。(#85160)感谢 @joshavant。 - 记忆/搜索:当 `dreaming.enabled=false` 时,阻止回忆追踪写入梦想副作用工件,同时保留正常搜索结果。修复 #84436。(#84444)感谢 @NianJiuZst。 - 差异:从封闭的图标名称映射渲染查看器工具栏图标,而不是 HTML 字符串,移除工具栏图标 XSS 接收器。(#83955)感谢 @tanshanshan。 - QA:即使继承的 shell 环境禁用了捆绑插件,也保持 `pnpm qa:e2e` 自检运行在私有 QA 运行时信封内。 - fix(config):验证浏览器沙箱绑定源 [AI]。(#84799)感谢 @pgondhi987。 - doctor:约束旧版插件清理路径 [AI]。(#84801)感谢 @pgondhi987。 - 更新/doctor:修剪指向旧编译捆绑输出的过时本地捆绑插件安装记录,以便升级后当前捆绑插件模式胜出。(#84863)感谢 @fuller-stack-dev。 - 提供者/Ollama:在助手重放期间保留原生 Ollama 工具调用 ID,以便 Gemini over Ollama Cloud 可以保持其隐藏的函数调用想法签名句柄。 - Discord:在绑定 ACP 轮次继续路由到目标会话的同时,将会话恢复和 `/stop` 中止所有权保留在源分派通道上,以便停滞的预运行工作和延迟回复在停止后被清除而不是泄漏。修复 #84477。(#85100)感谢 @joshavant。 - Codex 应用服务器:将观察执行后缺失的轮次完成标记为不可重放并释放会话,以便后续轮次可以运行。修复 #84076。(#85107)感谢 @joshavant。 - Codex 应用服务器:为可见的 `message` 动态工具发送提供更长的超时预算,以便慢速通道投递可以返回自己的结果或错误,而不是达到 30 秒的 Codex 包装器。(#85216)感谢 @amknight。 - Codex 应用服务器:添加一个专用的工具后原始助手完成空闲超时配置,以便受信任的重型轮次可以在工具切换后等待更长时间,而不会削弱最终助手释放。 - Matrix:在过时的 `m.direct` 或严格的双成员 DM 回退可能绕过提及门控之前,将显式配置的双人房间保持在房间路由上。修复 #85017。(#85137)感谢 @joshavant。 - 代理/子代理:要求显式子代理允许列表目标为已配置的代理,以便已删除的过时代理 id 从 `agents_list` 中省略并被 `sessions_spawn` 拒绝。修复 #84811。(#85154)感谢 @joshavant。 - PDF 工具:在 120 秒后超时空闲的远程 PDF 正文读取,以便停滞的远程文档返回错误而不是卡住会话。修复 #68649。(#84768)感谢 @luoyanglang。 - 诊断/OpenTelemetry 插件:抑制已处理的 OTLP 导出器 promise 拒绝,以便收集器关闭不再导致网关崩溃。(#81085)感谢 @luoyanglang。 - 代理/exec:从被拒绝的 exec 失败日志中省略原始命令文本和环境值,同时保留安全的关联元数据。修复 #85049。(#85140)感谢 @joshavant。 - 媒体/音频:跳过空的结构化 sherpa-onnx 转录,而不是将原始 JSON 负载视为口述文本。(#84667)感谢 @TurboTheTurtle。 - 代理/exec:为子进程保留继承的 XDG 基础目录环境值,同时仍拒绝代理提供的 XDG 覆盖。修复 #84854。(#85139)感谢 @joshavant。 - Node/Linux:通过将节点服务令牌值写入节点特定的环境文件,将 `OPENCLAWS_GATEWAY_TOKEN` 排除在生成的 systemd 单元文件之外。(#84408) - 记忆核心/梦想:按工作区和阶段复用稳定的叙述性子代理会话密钥,同时保持每次运行的幂等性和有界清理,以便过时的 `dreaming-narrative-*` 会话不会累积。修复 #68252, #69187, 和 #70402。(#70464)感谢 @chiyouYCH。 - 轨迹/支持:在构建支持元数据时容忍部分技能快照条目,以便被拒绝的技能路径扫描不会中止轨迹捕获。(#71185)感谢 @lukeboyett。 - TUI:将重复的空闲 Esc 中止通知合并为单个 `no active run xN` 系统行,而不是追加重复行。 - Telegram:在默认隔离轮询路径中尊重 `channels.telegram.pollingStallThresholdMs`,重新启动静默工作者而不是使人站更新停滞。修复 #83950。(#84861)感谢 @joshavant。 - Telegram:通过 Telegram 聊天/消息身份去重重放的消息分派,以便隔离入口重放不会触发重复模型分派。修复 #84886。(#85208)感谢 @joshavant。 - Slack:在回复投递和分派计数之前抑制推理负载,以便 Slack 监视器、斜杠命令、回退和直接回复路径不会泄漏模型推理。修复 #84319。(#84322)感谢 @ffluk3 和 @joshavant。 - Slack:当 Slack 原生批准启用时,交付原生插件批准提示和更新,同时保持插件批准授权与 exec 审批者分离。 - Slack:当实时 Slack 轮次源是 `D...` 对话时,将原生插件批准提示保留在发起应用对话线程中。 - 代理/Pi:禁用嵌入的 pi-coding-agent 运行时自动重试,以便 OpenClaw 自身的重试和故障转移循环不会通过嵌套的 SDK 重试重放失败的工具调用。修复 #73781。(#74434)感谢 @yelog。 - CLI/性能:将 `setup --help`、`onboard --help` 和 `configure --help` 排除在完整向导运行时之外,同时保留现有的帮助输出。(#84488)感谢 @frankekn。 - CLI/性能:将 `agents --help` 排除在代理操作/运行时导入之外,以便帮助、完成和命令发现路径避免加载完整的代理运行时。(#84483)感谢 @frankekn。 - CLI/性能:将 `secrets --help` 和 `nodes --help` 保留在预计算帮助路径上,以便父帮助避免加载操作密集型命令运行时模块。(#84818)感谢 @frankekn。 - CLI/性能:从启动元数据提供 `doctor`、`gateway`、`models` 和 `plugins` 父帮助,以便常见子命令帮助避免完整的 CLI 程序构建。(#84786)感谢 @frankekn。 - Codex/无损:当 Telegram DM 使用每对等运行时策略键时,将上下文引擎历史保留在规范运行会话上。修复 #84936。(#84954)感谢 @neeravmakwana。 - Codex:保持心跳响应工具模式持久化,而不暴露被轮次策略禁用的动态工具,以便心跳唤醒可以重用线程,同时保持范围的工具允许列表得到执行。(#84681)感谢 @jalehman。 - 认证/OAuth:当存储的 OAuth 凭证没有刷新令牌时跳过刷新适配器,以便代理轮次在密钥缺失时快速失败,而不是等待 120 秒刷新超时。感谢 @romneyda。 - 认证/Codex:在嵌入式运行器的密钥运行时认证加载器中加载旧的 OAuth sidecar 凭据,以便 Telegram 回复、cron 触发的轮次和其他隔离的子代理通道可以访问现有的 #83312 刷新和重写迁移,而不是失败并显示“未找到 provider "openai-codex" 的 API 密钥”,直到用户运行 `openclaw doctor`。感谢 @Totalsolutionsync 和 @romneyda。 - Codex/故障转移:将 `deactivated_workspace` 分类为永久认证失败,以便配置的回退模型可以在 Codex 工作区被停用时继续前进。(#55893)感谢 @litang9。 - Exec:在 POSIX 网关运行中,将配置的 `tools.exec.pathPrepend` 条目保持在用户 shell 启动 PATH 更改之前。(#81403)感谢 @medns。 - 网关/会话:允许共享秘密的 Bearer 调用者读取和流式会话历史,而无需显式的作用域标头。(#81815)感谢 @medns。 - 代理/嵌入式运行器:将 HTML 认证提供者响应分类为 `auth_html` 并返回重新认证提示,而不是 `upstream_html` 返回的 CDN 阻止副本。Cloudflare Access 登录页面、nginx 基本认证挑战和网关登录墙都会产生 HTML 认证正文,之前被误诊为瞬态 CDN 阻止。(#79900)感谢 @martingarramon。 - TUI/流式监视器:一旦同一运行的聊天事件到达,解除“此响应耗时超出预期”通知,以便当运行仅短暂静默时,该消息不再位于恢复的响应旁边。Refs #67052, #69081 (closed), prior attempt #69026。感谢 @jpruit20 和 @romneyda。 - 代理/Pi:在嵌入式提示为模型 I/O 释放期间容忍 OpenClaw 拥有的转录写入,使长时间运行的飞书、Slack、Telegram 和 cron 轮次不会因虚假的会话接管错误而失败。修复 #84059。(#84250)感谢 @tianxiaochannel-oss88。 ## 发布验证 - npm 包:https://www.npmjs.com/package/openclaw/v/2026.5.22 - 注册表 tarball:https://registry.npmjs.org/openclaw/-/openclaw-2026.5.22.tgz - 完整性:sha512-m+zgBELGbCHjWB1IWF5WSWNPr480cMKOMff2OF72c8A0AMD4hC/9+qwYtzjYmGkETcffnB711JymlVsQnh2Tow== - npm 发布:https://github.com/openclaw/openclaw/actions/runs/26350601931 - npm 预检:https://github.com/openclaw/openclaw/actions/runs/26348274555 - 完整发布 CI 报告:https://github.com/openclaw/openclaw/actions/runs/26348274024 - 发布检查报告:https://github.com/openclaw/openclaw/actions/runs/26348357741 - 插件 npm 恢复发布:https://github.com/openclaw/openclaw/actions/runs/26350155030 - 插件 ClawHub 发布:https://github.com/openclaw/openclaw/actions/runs/26349516036 - macOS 预检/签名/公证:https://github.com/openclaw/releases-private/actions/runs/26348276222 - macOS 验证:https://github.com/openclaw/releases-private/actions/runs/26348275696 - macOS 发布/appcast:https://github.com/openclaw/releases-private/actions/runs/26348989219 - appcast:https://raw.githubusercontent.com/openclaw/openclaw/main/appcast.xml - macOS zip:https://github.com/openclaw/openclaw/releases/download/v2026.5.22/OpenClaw-2026.5.22.zip - macOS dmg:https://github.com/openclaw/openclaw/releases/download/v2026.5.22/OpenClaw-2026.5.22.dmg - macOS dSYM:https://github.com/openclaw/openclaw/releases/download/v2026.5.22/OpenClaw-2026.5.22.dSYM.zip