← 返回更新日志

OpenClaw v2026.5.24-beta.2 预发布

2026-05-24 · GitHub 原文
### 变更 - iMessage:支持拇指表情反应——`👍`(Like tapback)将审批解析为 `allow-once`,`👎` 解析为 `deny`,显式审批人白名单从 `channels.imessage.allowFrom` 读取;`allow-always` 仍保留在手动 `/approve <id> allow-always` 文本回退中。与 #85477 中的 WhatsApp 行为保持一致。 - Gateway/性能:复用进程稳定的频道目录读取,避免重复的捆绑频道边界检查,并轮换网关监控 CPU 性能分析,使基准测试运行不会累积无界的工件。 - Gateway/性能:在进程本地热路径中缓存稳定的安装记录、频道目录、捆绑频道和 Telegram 会话存储元数据,以减少重复的 JSON 和清单读取。 - Gateway/性能:在启动、配置、模型、频道、设置和密钥元数据读取器中复用不可变的插件元数据快照,使热路径避免重复的插件文件统计和清单注册重载。 - Talk/实时:让 WebUI 和 Discord 语音呼叫者在咨询仍在运行时查询活跃的 OpenClaw 运行状态、取消、引导或排队后续工作。(#84231)感谢 @Solvely-Colin。 - Discord/语音:添加带有代理名称默认值的实时唤醒名称门控,并为更长的 `USER.md`/`SOUL.md` 文件提高配置文件引导上下文预算。 - Gateway/性能:延迟加载启动空闲的插件工作、核心网关方法处理程序以及嵌入式 ACPX 运行时,使网关健康和就绪信号不再等待未使用的处理程序树或 ACPX 探测。 - Gateway/性能:缓存插件 SDK 公共表面别名映射,并跳过无关的 macOS Linuxbrew PATH 探测,使网关启动避免重复的文件系统遍历和缓慢的缺失目录统计。 - 图像工具:添加自适应模型感知图像压缩,带有 `agents.defaults.imageQuality` 偏好,用于选择令牌高效、平衡或高细节媒体处理。 - 会议笔记:添加一个纯源的外部会议笔记插件和 SDK 源提供者合约,位于核心 npm 包之外,具有自动启动捕获配置、手动转录导入、只读 `openclaw meeting-notes` CLI 访问,以及 Discord 语音作为第一个实时源。 - 会议笔记/Discord:在会议笔记自动捕获之前释放频道账户启动,在网关启动期间等待 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 入门和 Gateway 启动路径、WhatsApp QR/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。 - CLI/模型:让 `openclaw models auth login` 在请求的 `--profile-id` 下存储单个返回的提供者认证配置文件,并记录命名的 Codex OAuth 配置文件设置。(#49315)感谢 @DanielLSM。 - Crabbox/Testbox:从临时完整检出运行干净的稀疏检出 Testbox 同步,并通过 Corepack pnpm 路由远程变更门控。 - 文档:澄清仅 IPv4 的 Gateway BYOH 绑定、受信代理范围清除、Android 配对审批、macOS 辅助功能授权、Zalo 配置文件环境变量、密码存储 SecretRef 设置以及中文记忆导航。感谢 @itskai-dev, @gwh7078, @longstoryscott, @MoeJaberr, 和 @yuaiccc。 - 文档:将 GLM 整合到 Z.AI 下,添加 Upstash Box 安装指南和 Gateway 暴露运行手册,澄清 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,仅将 Antigravity CLI 作为配置提供者 API 之后的较低优先级图像/视频回退。 - 诊断:为 Gateway 密钥准备发出清理过的 `secrets.prepare` 时间线跨度,使操作员能够区分密钥启动延迟而不暴露提供者名称、密钥 ID 或密钥值。(#83019)感谢 @samzong。 - 诊断:为核心、插件、MCP 和频道工具执行导出有界的技能使用度量和跨度以及工具源/所有者标签,而不暴露原始路径或会话标识符。(#80370)感谢 @gauravprasadgp。 - 代理/子代理:将默认子代理引导上下文限制为 `AGENTS.md` 和 `TOOLS.md`,默认情况下将角色、身份、用户、记忆、心跳和设置文件排除在委派工作线程之外。(#85283)感谢 @100yenadmin。 - 维护者技能:在显示 bug-sweep PR URL 之前需要干净的自动审查,并将仅变更日志的冲突视为常规繁忙主线变更。 - 维护者技能:将插件 SDK/API 边界工作排除在 `openclaw-landable-bug-sweep` 之外,使 bugbash 清扫专注于小的边界修复。 - QA-Lab/诊断:扩展 OpenTelemetry 烟雾测试工具以证明跟踪、度量和日志导出,并添加一流的 Prometheus 和可观测性烟雾别名。 - Plugin SDK:添加通用频道消息轮询发送器,使频道插件能够公开投票投递,而无需依赖特定于频道的 SDK 门面。 - Plugin SDK/cron 投递:通过现代目标解析器和出站会话路由 API 路由 cron 投递,弃用解析器支持的目标帮助器和 `plugin-sdk/messaging-targets`,并将捆绑的调用者移至 `plugin-sdk/channel-targets`。 - 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。 - Plugin SDK:添加行级会话工作流帮助器,弃用 `loadSessionStore`,使插件无需依赖遗留的整个存储形状即可读取和修补会话。(#84693)感谢 @efpiva。 - Gateway/插件:在调度期间复用兼容的 Gateway 启动插件注册表,使安全插件调度避免冗余的注册表加载。(#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, 引用 #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, 引用 #80174)感谢 @100yenadmin。 - 模型/性能:在网关启动时预热提供者认证状态映射,使 `/models` 和每个模型列表调用在热路径上短路每个提供者插件/外部 CLI 发现。每次调用成本从约 20 秒降至约 5 毫秒(约 4100 倍);一次性启动预热在热重载后重置并重新预热。(#84816)感谢 @sjf。 - 发布/安全性:使用生成的 shrinkwrap 发布根 npm 包和 OpenClaw 拥有的 npm 插件,为合适的插件 tarball 支持捆绑插件运行时依赖项,并要求对 lockfile/shrinkwrap 更改进行审查,使发布的安装使用锁定的依赖图。 - 测试/性能:将 doctor 核心健康检查单元覆盖与真实的技能/工作空间发现隔离,使 `doctor-core-checks` 不再主导单元性能,同时保留一个真实的技能就绪烟雾测试。(#84493)感谢 @frankekn。 ### 修复 - Gateway/更新:在开发通道 git 更新期间避免获取无关的标签,使移动的发布标签不会阻塞基于分支的更新。(#84737)感谢 @rubencu。 - CLI/更新:在旧的更新父进程将控制权移交给新安装的后核心进程时,抑制预期的未来配置警告。 - MiniMax:将 OAuth 令牌过期时间存储为绝对的毫秒时间戳,使 OAuth 配置文件不再在每个请求上显示为已过期。(#83480)感谢 @NianJiuZst。 - 代理/Anthropic:为签名思考提供者剥离缺失或空白的思考签名,即使恢复提供了没有签名保留的窄重播策略。修复 #84430。(#84448)感谢 @NianJiuZst。 - 代理/频道:当中断的主会话在重启后无法恢复时,发送可见通知,包括 Telegram 群组目标。(#85805)感谢 @pfrederiksen。 - Discord/语音:序列化重叠的语音加入,在配置的超时时间内重试中断的启动就绪,当普通后续加入到达时将仅会议笔记的会话升级为实时,在不离开语音的情况下解除升级的会议笔记所有权,并在默认实时唤醒名称中包含 `OpenClaw`。 - Gateway/重启:尊重嵌入式运行配置的重启排空预算,并避免在强制重启超时后重复花费延迟超时。(#85708)感谢 @Kaspre。 - Gateway/启动:在隔离的启动会话中运行 `BOOT.md` 启动检查,使网关重启不会覆盖代理的主会话映射。(#85479) - 会议笔记:在生成的摘要中包含说话者标签的转录部分,使 Discord 群组语音捕获显示谁说了每个捕获的话语。 - Discord/语音:当 Discord 流关闭/播放器空闲事件未到达时恢复卡住的实时播放状态,并在后构建重写后保持生成的运行时插件别名可用。 - Discord/语音:当会议笔记附加到现有语音会话或实时咨询开始时保持实时播放运行,并将实时用户转录路由到会议笔记。 - 配置/密钥:在根之前预飞行活动运行时 SecretRef,并包含配置写入持久化,并在后写入刷新失败时回滚未更改的文件/env 状态。修复 #46531。(#84454)感谢 @samzong。 - CLI/模型:当 `models status` 重新生成 `models.json` 时,保留 SecretRef 支持的自定义提供者 `apiKey` 标记,避免将已解析的明文密钥写入磁盘。修复 #84632。(#84658)感谢 @NianJiuZst。 - WhatsApp/自动回复:通过前台回复栅栏投递延迟的媒体回复,使重叠的无回复轮次不再隐藏已经可见的回复。(#85517)感谢 @cavit99。 - 会话/安全性:将代理间通配符白名单正则表达式替换为预编译的线性匹配器,使跨代理访问检查避免易回溯的模式。(#85849)感谢 @SebTardif。 - WebChat:保持运行完成指示器在进行中,直到延迟的历史回放渲染助理回复,使“完成”不再出现在响应文本之前。(#85374)感谢 @neeravmakwana。 - 代理/工具:为超时或取消的进程树提供有界的 SIGTERM 清理窗口,然后发送 SIGKILL,同时保留树感知的取消。修复 #66399。(#85865)感谢 @IWhatsskill。 - 代理/子代理:将中断的子代理停止原因视为被终止的终端失败,使父会话接收到错误通知而不是静默成功。修复 #72293。(#85860)感谢 @IWhatsskill。 - 代理/提供者:针对最终请求负载钳制类似代理的 OpenAI Chat Completions 输出上限,使严格的本地/API 兼容服务器不再拒绝已经消耗部分上下文窗口的提示。修复 #83086。(#85889)感谢 @rendrag-git。 - 代理/压缩:跳过提供者拥有的 CLI 运行时会话的代理框架预检,使超过阈值的 Claude CLI 会话通过正常压缩继续,而不是因缺少框架而失败。修复 #84857。(#84878)感谢 @zhangguiping-xydt。 - Codex/应用服务器:通过短暂的轮次后宽限期保持成功的原生钩子中继可用,使迟到的 Codex 钩子子进程能够完成策略执行而无需清除替换中继。(#83987)感谢 @Kaspre。 - 控制 UI/配置:从源配置快照保存表单模式编辑,使运行时仅提供者默认值(如空的 `models.providers.<id>.baseUrl`)不会被写回并被拒绝。修复 #85831。感谢 @garyd9。 - 浏览器/现有会话:启动 Chrome DevTools MCP 时默认禁用使用统计,使其遥测监视器保持关闭,除非操作员明确选择加入。(#85886)感谢 @rohitjavvadi。 - Telegram:在重试发送、轮询和固定之前规范化遗留的持久群组重试目标,使群组重试继续使用真实的聊天 ID。(#85656)感谢 @luoyanglang。 - 代理/PDF:通过插件元数据路由 MiniMax PDF 回退策略,使 MiniMax 使用文本提取而不是 VLM 图像回退。(#85590, 修复 #85575)感谢 @neeravmakwana。 - CLI/插件:收紧超时、数字选项、媒体负载、权限、配置文件/TLS、插件元数据、JSON 和远程 URL 处理;防止进度/应用服务器/IRC/Synology/Twitch 等待卡住;并保持导入的聊天历史顺序稳定。 - Telegram/配置:当 `channels.telegram.defaultAccount` 指定一个已配置且排序第一的账户时,抑制缺失的 `accounts.default` 警告。修复 #83948。感谢 @crypto86m。 - Telegram:通过核心回复通道准入序列化可见的主题回复,使心跳和排队的后续轮次不能继续无主或误路由响应。(#85709)感谢 @jalehman。 - WebChat:总结内部消息工具源回复,使工具卡片不再重复可见的回复正文。(#84773)感谢 @jason-allen-oneal。 - Gateway/WebChat:当 Cursor ACP 已经持久化相同的 `acp-runtime` 回复时,隐藏重复的 `gateway-injected` 助理行。修复 #85741。感谢 @lxf-lxf。 - WebChat:将可见的附件按钮限定到其自己的编辑器文件输入,使单击上传可靠地打开文件选择器。(#83952, 修复 #47983)感谢 @jason-allen-oneal。 - Gateway:在后续非终端事件中保留延迟的生命周期错误清理,使提供者超时可以持久化失败的会话状态,而不是将会话留在卡住的运行状态。(#85256, 修复 #63819)感谢 @samzong。 - Gateway/更新:在更新重生过程中停止将继承的 macOS `XPC_SERVICE_NAME` 值视为 launchd 监督,使 GUI 生成的网关使用分离的重生而不是因缺少 LaunchAgent 而退出。修复 #85224。感谢 @richardmqq。 - 代理/子代理:在超时摘要中报告仅工具的子进程进度,而不是显示无可见输出。 - 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。 - 沙箱:保持工作空间技能挂载对远程容器-cwd 文件操作为只读,并在创建受保护覆盖层之前拒绝符号链接的技能根。(#85591)感谢 @jason-allen-oneal。 - 脚本/Windows:通过托管运行器路由剩余的 QA、发布、配置文件和实时媒体 `pnpm` 启动,使原生 Windows 避免脆弱的 `.cmd` 执行和 shell-argv 警告。 - 发布:对齐生成的配置/API 基线和会议笔记插件版本,使发布预检在原生 Windows 上保持绿色。 - 安装/Windows:通过 Node 准备帮助器运行 Git 钩子设置,使原生 Windows 安装不再打印 POSIX shell 错误。 - 检查/Windows:在原生 Windows 上对扩展 oxlint 分片进行分块和序列化,使变更门控避免 Go 支持的分析器内存峰值。 - 发布/Windows:通过显式的 `cmd.exe` 包装运行已安装的 `openclaw.cmd` 验证,使 npm prepublish/postpublish 检查避免 Node shell-argv 警告。 - 发布/Windows:通过共享的 npm 运行器运行发布检查 npm pack/install/root 探测,使原生 Windows 避免裸 `npm` 查找和 `.cmd` shell-argv 处理。 - 发布/Windows:通过显式的 `cmd.exe` 包装运行跨 OS 发布检查 `.cmd` shim,使原生 Windows 安装和网关探测避免 Node shell-argv 处理。 - 控制 UI/Windows:通过显式的 Windows 运行器运行 i18n Pi、npm 和 pnpm 帮助器命令,使原生 Windows 翻译同步避免脆弱的 `.cmd` 启动。 - 脚本/Windows:通过共享的 pnpm 运行器运行 Z.AI 回退复现,使原生 Windows 避免原始 `.cmd` 启动。 - Codex/Windows:通过共享的 pnpm 运行器运行应用服务器协议格式化,使原生 Windows 避免原始 `.cmd` 启动。 - 插件/Windows:通过共享的 npm 运行器运行插件 npm 包暂存,使原生 Windows 发布检查避免裸 `npm` 查找和 `.cmd` shell-argv 处理。 - 检查/Windows:通过托管子运行器路由完整的 `pnpm check` 阶段命令,使 Windows 在那里也避免 Node shell-argv 弃用警告。 - 代理/fs:允许仅工作空间的主机写/编辑工具通过工作空间内的符号链接目录父级写入,同时保持外部工作空间符号链接的拒绝。修复 #84696。感谢 @garbagenetwork。 - 检查/Windows:通过显式的 `cmd.exe` 包装运行托管子命令,而不是 Node shell 模式加 argv,在变更检查期间避免 Node 24 子进程弃用警告。 - Gateway:从代理提示历史中省略内部流错误占位符条目,使失败的助理轮次不会作为模型撰写的文本重播。(#85652)感谢 @anyech。 - 会话:在锁获取期间强制执行会话写锁定最大持有策略,使长时间持有的锁可以在过期锁窗口之前被回收。(#85764)感谢 @njuboy11。 - 会话/状态:当内部子代理交接运行使用回退模型时,保留用户可见的模型、回退、使用和成本归属。(#85726, 修复 #85082)感谢 @brokemac79。 - 安装/更新:在派生默认开发检出和安装程序入门路径时尊重 `OPENCLAW_HOME`,同时保持显式的 `OPENCLAW_GIT_DIR` 和 `OPENCLAW_CONFIG_PATH` 覆盖具有权威性。修复 #54014。感谢 @robertPiro。 - 模型:修剪已退役的 Groq、GitHub Copilot、OpenAI、xAI 和旧 Claude 目录条目,并运行 doctor 迁移以升级现有配置到当前提供者引用。 - 插件/Gateway:将插件网关方法处理程序中的非空返回值视为成功响应,使 `openclaw gateway call` 在完成插件工作后不再超时。修复 #59470。感谢 @HTMG23。 - Doctor/更新:通过比较规范路径来识别联结支持的源检出为 git 安装,然后显示包管理器更新指南。修复 #82215。感谢 @igormf。 - 频道:在直接聊天、群组、频道和论坛主题中尊重 `/verbose on` 用于工具/进度摘要,同时保持安静默认行为。(#85488)感谢 @kurplunkin。 - 更新:在重启脚本进程无法生成时,将分离的网关重启交接保持尽力而为。(#83892)感谢 @davinci282828。 - Telegram:通过插件状态持久化提示上下文消息缓存,并在发送和草稿流式传输后记录机器人撰写的回复,使后续轮次可以包含之前的助理回复,而无需依赖 JSON sidecar。(#85231)感谢 @keshavbotagent。 - 代理/子代理:将 Codex 角色和用户工作空间文件保持回合范围,使原生 Codex 子代理默认仅继承共享工具指南。(#85811)感谢 @lastguru-net。 - CLI/技能:当技能设置没有缺少要安装的依赖项时,显示一个全部就绪的通知及后续步骤命令。(#85032)感谢 @aniruddhaadak80。 - Microsoft Foundry:通过 Foundry Responses API 路由 DeepSeek V4 Pro 和 Flash 模型,同时保持较旧的 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。 - Gateway/配置:在启动时将相对 `OPENCLAUD_STATE_DIR` 覆盖固定到绝对路径,使后续工作目录更改无法重新定位网关状态。(#52264)感谢 @PerfectPan。 - 检查/Parallels:使变更通道脚本、shrinkwrap 生成和 Parallels 包烟雾主机命令通过原生 Windows 安全路径和 `npm`/`pnpm` shim 运行。 - 发布/包:通过 Windows 安全的 npm 命令 shim 运行 npm 发布、prepublish 和 postpublish 验证,使原生 Windows 检查可以执行 `npm.cmd` 而不是将其视为二进制文件。 - 代理/框架:通过框架选择传递 CLI 运行时别名,使提供者拥有的 CLI 别名在到达正确运行时之前不再被拒绝。(#85631)感谢 @potterdigital。 - 密钥:在交互式 `secrets configure` 确认后显示不可逆的应用警告,使已确认的迁移仍收到最终安全提示。(#85638)感谢 @alkor2000。 - 代理/CLI 输出:当助理使用事件存在时,忽略累积的 Claude `stream-json` 结果使用,防止夸大的缓存读取计数。(#85625)感谢 @zhouhe-xydt。 - CLI:通过保持其保持活动间隔引用来保持 `waitForever()` 存活,使公共帮助器不再立即以 Node 的未解决 await 代码退出。(#85694)感谢 @m1qaweb。 - 代理/引导:针对缺失文件名守卫引导名称检查,使格式错误的引导条目发出警告并截断而不是崩溃。修复 #85523。(#85615)感谢 @zhouhe-xydt。 - CLI/任务:拒绝部分数字的 `openclaw tasks audit --limit` 值,使审计限制必须是真正的正整数,而不是接受像 `5abc` 这样的字符串。(#84901)感谢 @jbetala7。 - 状态/诊断:绑定深度 Docker 审计探测,使 `openclaw status --deep` 报告缓慢的容器检查,而不是在无界检查后挂起。(#85476)感谢 @giodl73-repo。 - 提供者/Anthropic:通过将符合条件的模型大小调整为 1M 而不使用已退役的 `context-1m-2025-08-07` beta,将该 beta 忽略在较旧配置中,并保留 OAuth 所需的 Anthropic beta 头,将 1M 上下文处理迁移到支持 GA 的 Claude 4.x 模型。(#45613)感谢 @haoyu-haoyu。 - Cron/Telegram:通过 Telegram 插件而不是 cron 核心解析论坛主题投递目标,包括用于公告投递的 `:topic:` 和 `:topicId` 形式。感谢 @etticat。 - Twitch:防止过期消息处理程序清理回调移除同一账户的较新处理程序注册,在重新连接后保持入站消息投递。修复 #83888。(#85425)感谢 @alkor2000。 - 控制 UI/聊天:保持浅色模式模型、思考、配置和代理选择箭头可见,无需平铺背景图标。修复 #85713。感谢 @Linux2010。 - 内存/LanceDB:通过活跃内存提供者桥接公开公共内存工件,使内存维基导入持久化内存文件、每日笔记、梦境报告和事件日志,而无需依赖内存核心内部。修复 #83604。(#85060)感谢 @brokemac79。 - Crabbox:通过内联 hydrate 工作流的 Node/pnpm 设置而不是调用仓库本地复合操作,使 AWS hydration 与本地 Actions 回放兼容。 - 代理/子代理:简化原生子代理完成交接,使子级将其最新的可见助理结果报告给请求者而不使用 `message`,同时保持父级拥有的消息工具投递策略不变。修复 #85070。(#85089)感谢 @brokemac79。 - Docker 设置:停止在设置日志和打印的后续命令中显示网关承载令牌。 - Gateway:将频道账户启动工作延迟到 HTTP 就绪之后,并移除启动模型预热,避免启动事件循环卡顿和计时器延迟警告。 - 模型/性能:在 models.json 规划期间复用插件元数据,保持捆绑频道目录增强清单/静态,并使用静态提供者目录进行仅元数据的启动发现,使提供者模型规范化、认证发现和 Gateway 启动元数据不会重载广泛的插件运行时。 - 代理:当 PI 兼容的候选不需要代理框架插件准备时,让嵌入式压缩回退重试继续。 - 代理/工具:在决定媒体、图像生成、视频生成、音乐生成和 PDF 工具是否可用时,尊重配置的自定义提供者 API 密钥。(#85570) - StepFun:停止广告过时的通用 API 密钥认证选择,使入门仅提供运行时支持的 Standard 和 Step Plan 选择。 - 诊断:将 OpenTelemetry 日志正文保持在显式内容捕获之后,并从 OpenTelemetry 和 Prometheus 标签中擦除作用域的代理会话密钥,同时保留有界的队列通道前缀。 - Windows 安装程序:当 `pnpm install` 或 `pnpm build` 失败时,使 Git 检出安装失败,而不是将包装器写入缺失的 CLI 构建。 - 会话:在 `/new` 轮换期间显示以前的转录归档失败,使磁盘重命名错误被记录,而不是静默隐藏搁浅的转录文件。修复 #81984。(#85586, 来自 #82081)感谢 @0xghost42。 - TUI/代理:将内部 UI 消息工具回复镜像到最终聊天输出中,使仅消息工具的代理在 `openclaw tui` 中保持可见。修复 #85538。感谢 @danpolasek。 - Gateway/TUI:通过回复规范化保留源回复元数据,并通过实时聊天流发出仅消息工具的代理回复,使 `openclaw tui` 渲染 Codex 回复而无需等待历史刷新。感谢 @shakkernerd。 - Codex/TUI:在 Codex 推理完成后保持长源回复运行存活,使延迟的可见 `message` 调用仍能到达 `openclaw tui`。感谢 @shakkernerd。 - TUI:在响应监视器通知后保持安静的活跃运行繁忙,而不是重新打开提示并鼓励在后端轮次仍在运行时重复提交。感谢 @shakkernerd。 - 代理:保留最新的助理思考块,同时从较旧轮次中剥离无效的重播签名,并在无思考重播的情况下重试 Anthropic 思考失败。修复 #85557。感谢 @bryanbaer。 - 代理:将并行的 OpenAI 兼容工具调用增量保留在单独的参数缓冲区中,使交错工具调用不再损坏流式参数。(#82263)感谢 @luna-system。 - Telegram:在短暂的配对存储读取失败后避免虚假的配对提示,同时保留配置的 `allowFrom` 和每 DM 配对授权。(#85555) - 内存/doctor:将缺失或不可用的 QMD 工作空间目录报告为工作空间故障,而不是通用二进制故障。(#63167)感谢 @sercada。 - 调试代理:记录 CONNECT 客户端套接字错误并销毁配对的 upstream 套接字,使突然的客户端断开不再泄漏隧道资源。(#82444)感谢 @SebTardif。 - 差异:在某个差异卡片失败时继续水合后续差异卡片,使单个故障卡片不再使整个差异查看器空白。(#84775)感谢 @cosmopolitan033。 - Mac 应用:使用原生设置侧边栏窗口 chrome,使侧边栏切换保持在左侧,并且内容不再在过大的标题栏填充下裁剪。 - QA-Lab/Codex:为流程场景捆绑认证/插件夹具导入,并让终端异步媒体工具结束 Codex 应用服务器轮次而不会超时。(#80397, 引用 #80323)感谢 @100yenadmin。 - WhatsApp:在分发之前通过插件状态持久化入站消息投递状态,并将已读回执延迟到处理程序完成,使可重试的失败可以重新投递而无需添加插件本地磁盘缓存。感谢 @samzong。 - Gateway/代理:当过期的缓存代理会话条目与存储更新竞争时,保留新鲜的会话覆盖和元数据,使子代理模型/提供者覆盖和路由策略在并发写入中存活。(#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。 - 自动回复/模型:通过共享有界只读目录路径与 Gateway 模型列表,保持 `/models` 浏览回复快速。(#84735)感谢 @safrano9999。 - 浏览器/Doctor:在启动 Chrome 之前从 `Info.plist` 读取 macOS Chrome 应用包版本,并扩展回退版本探测超时,避免由 Gatekeeper 延迟引起的假冷缓存警告。修复 #85418。感谢 @davidcittadini。 - Codex 应用服务器:当有效的执行主机是 `node` 时禁用原生 Code Mode,并保持 OpenClaw `exec`/`process` 可用,使 `/exec host=node` 通过选定的节点而不是网关路由 shell 命令。修复 #85012。(#85090)感谢 @sahilsatralkar。 - 代理:将嵌入式自动压缩会话写锁定监视器绑定到压缩超时而不是完整运行超时,使卡住的压缩无法持有实时会话锁定整个运行窗口。(#84949)感谢 @luoyanglang。 - Gateway/代理:返回阶段感知的 `agent.wait` 超时归属,并且仅在提供者启动的超时上冷却认证配置文件。引用 #65504。感谢 @100yenadmin。 - Gateway/systemd:在瞬态用户范围内启动托管更新交接帮助器,使 systemd 监督的立即更新流程在网关单元重启后存活。修复 #84068。 - Gateway:将提供者认证状态预热延迟到启动就绪之后,使早期网关工具/会话请求不会被提供者认证发现阻塞。(#85272)感谢 @dutifulbob。 - Gateway/模型:在认证配置文件失败后合并提供者认证状态重新预热,并记录事件循环延迟用于预热/重新预热工作,使提供者认证突发不再在频道回复之后堆积完整的认证扫描。 - Gateway/模型:停止已取消的提供者认证状态预热继续完整的提供者扫描,使重载和认证失败突发不再保持启动繁忙。 - 代理/Codex:将第一个计划更新显示为瞬态聊天状态通知,而不将其计为最终助理内容。 - CLI/更新:遍历 macOS 进程祖先并在包更新停止托管的 Gateway 服务之前尊重继承的 Gateway 运行时 PID,使嵌套的内联更新程序子级可以拒绝而不是杀死拥有它们的 LaunchAgent 监督的 Gateway。修复 #85120。 - Gateway/LaunchAgent:等待 launchd 重载 bootout 完成,并在引导竞争时回退到 kickstart,使重载交接不会使服务注销。修复 #84630。(#84641)感谢 @NianJiuZst。 - Gateway/LaunchAgent:当服务已加载时,将并发 launchd 引导视为成功重启,避免虚假的 macOS Gateway 重启失败。修复 #84721。(#84722)感谢 @googlerest。 - Gateway/服务:将活跃的 `openclaw` 命令 bin 目录包含在托管服务 PATH 生成和 doctor 审计期望中,用于 npm 全局 macOS 安装。修复 #84201。(#84475)感谢 @jbetala7。 - 控制 UI/聊天:为已知的非推理模型禁用思考选择器,而不是显示重复的关闭选项。修复 #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。 - 诊断/OTel:删除蛇形命名诊断 ID 属性以及驼峰命名 ID,使导出的遥测无法泄漏运行、会话、消息、聊天、跟踪或工具调用标识符。(#72645)感谢 @Lion0710。 - CLI/更新:在包切换期间保留托管 Gateway 服务环境,使 macOS LaunchAgent 修复/重启读取更新前的服务状态而不是调用者 shell 状态。(#83026) - 代理/提供者:在自定义提供者认证钩子和传输选择中尊重每模型 `api` 和 `baseUrl` 覆盖。修复 #80487。(#80488)感谢 @huveewomg。 - Gateway/重启:在就地升级信号处理之前急切加载生命周期运行时,使包替换不会死锁重启导入。(#84890)感谢 @myps6415。 - CLI/更新:从稳定的现有目录启动托管 Gateway 更新交接帮助器,并在 macOS LaunchAgent 交接期间容忍已删除的 cwd/包根目录。修复 #83808。(#83875)感谢 @jason-allen-oneal。 - 技能:跨代理工作空间监视每个共享技能目录一次,而不是每个代理一次,防止文件描述符耗尽(`EMFILE`),该耗尽导致捆绑 MCP 进程被释放并导致多代理网关上的会话卡住。修复 #84968。(#85130)感谢 @openperf。 - 发布/安全性:将生成的 npm shrinkwrap 包版本保持在 pnpm 锁定图内,使发布的包锁无法绕过 pnpm 依赖年龄和覆盖策略。 - Cron:对常见网络错误代码(如 `EAI_AGAIN`、`EHOSTUNREACH` 和 `ENETUNREACH`)尊重 `cron.retry.retryOn: ["network"]`。 - Gateway 聊天:在代理启动后广播返回的代理运行时错误负载,使 ACP/WebChat 客户端接收终端空闲超时错误。修复 #84945。 - Gateway 聊天显示:在清理过的聊天历史中保留 OpenAI 兼容的 `prompt_tokens`、`completion_tokens` 和 `total_tokens` 使用字段,使 llama.cpp 会话保持上下文计数。修复 #77992。感谢 @MarTT79。 - 仪表板/CLI:即使在 SSH 环境变量存在时也允许通过 `openclaw` 使用 macOS 浏览器启动,同时保留 Linux SSH 无显示保护。修复 #67088。感谢 @theglove44。 - Codex 应用服务器:将原生 web 搜索观察结果排除在镜像聊天转录之外,同时在工具进度遥测中保留可用的操作查询元数据。修复 #85109。感谢 @ugitmebaby。 - OpenCode Go:在提供者请求之前剥离不支持的 Kimi 推理重播字段,使重复的 `kimi-k2.6` 轮次不会因模式验证而失败。修复 #83812。感谢 @Sleeck。 - 浏览器/CDP:当 Chrome DevTools 端点接受连接但返回空 HTTP 回复时,添加 WSL2 端口代理自循环提示。修复 #59209。感谢 @Owlock。 - 代理/工具:添加有界的工具策略审计日志条目,标识哪些允许/拒绝规则移除了工具或阻止了沙箱工具调用。修复 #55801。感谢 @justinjkline。 - CLI/日志:通过被动后端客户端路径读取隐式本地网关日志,使 `openclaw logs --follow` 不会注册为配对设备,并在实时本地 RPC 不可用时使用活跃的 Linux systemd journal 而不是过时的配置文件回退。修复 #83656 和 #66841。 - 代理/OpenAI:在边界感知传输失败时保留结构化的提供者错误代码、类型和编辑过的正文元数据。 - Doctor/Codex:将原生 Codex 资源警告指向规范的 `openclaw migrate plan codex` 预览命令。修复 #84948。感谢 @markoa。 - CLI/模型:使 `capability model auth logout --agent` 从选定的非默认代理存储中移除认证配置文件。修复 #85092。感谢 @islandpreneur007。 - Gateway/模型:在模型列表认证检查期间复用准备好的提供者认证元数据,使重复查找避免广泛的插件发现,同时保留合成本地认证。 - CLI/状态:当 `openclaw status --deep` 已经可以到达正在运行的 Gateway RPC 服务时,抑制 systemd 用户服务设置提示。修复 #85094。感谢 @islandpreneur007。 - CLI/设备:当同一设备修复请求替换正在被批准的请求 ID 时,恢复本地批准。 - CLI/代理:在回退到嵌入式 `openclaw agent` 执行之前,重试瞬态正常关闭的 Gateway 握手。 - CLI/更新:将托管的 Gateway 服务停止/重启状态行排除在 `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:将缺失框架的孤立入站失败死信,使中毒的 spooled 更新不再阻塞稍后的同通道消息。修复 #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 安装程序:在 PATH 上持久化用户本地的便携 Git,并为 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` 直接消息执行和 cron 事件唤醒路由回代理主会话,使异步完成不会将上下文搁浅在孤立的直接 DM 队列中。修复 #71581。(#83743)感谢 @Kaspre。 - 代理/代码模式:通过 `command` 钩子别名暴露外部代码模式 `exec` 源,并带有 `toolKind`/`toolInputKind` 区分器,使 exec 形状的策略可以区分代码模式单元格。(#83483)感谢 @Kaspre。 - 代理/代码模式:为已知的工作线程失败返回结构化的超时和运行时不可用错误代码。修复 #83389。(#83444)感谢 @Kaspre。 - QA-Lab:当场景需要启动配置补丁时隔离多场景套件工作线程,防止消息路由配置泄漏到无关场景中。 - QA-Lab:使承诺心跳目标无场景请求立即心跳,而不是等待下一个计划心跳。 - Codex/Plugin SDK:通过通用框架任务运行时投递 Codex 原生子代理完成,使框架支持的插件可以镜像持久任务生命周期和完成投递,而无需 Codex 特定的 SDK 导入。(#83445)感谢 @bryanpearson。 - Gateway CLI:在本地挑战后连接组装失败时立即显示,而不是等待包装器超时。修复 #68944。(#85253)感谢 @samzong。 - 消息:在回复到达 WebChat 或外部频道之前,从出站回复中剥离不支持的 web 搜索引用控制标记。修复 #85193。(#85204)感谢 @neeravmakwana。 - 代理/exec:将拒绝的 exec 批准视为终端状态,而不是将其反馈到代理后续工作中,并在中止处理中识别中文停止短语。修复 #69386。(#85194)感谢 @samzong。 - CLI/代理:在 SIGINT/SIGTERM 上中止接受的 Gateway 支持的 `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:为顶栏颜色模式按钮添加可访问的工具提示,使系统、浅色和深色选项在悬停和聚焦时有标签。(#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。 - Gateway/ACP:当父会话被重置或删除时,关闭通过 `sessions_spawn` 生成的子 ACP 会话,而不是留下孤立的 `claude-agent-acp` 进程,这些进程会累积并耗尽内存。修复 #68916。(#85190)感谢 @openperf。 - Codex 应用服务器:当 OpenClaw exec 解析为 node 主机时阻止原生执行路径,同时保留第一方 CLI node 绑定路径。修复 #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。 - Gateway:将成功的同源消息工具发送镜像到会话转录中,使投递的回复保持在后续历史/上下文中。(#84837)感谢 @iFiras-Max1。 - 媒体生成:当生成的媒体通过活跃会话回复完成时,防止图像、音乐和视频完成投递重复或丢失任务所有权。(#84006)感谢 @fuller-stack-dev。 - CLI/doctor:在 pnpm/npm 升级后,从旧版本号 OpenClaw 包根目录中移除过时的捆绑插件加载路径。修复 #58626。感谢 @solink7。 - 基础设施/JSON:在加载 JSON 状态时重试瞬态的 `File changed during read` 竞争,使配置和状态读取恢复而不是使轮次失败。(#84285) - 插件/提供者:在设置模式发现期间对工作空间提供者插件关闭失败,除非明确信任,防止在提供者设置期间运行不受信任的工作空间插件代码。(#81069)感谢 @mmaps。 - 提供者/Ollama:将配置的 Ollama Cloud `OLLAMA_API_KEY` 标记解析为真实的发现密钥,使云提供者条目保持认证模型目录访问。(#85037) - Discord:通过运行时记录器转发结构化的错误和原因元数据,使持久组件注册表回退警告可操作。修复 #84185。(#84190)感谢 @100menotu001。 - Gateway/会话:在同一提供者内切换模型时保留兼容的会话认证配置文件覆盖,包括提供者认证别名。修复 #81837。(#81886)感谢 @TurboTheTurtle。 - Gateway/状态:在 `openclaw status --all` 中显示入站投递遥测计数器和传输活跃性警告。修复 #49577。(#72724) - Docker:修剪包排除的插件源工作空间和依赖项闭包,使运行时镜像不会保留未选择加入的插件的包。 - 提供者/Ollama:将 Docker/OrbStack 主机别名视为本地 Ollama 端点,使 `ollama-local` 标记认证在 OpenClaw 在 VM/容器内运行而 Ollama 在主机上运行时工作。修复 #84875。 - QA-Lab:将显式可搜索/延迟的 OpenClaw 动态工具行默认保持为仅报告,使工具覆盖率门控不会将模拟发现差距视为硬性产品失败。(#80319)感谢 @100yenadmin。 - 代理/配置:防止非 Google 提供者模型引用被 Google Gemini 预览 ID 规范化重写。(#84762)感谢 @zhangguiping-xydt。 - 安装程序:在启动入门之前需要真实控制终端,使无头 `curl | bash` 安装在安装 CLI 后干净完成。 - 代理/Codex:当提示超时与 Codex 应用服务器完成竞争时,提升一个完成的最终助理回复,而不是返回一个空的超时信封。引用 #84516。 - Codex 应用服务器:防止中断的轮次状态本身被视为 OpenClaw 中止,使仅工具轮次仍有资格进行无可视答案恢复。修复 #84492。 - 代理:当运行时模型元数据不可用时,通过存储的会话窗口限制心跳模型出血上下文提示,使溢出恢复建议不会建议比活跃会话实际更大的窗口。 - 控制 UI/Web Push:使用 `https://openclaw.ai` 作为生成的默认 VAPID subject,而不是旧的 localhost 邮箱,使 iOS PWA 推送设置在 `OPENCLAW_VAPID_SUBJECT` 未设置时使用 Apple 可接受的 subject。修复 #83134。(#83317)感谢 @IWhatsskill。 - 控制 UI:区分继承的思考关闭设置和显式的关闭选择,使思考选择器不再显示两个相同的关闭行。(#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。 - Discord/语音通话:将强制实时语音咨询诊断保留在调试日志中而不是代理提示中,使呼叫者在提供者缺少 `openclaw_agent_consult` 时不会听到 OpenClaw 策略文本。(#84411)感谢 @fuller-stack-dev。 - 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 拒绝,使收集器关闭不再崩溃 Gateway。(#81085)感谢 @luoyanglang。 - 代理/exec:从拒绝的 exec 失败日志中省略原始命令文本和环境值,同时保留安全的关联元数据。修复 #85049。(#85140)感谢 @joshavant。 - 媒体理解:恢复图像描述默认的 4096 令牌,使具有推理能力的视觉模型在返回文本之前不再截断,同时保留较小模型的容量。(#84932)感谢 @scotthuang。 - 媒体/音频:跳过空的结构化 sherpa-onnx 转录,而不是将原始 JSON 负载视为口语文本。(#84667)感谢 @TurboTheTurtle。 - 代理/exec:保留子进程继承的 XDG base-directory 环境值,同时仍然拒绝代理提供的 XDG 覆盖。修复 #84854。(#85139)感谢 @joshavant。 - Node/Linux:通过将节点服务令牌值写入特定于节点的 env 文件,使 `OPENCLAW_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 刷新和重写迁移,而不是失败并显示 `No API key found for provider "openai-codex"`,直到用户运行 `openclaw doctor`。感谢 @Totalsolutionsync 和 @romneyda。 - Codex/故障转移:将 `deactivated_workspace` 分类为永久认证失败,使配置的回退模型可以在 Codex 工作空间停用时前进。(#55893)感谢 @litang9。 - Exec:在 POSIX 网关运行中,将配置的 `tools.exec.pathPrepend` 条目置于用户 shell 启动 PATH 更改之前。(#81403)感谢 @medns。 - Gateway/会话:允许共享密钥的 bearer 调用者读取和流式传输会话历史,而无需显式的作用域头。(#81815)感谢 @medns。 - 代理/嵌入式运行器:将 HTML 认证提供者响应分类为 `auth_html` 并返回重新认证提示,而不是 `upstream_html` 返回的 CDN 阻止副本。Cloudflare Access 登录页面、nginx basic-auth 挑战和网关登录墙都会生成 HTML 认证正文,之前被误诊为瞬态 CDN 块。(#79900)感谢 @martingarramon。 - TUI/流式监视器:一旦同一运行的聊天事件到达,立即解散“此响应耗时超过预期”的通知,使该消息在运行仅短暂静默后不再与恢复的响应并排放置。引用 #67052, #69081 (已关闭), 先前尝试 #69026。感谢 @jpruit20 和 @romneyda。 - 代理/Pi:在嵌入式提示被释放用于模型 I/O 时容忍 OpenClaw 拥有的转录写入,使长时间运行的飞书、Slack、Telegram 和 cron 轮次不会因虚假的会话接管错误而失败。修复 #84059。(#84250)感谢 @tianxiaochannel-oss88。 ### 发布验证 - npm 包:https://www.npmjs.com/package/openclaw/v/2026.5.24-beta.2 - registry tarball:https://registry.npmjs.org/openclaw/-/openclaw-2026.5.24-beta.2.tgz - 完整性:`sha512-NYz9vhtY+BFKvC+tEz68dGtlONdgpMYd3xJFx4b2Z6v0VDF9Cxb4ypUQzWMklQCLngpB9LMTCmKHEPeDEEo2uQ==` - 完整发布 CI 报告:https://github.com/openclaw/releases-private/blob/main/evidence/2026.5.24-beta.2/release-evidence.md - 发布发布:https://github.com/openclaw/openclaw/actions/runs/26379964767 - npm 预检:https://github.com/openclaw/openclaw/actions/runs/26378908349 - 完整发布验证:https://github.com/openclaw/openclaw/actions/runs/26378909141 - 插件 npm 发布:https://github.com/openclaw/openclaw/actions/runs/26380049649 - 插件 ClawHub 发布:https://github.com/openclaw/openclaw/actions/runs/26380051057 - OpenClaw npm 发布:https://github.com/openclaw/openclaw/actions/runs/26380445312 - npm Telegram beta E2E:https://github.com/openclaw/openclaw/actions/runs/26380673797