← 返回更新日志

OpenClaw v2026.4.27

2026-04-29 · GitHub 原文
## 2026.4.27 ### 亮点 - Codex Computer Use 设置现在附带状态/安装命令、市场发现功能,以及针对 Codex 模式桌面控制的故障关闭 MCP 检查。感谢 @pash-openai。 - DeepInfra 加入捆绑提供商集合,支持模型发现、媒体生成/编辑、TTS、嵌入以及提供商自有接入策略。感谢 @ats3v。 - 腾讯元宝和 QQBot 支持扩展了渠道覆盖范围,新增元宝文档/目录条目以及 QQBot 群聊、流式传输、媒体上传和流水线重构。感谢 @loongfay 和 @cxyhhhhh。 - 插件启动和模型目录逐步采用清单优先的元数据,减少网关启动工作量,并使提供商行/别名/抑制更易于审计。感谢 @shakkernerd。 - 可靠性修复涵盖 Telegram 启动/发送、Slack 套接字/媒体停滞、网关启动预热、会话/历史默认值、更新同步以及 Windows 重启交接。感谢 @joerod26、@obviyus、@shivasymbl、@freerk、@bassboy2k、@jpreagan、@islandpreneur007 和 @Thatgfsj。 ### 变更 - 沙箱/Docker:为 Docker 沙箱容器添加了可选 `sandbox.docker.gpus` 直通功能,使本地 GPU 工作负载可在沙箱代理内运行(需主机 Docker 运行时支持 `--gpus`)。修复 #57976;继承 #58124。感谢 @cyan-ember。 - iOS/网关:添加了经过身份验证的 `node.presence.alive` 协议事件和 `node.list` 最后可见字段,使后台 iOS 唤醒可将配对的节点标记为最近活跃,而不会将其视为已连接。继承 #63123。感谢 @ngutman。 - Android:在节点连接和后台转换后发布经过身份验证的 `node.presence.alive` 事件,使配对的 Android 节点在断开连接后保留持久的最后可见元数据。继承 #63123。感谢 @ngutman。 - 网关/聊天:通过将非图像附件暂存为代理可读的媒体路径,接受通过 `chat.send` 发送的非图像附件,同时保持不支持的 RPC 附件路径显式化而非静默丢弃文件。修复 #48123。(#67572) 感谢 @samzong。 - 安全/网络:添加了可选的操作员管理出站代理路由(`proxy.enabled` + `proxy.proxyUrl`/`OPENCLAW_PROXY_URL`),具备严格的 http:// 正向代理验证、仅回环网关绕过,以及退出时清理代理环境/调度器状态。(#70044) 感谢 @jesse-merhi 和 @joshavant。 - 依赖项:刷新了提供商和工具依赖项,包括 AWS SDK、PI 运行时包、AJV、飞书 SDK、Anthropic SDK、tokenjuice 以及原生 TypeScript/oxlint 工具链。感谢 @dependabot。 - Matrix/QA:为执行元数据、分块回退、插件批准、拒绝反应、线程定位和 `target: "both"` 传递添加了实时 Matrix 批准场景,其中编辑后的工件保留安全的批准摘要。感谢 @gumadeiras。 - Codex:为 Codex 模式代理添加了 Computer Use 设置,包括 `/codex computer-use status/install`、市场发现、可选自动安装,以及在 Codex 模式回合开始前进行故障关闭 MCP 服务器检查。修复 #72094。(#71842) 感谢 @pash-openai。 - 应用:采用 Peekaboo 3.0.0-beta4 和 ElevenLabsKit 0.1.1,使 Swabble 对齐 Commander 0.2.2,并针对已发布的依赖图刷新 macOS/iOS SwiftPM 解析。感谢 @Blaizzy。 - 插件 SDK:通过 `openclaw/plugin-sdk/channel-route` 公开共享渠道路由规范化、解析器驱动的目标解析、原始目标紧凑键、解析目标类型以及路由比较助手,将原生批准来源匹配切换到该路由合约(含可选传递和仅匹配目标规范化),并将内部渠道路由填充程序保留在过时的兼容性别名之后(用于遗留键/可比较目标助手)。感谢 @vincentkoc。 - 文档/Codex:记录了 Codex Computer Use、直接 `cua-driver mcp` 和 OpenClaw.app 的 PeekabooBridge 如何协同工作,使桌面控制设置选择更清晰。感谢 @pash-openai 和 @trycua。 - Matrix/流式传输:默认在预览流式传输激活时将工具进度更新流式传输到实时 Matrix 预览编辑中,通过 `streaming.preview.toolProgress: false` 可在隐藏临时工具行的同时保留答案预览。感谢 @gumadeiras。 - 插件/模型:将清单 `modelCatalog.aliases` 和 `modelCatalog.suppressions` 连接到模型目录规划和内置模型抑制,其中过时的 Spark 和 Qwen Coding Plan 抑制现在在插件清单中声明,而非运行时回退钩子。感谢 @shakkernerd。 - 插件 SDK/模型:添加了共享的清单支持提供商目录构建器,并将 Qianfan、Xiaomi、NVIDIA、Cerebras、Mistral、Moonshot、DeepSeek、Tencent TokenHub 和 StepFun 提供商目录移至其插件清单 `modelCatalog` 行。感谢 @shakkernerd。 - 插件 SDK/模型:将 BytePlus 和 Volcano Engine 标准及计划提供商目录移至插件清单 `modelCatalog` 行,并移除现在未使用的 Volcengine 系列共享目录 SDK 子路径。感谢 @shakkernerd。 - CLI/模型:将 Fireworks 和 Together AI 固定提供商目录移至插件清单 `modelCatalog` 行,以便提供商过滤的列表可使用清单支持的静态行。感谢 @shakkernerd。 - 渠道/元宝:在官方渠道目录、合约套件和社区插件文档中注册腾讯元宝外部渠道插件(`openclaw-plugin-yuanbao`),并新增 `docs/channels/yuanbao.md` 快速入门指南,涵盖 WebSocket 机器人 DM 和群聊。(#72756) 感谢 @loongfay。 - 渠道/元宝:添加渠道文档入口,使腾讯元宝机器人出现在渠道列表和侧边栏导航中。(#73443) 感谢 @loongfay。 - 渠道/QQBot:添加完整群聊支持(历史跟踪、@-提及门控、激活模式、每群配置、带传递去抖的 FIFO 消息队列)、C2C `stream_messages` 流式传输(含 `StreamingController` 生命周期管理器)、统一 `sendMedia`(大文件分块上传),并将引擎重构为流水线阶段、聚焦出站子模块、内置斜杠命令模块,以及通过 `createEngineAdapters()` 的显式 DI 端口。(#70624) 感谢 @cxyhhhhh。 - 插件/启动:将捆绑插件清单迁移到显式 `activation.onStartup` 声明,使网关启动仅导入有意注册启动时运行时表面的捆绑插件。感谢 @shakkernerd。 - 插件/启动:添加了可选的未来模式门,用于禁用已弃用的隐式启动旁路加载,同时保留显式启动和更窄的激活触发器。感谢 @shakkernerd。 - 插件/启动:为已弃用的隐式启动加载添加了插件兼容性警告,以便作者可迁移到显式 `activation.onStartup` 元数据。感谢 @shakkernerd。 - 插件/运行时:按需从清单合约加载捆绑代理工具结果中间件,使 tokenjuice 保持启动延迟,同时不丢失 Pi/Codex 工具输出压缩。感谢 @shakkernerd。 - 插件/启动:添加显式 `activation.onStartup` 元数据,使插件可声明网关启动导入行为,而弃用的隐式旁路回退仍保留用于遗留插件。感谢 @shakkernerd。 - 网关/启动:在加载启动插件时重用查找表插件清单,使网关启动避免重建插件发现和清单元数据。感谢 @shakkernerd。 - CLI/模型:在可刷新的插件清单中声明固定的 Qianfan、Xiaomi、NVIDIA、Cerebras、Mistral、Chutes、Kilo、OpenAI 和 OpenCode Go 模型目录,保持广泛的 `models list --all` 基于原始注册表,并在不进行运行时规范化的前提下补充行,同时避免重复补充解析。感谢 @shakkernerd。 - 网关/运行时:为提供商发现重用当前插件元数据快照,使重复的模型提供商发现避免重建插件清单元数据。感谢 @shakkernerd。 - 网关/启动:将插件元数据快照从配置验证传递到插件引导,使启动重用一份清单产品而非重建插件元数据。感谢 @shakkernerd。 - 插件 SDK/测试:将核心专用渠道合约测试夹具移至渠道合约测试树下,并弃用旧的 `test/helpers/channels` 桥接目录,使插件测试专注于 SDK 表面。感谢 @vincentkoc。 - 插件 SDK/测试:通过 `plugin-sdk/agent-runtime-test-contracts` 公开原生代理运行时合约测试夹具,将沙箱配置测试夹具移至聚焦的通用测试夹具子路径,并阻止扩展测试导入仅限仓库的 `test/helpers` 桥接。感谢 @vincentkoc。 - 插件 SDK/测试:通过聚焦的 SDK 测试子路径公开通用模块重载、捆绑路径、Node 内置模拟、渠道配对/信封、HTTP 服务器、临时主目录、重放策略和实时 STT 助手,使扩展测试不再依赖仅限仓库的助手桥接。感谢 @vincentkoc。 - 插件 SDK:将维护的捆绑渠道移出已弃用的 `channel-config-schema-legacy` 子路径,添加显式捆绑渠道架构 SDK 表面,并跟踪两个剩余的遗留测试/配置兼容性 barrels(带有日期移除窗口)。感谢 @vincentkoc。 - 插件 SDK/测试:通过聚焦的 SDK 测试子路径公开媒体提供商能力断言和提供商 HTTP 模拟,并弃用仅限仓库的媒体生成测试助手桥接。感谢 @vincentkoc。 - 插件 SDK/测试:将捆绑插件/提供商/渠道合约助手提升到聚焦的 SDK 测试子路径,并弃用仅限仓库的 `test/helpers/plugins` TypeScript 桥接。感谢 @vincentkoc。 - 插件 SDK/测试:通过 `plugin-sdk/channel-test-helpers` 公开通用渠道操作、设置、状态和目录合约助手,使捆绑扩展测试不再导入仅限仓库的渠道助手桥接。感谢 @vincentkoc。 - 插件 SDK/测试:添加 `plugin-sdk/channel-target-testing` 用于共享渠道目标解析案例,在 `plugin-sdk/channel-feedback` 上记录渠道反应助手,并将旧的 `plugin-sdk/test-utils` 别名保留为仅兼容。感谢 @vincentkoc。 - 插件 SDK/测试:添加聚焦的通用测试夹具子路径,用于 CLI 捕获、沙箱、技能、代理消息、系统事件、终端、分块、身份验证令牌和类型化案例助手。感谢 @vincentkoc。 - 插件 SDK/测试:添加聚焦的插件运行时和环境测试夹具子路径,使插件测试可避免广泛的 `plugin-sdk/testing` barrel 以获取常见设置助手。感谢 @vincentkoc。 - 插件 SDK/测试:添加聚焦的 `plugin-sdk/plugin-test-api` 助手子路径,并将捆绑插件注册测试移出仅限仓库的插件 API 桥接。感谢 @vincentkoc。 - 插件 SDK:添加会话状态、下一轮上下文、受信任工具策略、UI 描述符、事件、调度器清理和运行范围插件上下文的主机钩子。(#72287) 感谢 @100yenadmin。 - 插件 SDK/测试:通过记录的 SDK 测试接缝公开提供商目录、向导、注册表、清单、公共工件、出站和 TTS 合约助手,使捆绑插件测试不再导入仓库 `src/**` 内部内容。感谢 @vincentkoc。 - 提供商/DeepInfra:添加了捆绑的 DeepInfra 提供商,支持 `DEEPINFRA_API_KEY` 接入、动态 OpenAI 兼容模型发现、图像生成/编辑、图像/音频媒体理解、TTS、文本转视频、内存嵌入、静态目录元数据和提供商自有基础 URL 策略。继承 #53805、#48088、#37576、#43896、#11533 和 #2554。感谢 @ats3v。 - Matrix:将版本化结构化批准元数据附加到挂起的批准消息,使 capable Matrix 客户端可渲染更丰富的批准 UI,而正文文本和反应回退保持工作。(#72432) 感谢 @kakahu2015。 ### 修复 - 网关/会话:使 `chat.history` 和 `sessions.list` 的思考默认值与拥有代理和目录感知解析对齐,使 Control UI 会话默认值与后端运行时状态匹配。(#63418) 感谢 @jpreagan。 - 设备/配对:在持久化批准前恢复数组形状设备和节点配对状态文件,使 UUID 键控的挂起和配对条目不再在格式错误的 JSON 存储写入后消失。修复 #63035。感谢 @sar618。 - 网关/认证:清除重复使用的过时设备令牌,并停止在 Control UI 和节点网关客户端中设备令牌不匹配时重新连接,避免范围升级或令牌轮换交接后的速率限制循环。修复 #71609。感谢 @ricksayhi。 - 网关/批准:在解析条目宽限期内将重复相同决策的批准解析视为幂等(包括已消耗的 `allow-once` 批准),同时对冲突重复返回明确的已解析错误。修复 #59162;引用 #58479 和 #65486。感谢 @wikithoughts、@sajazuniga7-coder 和 @mjmai20682068-create。 - 渠道/Telegram:在跨多机器人 Telegram 账户路由原生批准时尊重 `approvals.exec/plugin.targets[].accountId`,同时为任何账户保留无作用域的 Telegram 目标。修复 #69916。感谢 @joerod26。 - Telegram/网关:限制出站 Bot API 调用并缓存捆绑插件别名查找,使缓慢的 Telegram 发送或 WSL2 文件系统扫描不再阻塞网关回复。(#74210) 感谢 @obviyus。 - 代理/执行:从直接发送回聊天的成功异步执行完成消息中省略内部会话恢复回退前言。修复 #67181。感谢 @raistlin88。 - 代理/媒体:注册分离的 `video_generate` 和 `music_generate` 工具运行上下文直至终端状态,使 Discord 支持的提供商作业在 `/tasks` 中保持活动状态,而不会在父聊天运行上下文消失时变为 `lost`。感谢 @vincentkoc。 - 代理/媒体:当默认模型使用 OpenAI Codex 认证别名时,优先选择 OpenAI 图像和视频提供商,使自动媒体生成不再在 GPT Image 或 Sora 之前回退到 Fal。感谢 @vincentkoc。 - 任务/媒体:为会话范围的任务记录推断代理所有权,使 `/tasks` 代理本地回退包含会话支持的 `video_generate` 和其他异步媒体作业,即使当前聊天会话没有链接行。感谢 @vincentkoc。 - 代理/媒体:在提供商作业仍待定时保持长期运行的 `video_generate` 和 `music_generate` 任务新鲜,使任务维护不会在完成前将活动的 Discord 媒体渲染标记为丢失。感谢 @vincentkoc。 - CLI/状态:在共享状态扫描中将范围受限的网关探测视为可访问但降级,使 `openclaw status --all` 在 `missing scope: operator.read` 后不再报告实时网关不可达。修复 #49180;取代 #47981。感谢 @openjay。 - CLI/更新:在 npm、ClawHub 或市场更新检查前的更新后插件同步期间跳过配置中禁用的跟踪插件,保留其安装记录而不使更新失败。修复 #73880。感谢 @islandpreneur007。 - Slack/套接字模式:默认使用 15 秒 Slack SDK pong 超时,并添加 `channels.slack.socketMode.clientPingTimeout`、`serverPingTimeout` 和 `pingPongLoggingEnabled` 覆盖,使陈旧 websocket 处理不再依赖应用事件运行状况启发式。修复 #14248;引用 #58519、#64009 和 #63488。感谢 @shivasymbl 和 @freerk。 - Slack/媒体:限制私有文件和转发附件下载的空闲和总超时,同时保留占位符回退,使停滞的 Slack `file_share` 媒体不再阻塞入站消息处理。修复 #61850。感谢 @bassboy2k。 - 插件/检查器:使捆绑插件运行时捕获对 Codex、memory-lancedb、飞书、Mattermost、QQBot 和 Tlon 保持安静且配置容忍,使插件检查器 JSON 检查可验证完整捆绑集。感谢 @vincentkoc。 - Slack/自动回复:在指令清理后保持完全消耗的文本重置触发器(如 `new session`)不在 `BodyForAgent` 中,使配置的 Slack 重置短语不会泄漏到新的模型回合中。修复 #73137。感谢 @neeravmakwana。 - 插件/运行时依赖项:修剪过时保留的捆绑运行时依赖项,并使 doctor/secret 渠道合约扫描保持轻量工件,使禁用的捆绑渠道停止保留旧依赖树或导入重型插件表面。感谢 @SymbolStar 和 @vincentkoc。 - 插件/运行时依赖项:缓存未更改的捆绑运行时镜像 dist-file 具体化决策,并在所有者写入失败时关闭文件锁句柄,减少重复的启动分块扫描并避免 FileHandle-GC 恢复停顿。引用 #73532。感谢 @oadiazp 和 @bstanbury。 - 自动回复:用进度感知的空闲超时限制运行后挂起的工具结果传递排空,使永不解决的工具结果任务不会使会话永久保持活动状态,而缓慢健康的传递可继续排空。修复 #53889;取代 #64733 和 #73434。感谢 @zijunl 和 @wujiaming88。 - 网关/启动:在不等待主模型预热的情况下启动聊天渠道,使模型预热在后台受限,因此当提供商发现缓慢时,Slack 和其他渠道可快速上线。取代 #73420。感谢 @dorukardahan。 - 网关/安装:将环境支持的配置 SecretRef(如 `channels.discord.token`)带入生成的服务器环境(当它们仅存在于安装 shell 中时),同时保持网关认证 SecretRef 非持久化。修复 #67817;取代 #73426。感谢 @wdimaculangan 和 @ztexydt-cqh。 - 自动回复/命令:在重置钩子确认命令后停止裸 `/reset` 和 `/new`,使非 ACP 渠道不再落入空提供商调用,而 `/reset <message>` 和 `/new <message>` 仍可为下一个模型回合播种。修复 #73367 和 #73412。感谢 @hoyanhan、@wenxu007 和 @amdhelper。 - 提供商/DeepSeek:在普通助手重播消息以及工具调用回合中回填 DeepSeek V4 `reasoning_content`,使具有先前工具使用的思考会话不再因缺失推理内容而失败后续请求。修复 #73417;引用 #71372。感谢 @34262315716 和 @Bartok9。 - 代理/网关工具:从 `config.patch` 和 `config.apply` 工具响应中剥离完整配置负载,同时保留直接 RPC 响应,使配置繁重的会话不再将大型编辑配置重播到转录历史中。修复 #47610;取代 #73439。感谢 @HanenVit 和 @juan-flores077。 - 自动回复:在静默回合中保留语音笔记媒体,同时继续抑制文本和非语音媒体,使 `NO_REPLY` TTS 回复仍传递请求的音频气泡。(#73406) 感谢 @zqchris。 - 渠道/Mattermost:停止将常规入站帖子排入系统事件队列,使 Mattermost 用户消息仅作为用户角色入站信封内容到达模型,而不是 additionally 显示为 `System: Mattermost message...` 指令。修复 #71795。感谢 @juan-flores077。 - 代理/媒体:从唯一配置的图像能力提供商限定裸 `agents.defaults.imageModel` 和 `pdfModel` 引用,使 Ollama 视觉模型(如 `moondream` 和 `qwen2.5vl:7b`)不再回退到默认提供商。修复 #38816;取代 #73396。感谢 @alainasclaw 和 @vincentkoc。 - 代理/Anthropic:仅将隐式 Anthropic beta 头发送到直接公共 Anthropic 端点(包括 OAuth),使自定义 Anthropic 兼容提供商不再错误处理不受支持的 beta 标志(除非显式配置)。引用 #73346。感谢 @byBrodowski。 - 技能:在公开捆绑编码代理技能前要求显式 `skills.entries.coding-agent.enabled`,使 PATH 上有 Codex 但无 OpenAI 认证的安装不会静默提供 Codex 委托。修复 #73358。感谢 @LaFleurAdvertising 和 @Sanjays2402。 - 插件/启动:将无清单 Claude 捆绑包视为有效已安装插件注册表条目,而非过时缺失清单,使工作区捆绑包不再在网关启动期间强制重复派生注册表重建或嘈杂的 `plugins.entries.workspace` 警告。修复 #73433。感谢 @AnneVoss。 - 代理/子代理:将 `sessions_yield` 保留为暂停的子代理状态,并在冻结完成输出时忽略其等待文本,使父会话等待最终压缩后答案,而不是接收中间进度或 `(no output)`。修复 #73413。感谢 @Ask-sola。 - 插件/启动:在获取镜像锁之前预计算捆绑运行时镜像指纹,并将 Docker 捆绑插件运行时依赖项/镜像保留在 Docker 管理的卷中(而非 Windows/WSL 配置绑定挂载),使冷启动避免缓慢的主机卷镜像写入。修复 #73339。感谢 @1yihui。 - 插件/运行时依赖项:在不删除活动导入树的情况下刷新捆绑运行时镜像,使配置触发的重启在注册期间不会看到瞬态缺失的插件文件。感谢 @shakkernerd。 - 渠道/LINE:将入站图像、视频、音频和文件下载持久化到 `~/.openclaw/media/inbound/` 而非临时文件,使代理在 `/tmp` 清理后仍可读取 LINE 媒体。修复 #73370。感谢 @hijirii 和 @wenxu007。 - CLI/插件:在保留安装记录的同时,将捆绑插件安装保留在 `plugins.load.paths` 之外,使安装/检查/医生循环不再警告当前捆绑插件目录。感谢 @vincentkoc。 - CLI/插件:将 `plugins inspect <id>` 运行时加载范围限定到匹配的插件,使单插件检查不会在检查目标前加载每个插件。感谢 @shakkernerd。 - CLI/插件:在卸载期间移除管理的复制路径插件目录,并从元数据而非运行时加载插件计划卸载,使插件生命周期命令避免不必要的捆绑运行时依赖项工作。感谢 @shakkernerd。 - Cron 工具:当 `agentId` 省略或传递为 undefined 时,为 `cron.add` 作业推断创建会话的 agentId,使调度的 agentTurn 作业路由到会话代理;#40571 识别了 guard bug 并提供了聚焦的回归覆盖。感谢 @ChanningYul。 - Cron/Telegram:向 `openclaw cron add` 和 `openclaw cron edit` 添加 `--thread-id`,在调度公告中保留 Telegram 论坛主题传递目标。继承 #51581、#60373 和 #60890。感谢 @ChunHao-dev。 - Cron/Telegram:当隔离 cron 传递明确目标父聊天时,保留会话衍生的 Telegram 主题线程 ID,使裸聊天目标保持在活动论坛主题中,而不将过时主题泄漏到其他聊天。继承 #64708。感谢 @addelh。 - 内存/压缩:使预压缩内存刷新提示保持运行时唯一,因此会话转录和 `chat.history` 不再将它们作为普通用户回合暴露。修复 #54408 和 #58956;引用 #43567。感谢 @markgong 和 @guoyuhang9。 - Control UI/WebChat:将大附件负载保留在 Lit 状态和乐观聊天消息之外,使用对象 URL 预览加发送时负载序列化,使 PDF/图像上传不再触发 `RangeError: Maximum call stack size exceeded`。修复 #73360;引用 #54378 和 #63432。感谢 @hejunhui-73、@Ansub 和 @christianhernandez3-afk。 - 代理/Anthropic:在中止信号触发时取消停滞的 Anthropic Messages SSE 正文读取,使活动内存超时释放传输资源,而不是让隐藏的召回运行在 `reader.read()` 上停放。引用 #72965 和 #73120。感谢 @wdeveloper16。 - Control UI/WebChat:将挂起的运行和输入状态附加到活动客户端运行,使无所有者注入/公告/侧结果最终不再解锁不相关的活动运行,而完成的所有者运行仍及时清除。修复 #57795;继承来自 #57887 的聚焦诊断。感谢 @haoyu-haoyu。 - 沙箱/Docker:停止通过将普通 Debian 标记为 `openclaw-sandbox:bookworm-slim` 来满足缺失的默认沙箱镜像,保留沙箱写入/编辑助手所需的 Python 工具,并引导用户构建默认镜像。修复 #51185;引用 #45108、#51099、#51609 和 #57713。感谢 @dpalis、@Tin55FoilDev、@jbcohen2-coder、@macminihal-cyber 和 @PraxoOnline。 - Control UI/WebChat:在调度 `/new` 前确认工具栏 New Session 按钮重置,同时保持键入的 `/new` 和 `/reset` 命令立即执行。修复 #45800;引用 #27065、#56611、#54499 和 #27110。感谢 @aethnova、@kosta228-huli、@adambezemek 和 @xss925175263 (xianshishan)。 - 代理/模型:当 `fallbacks` 省略时保持每代理主模型严格,因此仅探测的自定义提供商不会作为隐藏回退候选被尝试,除非代理明确选择加入。修复 #73332。感谢 @haumanto。 - 网关/模型:添加 `models.pricing.enabled`,使离线或受限网络安装可跳过启动 OpenRouter 和 LiteLLM 定价目录获取,同时保持显式模型成本工作。修复 #53639。感谢 @callebtc、@palewire 和 @rjdjohnston。 - 网关/启动:当遗留 `CLAWDBOT_*` 或 `MOLTBOT_*` 环境变量仍存在时发出警告,将用户指向 `OPENCLAW_*` 名称而非静默失败。修复 #53482;继承 #53667。感谢 @lndyzwdxhs。 - 入门:将交互式和非交互式健康检查固定到刚配置的设置令牌/密码,使过时的 `OPENCLAW_GATEWAY_TOKEN` 或 `OPENCLAW_GATEWAY_PASSWORD` 值在设置后不会产生错误的网关令牌不匹配失败。修复 #72203。感谢 @galiniliev。 - Doctor/状态:在归档孤立转录文件前要求交互式确认,使 `openclaw doctor --fix` 不再在升级重新生成 `sessions.json` 后静默重命名可恢复的会话历史。修复 #73106。感谢 @scottgl9。 - Cron/Telegram:当隔离 cron 公告明确目标父聊天时,保留会话衍生的 Telegram 主题线程 ID,使裸聊天目标保持在活动论坛主题中,而不将过时主题泄漏到其他聊天。继承 #64708。感谢 @addelh。 - 构建/运行时:在 `pnpm build` 写入构建标记后写入运行时后构建标记,使下一个 CLI 调用在成功构建后不再重新同步运行时工件。修复 #73151。感谢 @bittoby。 - 构建/运行时:在源检出 tsdown 重建期间保留暂存的捆绑插件运行时依赖项缓存,使本地 CLI 和网关监视重建不再在启动前重新创建大型插件依赖树。引用 #73205。感谢 @SymbolStar。 - CLI/渠道:即使独立 CLI 未加载运行时渠道注册表,也从只读设置元数据列出配置的聊天渠道账户,使 `openclaw channels list` 在认证提供商前显示 Telegram 账户。修复 #73319 和 #73322。感谢 @mlaihk。 - CLI/模型探测:保持 `infer model run --gateway` 原始,跳过先前的会话转录、引导上下文、上下文引擎组装、工具和捆绑 MCP 服务器,使本地后端可在没有完整代理上下文开销的情况下测试。修复 #73308。感谢 @ScientificProgrammer。 - CLI/图像描述:通过 `infer image describe` 和 `describe-many` 传递 `--prompt` 和 `--timeout-ms`,使自定义视觉指令和缓慢的本地模型预算到达媒体理解提供商(如 Ollama、OpenAI、Google 和 OpenRouter)。解决 #63700。感谢 @cedricjanssens。 - 提供商/Ollama:将长的非语言 Kimi/GLM 符号运行拒绝为提供商失败,而非存储为成功的可见助手回复,使回退或错误处理可从混乱的云输出中恢复。修复 #64262;引用 #67019。感谢 @Kloz813 和 @xiaomenger123。 - CLI/模型探测:在调用本地提供商或网关前拒绝空或仅空白的 `infer model run --prompt` 值,使冒烟检查不会将提供商调用浪费在无效回合上。修复 #73185。感谢 @iot2edge。 - 网关/媒体:通过媒体理解字段路由仅文本 `chat.send` 图像卸载,使 `agents.defaults.imageModel` 可描述 WebChat 附件,而不是仅留下不透明的 `media://inbound` 标记。修复 #72968。感谢 @vorajeeah。 - 网关/Windows:通过 Windows 监督程序路由无监听器重启交接,而不留下飞行中的重启令牌,使失败的任务调度可重试,成功的交接不会合并后续重启请求。(#69056) 感谢 @Thatgfsj。 - 网关/模型定价:当 `plugins.enabled: false` 时在后台定价刷新期间跳过插件清单发现,使禁用插件设置不会从网关热路径重建插件元数据。修复 #73291。感谢 @slideshow-dingo 和 @fishgills。 - Ollama/思考:根据实时 Ollama 目录推理元数据验证 `/think` 命令,并保留显式原生 `params.think`/`params.thinking`,使 `/api/show` 能力包含 `thinking` 的模型暴露 `low`、`medium`、`high` 和 `max`,而非卡在 `off`。修复 #73366。感谢 @cymise。 - 网关/会话:移除自动过大的 `sessions.json` 轮转备份,弃用 `session.maintenance.rotateBytes`,并教导 `openclaw doctor --fix` 移除被忽略的键,使热会话写入不再复制多 MB 存储。引用 #72338。感谢 @midhunmonachan 和 @DougButdorf。 - 渠道/Telegram:当 Telegram 在启动 `getMe` 令牌探测时以 401 拒绝时快速失败,使无效或过时的 BotFather 令牌报告为令牌认证失败,而非误导性的 `deleteWebhook` 清理失败。修复 #47674。感谢 @samaedan-arch。 - ACPX:使生成的 Codex 和 Claude ACP 包装器启动路径在远程或特殊状态文件系统拒绝 chmod 时工作,因为 OpenClaw 通过 Node 而非直接执行调用包装器。修复 #73333。感谢 @david-garcia-garcia。 - CLI/入门:推断常见自定义提供商视觉模型 ID 的图像输入,仅询问未知模型,并保持 `--custom-image-input`/`--custom-text-input` 覆盖,使视觉能力代理不会保存为仅文本配置。修复 #51869。感谢 @Antsoldier1974。 - 模型/OpenAI Codex:停止通过 Codex OAuth 列出或解析不支持的 `openai-codex/gpt-5.4-mini` 行,用清晰的 API 密钥路由提示保持过时发现行抑制,并保留直接 `openai/gpt-5.4-mini` 可用。修复 #73242。感谢 @0xCyda。 - 插件 SDK:恢复已发布 SDK 入口和运行时根别名桥接上的根 `stringEnum` 和 `optionalStringEnum` 导出,使较旧的外部插件可在迁移到聚焦 SDK 子路径时继续构建和加载。修复 #68279。感谢 @marzliak。 - 插件 SDK:恢复 `registerContextEngine` 的根别名桥接,并公开缺失的遗留兼容助手 `normalizeAccountId` 和 `resolvePreferredOpenClawTmpDir`,使较旧的外部插件(如 `openclaw-weixin`)可在迁移到聚焦 SDK 子路径时继续加载。修复 #53497。感谢 @alanxchen85。 - 认证配置文件:使 `openclaw doctor --fix` 将遗留平面 `auth-profiles.json` 文件(如 `{ "ollama-windows": { "apiKey": "ollama-local" } }`)迁移到规范提供商默认 API 密钥配置文件(带备份),使自定义 Ollama/OpenAI 兼容提供商在升级后干净恢复。修复 #59629;取代 #59642。感谢 @Xsanders555 和 @Linux2010。 - 内存/梦想:当配置的梦想模型不可用时,使用会话默认值重试梦想日记一次,同时保持子代理信任和允许列表错误可见,而非静默掩盖配置问题。引用 #67409 和 #69209。感谢 @Ghiggins18 和 @everySympathy。 - 飞书/入站文件:从纯 `Content-Disposition: filename=` 下载头恢复 CJK 文件名(当飞书通过 Latin-1 头解码暴露 UTF-8 字节时),同时保持有效的 Latin-1 和 JSON 派生名称不变。(#48578, #50435, #59431) 感谢 @alex-xuweilong、@lishuaigit 和 @DoChaoing。 - 渠道/Telegram:在运行时规范化意外的完整 `/bot<TOKEN>` Telegram `apiRoot` 值,并教导 `openclaw doctor --fix` 移除后缀,使启动控制调用在直接 Bot API curl 命令工作时不再 404。修复 #55387。感谢 @brendanmatthewjones-cmyk、@techfindubai-ux 和 @Sivlerback-Chris。 - Zalo Personal:在 QR 登录、会话恢复和成功 API 调用后持久化刷新的 `zca-js` 会话 cookie,使网关重启恢复最新的本地会话。(#73277) 感谢 @darkamenosa。 - 日志/安全:在子系统控制台接收器中编辑敏感令牌(sk-* 键、Bearer/Authorization 值等),使绕过修补控制台捕获处理程序的 `createSubsystemLogger().info/warn/error` 输出应用文件传输已有的相同编辑。修复 #73284;引用 #67953 和 #64046。感谢 @edwin-rivera-dev。 - 插件/运行时依赖项:当捆绑插件从嵌套暂存路径解析时,重用封闭的版本化缓存根,使插件运行时依赖项不再创建 `openclaw-unknown-*` 目录或在 `ENOTEMPTY` 上循环。修复 #72956。(#73205) 感谢 @SymbolStar。 - 代理/故障转移:分类 CJK 提供商传输、配额、计费、认证和过载错误文本,使中文提供商失败触发故障转移和面向用户的传输副本,而非显示为未分类原始错误。(#56242) 感谢 @tomcatzh。 - 代理/故障转移:当 claude-cli 尝试失败时,用 Claude Code 会话上下文为非常规 claude-cli 故障转移提示播种,使故障转移模型不会在计费或配额故障转移后冷启动。(#72069) 感谢 @stainlu。 - 代理/CLI 运行器:将捆绑 MCP 临时目录清理从每回合运行器 finally 转移到 Claude 实时会话生命周期,使持久 Claude CLI 会话保持其 `--mcp-config` 目录直到实时子进程关闭。修复 #73244。感谢 @edwin-rivera-dev。 - 网关/节点:允许 Windows 伴随节点默认使用安全声明的命令(如 canvas、camera list、location、device info 和 screen snapshot),同时保持危险媒体命令可选。(#71884) 感谢 @shanselman。 - 代理/cron:澄清代理工具和 CLI cron 时区指南,使提供的 `tz` 值使用本地挂钟 cron 字段,省略的 cron `tz` 回退到网关主机本地时区。修复 #53669;继承 #46177。(#73372) 感谢 @chen-zhang-cs-code 和 @maranello-o。 - 提供商/Qwen:允许显式配置的 `qwen/qwen3.6-plus` 在 Qwen Coding Plan 端点上解析,同时保持内置目录不在那里广告它。修复 #63654;继承 #63987。感谢 @jepson-liu。 - 渠道/Telegram:在失败尝试后保持 Bot API 网络故障转移粘性,并在故障转移路由上重试超时的启动控制调用一次,使 `deleteWebhook` IPv6 停滞不再触发缓慢的多账户重试风暴。修复 #73255。感谢 @ttomiczek 和 @sktbrd。 - 网关/代理:接受心跳、cron 和 webhook 作为代理运行的内部渠道提示,使 `sessions_spawn` 可从非传递父会话工作,而未知渠道提示仍失败关闭。修复 #73237。感谢 @KeWang0622。 - 网关/模型:将显式 `models.providers.*.models` 行合并到网关模型目录(带规范化提供商/模型去重),并使用规范化图像能力查找,使自定义视觉模型保持原生图像附件,即使 Pi 发现省略它们或模型 ID 大小写不同。修复 #64213 和 #65165。感谢 @billonese 和 @202233a。 - 网关/重载:将规范后写源配置发布到进程内重载器,使简单配置保存不再创建幻影插件差异或触发不必要的网关重启。(#73267) 感谢 @szsip239。 - 网关/Docker:在容器内保持配置触发的重启进程内,而非生成分离子进程并干净退出 PID 1,使 Docker Swarm 和其他 on-failure 监督程序不会使服务卡在 0/1 副本。修复 #73178。感谢 @du-nguyen-IT007。 - CLI/任务:在 npm 包中提供任务注册表控制运行时,使 `openclaw tasks cancel` 可从已发布构建加载 ACP/子代理取消助手。修复 #68997。感谢 @1OAKDesign。 - 渠道/Telegram:在部分回复流式传输已交付文本后保留未发送生成的媒体,使 `image_generate` 输出仍作为照片到达 Telegram,而非从最终负载丢弃。修复 #73253。感谢 @mlaihk。 - 内存核心/梦想:跨 cron 扫描限制分离的梦想日记叙述子代理,使多工作区梦想不再扩散无界子代理会话、锁争用和级联叙述超时。修复 #73198。(#73287) 感谢 @KeWang0622。 - CLI/代理:在嵌入式 `openclaw agent --local` 运行后关闭本地一次性 Claude 实时 stdio 会话和捆绑 MCP 环回资源,同时保持网关拥有的 MCP 环回清理在网关内部。感谢 @frankekn。 - 导出/会话:在模板格式化后保持内联导出 HTML 脚本和供应商库注入,使生成的会话导出打开时带有应用代码、markdown 渲染器和语法高亮器。修复 #41862 和 #49957;继承 #41861 和 #68947。感谢 @briannewman、@martenzi 和 @armanddp。 - 代理/ACPX:将修补的 Claude ACP 适配器暂存为 ACPX 运行时依赖项,并将已知 Codex/Claude ACP 命令路由到本地包装器,使网关运行时不再依赖实时 `npx` 适配器解析。修复 #73202。感谢 @joerod26。 - 内存/压缩:让预压缩内存刷新使用精确的 `agents.defaults.compaction.memoryFlush.model` 覆盖(如 `ollama/qwen3:8b`),而不继承活动会话回退链,使本地整理可避免付费对话模型。修复 #53772。感谢 @limen96。 - macOS/更新:在包替换前停止管理的网关服务,并保持 LaunchAgent 服务密钥脱离全局可读 plist 元数据(从仅所有者环境文件加载)。修复 #72996。感谢 @Mathewb7。 - Google Meet:保持仅观察 Chrome 加入和设置检查不要求 BlackHole 或音频桥接命令,在仅观察模式下避免授予或选择麦克风,并使 `test_speech` 报告新鲜实时输出字节验证而非仅确认排队的语音。引用 #72478。感谢 @DougButdorf。 - 网关/钩子:将未传递的钩子完成和错误摘要路由到目标代理的主会话,而非默认代理会话,保持多代理钩子隔离。修复 #24693;继承来自 #68667 的聚焦诊断。感谢 @abersonFAC 和 @bluesky6868。 - Control UI/模型:请求配置的网关模型列表视图,使仅含 `models.providers.*.models` 的仪表板首先显示那些配置的模型,而非用完整内置目录淹没选择器。修复 #65405。感谢 @wbyanclaw。 - CLI/模型:当 `models.mode` 为 `replace` 时,保持默认模型和允许列表选择器在显式 `models.providers.*.models` 条目上,而非加载完整内置目录。修复 #64950。感谢 @mrozentsvayg。 - 媒体/安全:收紧媒体理解 MIME 消毒,使参数化 MIME 值保持端锚定,且格式错误的空格或后缀负载在文件上下文处理前被拒绝。修复 #9795;继承 #68225(相关审查/测试上下文来自 #61016/#68456)。感谢 @ymaxgit、@bluesky6868 和 @shamsulalam1114。 - Discord:拥有 Carbon 交互监听器并异步移交 Discord 斜杠/组件处理,使压缩或长会话锁不再触发 `InteractionEventListener` 监听器超时。修复 #73204。感谢 @slideshow-dingo。 - 压缩/诊断:保持未知压缩失败分类稳定,同时记录未分类提供商错误(如缺失 Ollama 提供商适配器)的编辑详细信息。感谢 @gzsiang。 - 模型/故障转移:记录一级 `model.fallback_step` 轨迹事件(含从/到模型、失败细节、链位置和最终结果),使支持导出在后续故障转移也失败时保留主模型失败。修复 #71744。感谢 @nikolaykazakovvs-ux。 - 网关/代理:阻止代理 `exec` 启动交互式 `openclaw channels login` 流,并在无效配置恢复恢复最后已知良好配置后中止活动代理运行,防止已知渠道登录和重载路径阻塞回复。引用 #72338。感谢 @midhunmonachan。 - 网关/诊断:发出无有效负载的活跃度警告(含事件循环延迟、事件循环利用率、CPU 核心比率、活动会话计数和 OTEL 警告指标/跨度),使活跃但停滞的网关在稳定性捆绑包和遥测中捕获 CPU 自旋上下文。引用 #72338。感谢 @midhunmonachan 和 @DougButdorf。 - 网关/启动:保持值选项前台启动在网关快速路径上,且仅当配置代理环境时跳过代理引导,减少正常网关启动 RSS 并避免完整 CLI 图加载。感谢 @vincentkoc。 - 心跳/模型:在上下文溢出重置时显示心跳模型渗漏指导(当最后运行时模型匹配配置的 `heartbeat.model`),使较小的本地心跳模型指向用户到 `isolatedSession` 或 `lightContext`,而非仅压缩缓冲区调整。修复 #67314。感谢 @Knightmare6890。 - 子代理/模型:在首次回合前将 `sessions_spawn.model` 和配置的子代理模型持久化为子会话模型覆盖,使生成的子代理实际在请求的提供商/模型上运行,而非回退到目标代理默认值。修复 #73180。感谢 @danielzinhu99。 - 渠道/Telegram:在轮询模式状态检查和启动机器人标签探测期间保持 webhook 模式本地监听器活动并重试 Telegram `setWebhook` 注册(在可恢复启动网络故障后),使瞬态 Bot API 超时不再让反向代理指向关闭的监听器。修复 #71834。感谢 @jinon86。 - 代理/ACPX:捆绑 Codex ACP 适配器并从隔离 `CODEX_HOME` 包装器启动它,再回退到 npm,使 Codex ACP 启动不再依赖实时 `npx` 解析或过时的 `@zed-industries/codex-acp@^0.11.1` 范围。修复 #72037;引用 #73202。感谢 @jasonftl、@sazora 和 @joerod26。 - 代理/ACPX:在网关启动时通过轻量级 ACP 后端 SDK 路径注册嵌入式 ACP 后端,且不导入重型 ACPX 运行时,直到 ACP 会话或显式启动探测需要它,减少基线网关 RSS。感谢 @vincentkoc。 - CLI/更新:当重启的网关可访问但尚未报告其版本时保持重启健康轮询,使 macOS 服务重启不会因 `actual unavailable` 过早失败。感谢 @ProspectOre。 - 备份:跳过已安装插件 `extensions/*/node_modules` 依赖树,同时将插件清单和源文件保留在归档中,使本地备份避免可重建的 npm 负载膨胀。修复 #64144。感谢 @BrilliantWang。 - Cron/模型:当显式 `payload.model` 不允许或无法解析时,使隔离 cron 运行失败关闭,使调度作业不会静默回退到不相关的代理默认值或付费路由,在配置的提供商代理(如 LiteLLM)运行前。修复 #73146。感谢 @oneandrewwang。 - 内存/QMD:在仍让内存状态和 CLI 探测立即重新检查时,对重复聊天回合 QMD 打开失败回退,使损坏的旁路依赖不会触发活动内存或 cron 重试风暴。修复 #73188 和 #73176。感谢 @leonlushgit 和 @w3i-William。 - 对话模式:通过活动运行时快照解析 `messages.tts.providers.<id>.apiKey`,使对话覆盖可发现 SecretRef 支持的语音提供商,而不会回退到本地语音。修复 #73109。(#73111) 感谢 @omarshahine。 - 内存/Ollama:通过其配置的 `models.providers.<id>.api` 所有者解析 `memorySearch.provider` 自定义提供商 ID,使多 GPU Ollama 设置可将嵌入专用给提供商(如 `ollama-5080`),而不丢失 Ollama 适配器或本地认证语义。修复 #73150。感谢 @oneandrewwang。 - CLI/内存:为 `openclaw memory` 命令跳过急切上下文窗口预热,使内存搜索不与无关模型元数据发现竞争。修复 #73123。感谢 @oalansilva 和 @neeravmakwana。 - CLI/Telegram:通过运行中的网关路由 Telegram `message send` 和轮询操作,使打包安装使用暂存的 `grammy` 运行时依赖项,且 CLI 发送在 Telegram 频道激活后返回而非挂起。修复 #73140。感谢 @oalansilva。 - 插件/运行时依赖项:在加载打包公共表面之前准备暂存的捆绑插件依赖项,使 OpenClaw 的 Telegram 运行时/测试外观加载从管理的运行时依赖项阶段解析 `grammy`,而无需将依赖项复制到全局包根。引用 #73140。感谢 @oalansilva。 - 代理/执行:为静默执行更新和节点主机结果块发出 `(no output)`,使 Anthropic 兼容提供商不再在安静命令后拒绝空工具结果文本。修复 #73117。感谢 @pfrederiksen 和 @Sanjays2402。 - Cron/提供商:在隔离 cron 代理回合前预检本地 Ollama 和 OpenAI 兼容提供商端点,将不可达本地提供商记录为跳过的运行,并缓存死端点探测,使许多作业不会锤击相同的停止本地服务器。修复 #58584。感谢 @jpeghead。 - 网关/配置:使配置重载在插件条目无效范围限定时以降级模式继续,使不兼容插件配置可被跳过,且网关重启可在回滚后仍选取其余配置。修复 #73131。感谢 @Adam-Researchh。 - Doctor/渠道:当受信任的外部插件拥有配置的渠道时抑制禁用的捆绑插件阻止警告,使 Lark/飞书安装在切换到 `openclaw-lark` 后不再获得飞书修复噪音。修复 #56794。感谢 @wuji-tech-dev。 - CLI/状态:显示跳过的快速路径内存检查为 `not checked`,且无需内置 `agents.defaults.memorySearch` 即从 `status --json --all` 报告活动自定义内存插件运行时状态,使 memory-lancedb-pro 和 memory-cms 等插件在自身运行时健康时不再显示不可用。修复 #56968。感谢 @Tony-ooo 和 @aderius。 - 网关/渠道:记录和记录意外清洁渠道监视器退出,使无异常返回的渠道不再显示停止且无错误。修复 #73099。感谢 @balaji1968-kingler。 - Discord/群聊:默认保持群组/频道回复私有,除非代理显式使用消息工具,使常开房间可潜伏而不泄漏自动最终、块、预览或状态反应输出;`messages.groupChat.visibleReplies: "automatic"` 恢复遗留自动发布。(#73046) 感谢 @scoootscooob。 - 插件/包:在 prepack 和包冒烟检查期间强制嵌套捆绑插件运行时依赖项安装脱离继承的 npm dry-run 模式,使打包安装具体化所需的插件模块,而非报告缺失的捆绑文件。引用 #73128。感谢 @Adam-Researchh。 - Discord:在通知关闭、公会反应禁用或允许列表模式无法匹配(无渠道覆盖)前跳过反应事件,减少导致缓慢监听器警告的重新连接爆发。修复 #73133。感谢 @isaacsummers。 - 渠道/Telegram:集中轮询更新跟踪,使接受的偏移在重启间持久,相同进程处理程序故障仍可重试,且缓慢偏移写入无法覆盖更新的接受水印。引用 #73115。感谢 @vdruts。 - 代理/模型:在接受模型故障候选前分类空、仅推理和仅规划终端代理运行,使无效或不兼容模型可前进到下一个配置故障转移,而非返回 30 秒终端失败。修复 #73115。感谢 @vdruts。 - 内存/LanceDB:让嵌入配置使用提供商支持的认证配置文件、环境凭证或提供商配置(无单独插件 `embedding.apiKey`),使 OAuth 能力嵌入提供商可为自动召回/捕获提供支持。修复 #68950。感谢 @malshaalan-ai。 - CLI/父级:无子命令调用 `openclaw <parent>`(内存、渠道、插件、批准、设备、cron、mcp)现在打印父级帮助并退出 0,匹配 `<parent> --help` 和现有 `agents`/`sessions` 默认值,使 shell `&&` 链和 pnpm 包装器不再显示误导性的 `ELIFECYCLE Command failed with exit code 1.` 行。修复 #73077。感谢 @hclsys。 - 插件/钩子:在 30 秒后超时永不解决的 `agent_end` 观察钩子并记录插件失败,使挂起的嵌入端点不再让内存捕获永久挂起。修复 #65544。感谢 @ghoc0099。 - 网关/配置:从当前插件元数据快照和生成的捆绑渠道架构元数据提供运行时配置架构,而非在每次 `config.get`/`config.schema` 上重建插件渠道配置模块,防止升级后空闲插件发现 CPU 颠簸。修复 #73088。感谢 @sleitor 和 @geovansb。 - 内存/LanceDB:通过原始 SDK 传输调用 OpenAI 兼容嵌入端点(不发送 `encoding_format`),然后归一化浮点数组或 base64 响应,使 ZhiPu 和 DashScope 等提供商不再因错误向量维度或拒绝参数而召回失败。修复 #63655。感谢 @kinthaiofficial。 - 插件/安装:使用 npm 错误级别日志(而非静默模式)运行依赖安装,使失败的插件或钩子安装显示可操作的 npm 错误(如 EUNSUPPORTEDPROTOCOL),而非 `npm install failed:` 无细节。(#73093) 感谢 @sanctrl。 - 内存/LanceDB:用新的 `recallMaxChars` 设置限制内存召回嵌入查询,在自动召回期间优先使用最新用户消息而非渠道提示元数据,并记录此旋钮,使小型 Ollama 嵌入模型避免上下文长度失败。修复 #56780。感谢 @rungmc357 和 @zak-collaborator。 - CLI/技能:从 `--agent` 解析工作区支持的技能命令,然后当前代理工作区,再回退到默认代理,使多代理 ClawHub 安装、更新和状态检查范围限定到活动工作区。修复 #56161;继承 #72726。感谢 @langbowang 和 @luyao618。 - 插件 SDK:从部分捆绑插件目录覆盖回退到包源公共表面,同时保留 `OPENCLAW_DISABLE_BUNDLED_PLUGINS` 作为硬禁用。(#72817) 感谢 @serkonyc。 - 代理/ACPX:停止转发 Codex ACP 超时配置控件(Codex 拒绝),同时保留 OpenClaw 对 ACP 子代理的运行时超时监视器。修复 #73052。感谢 @pfrederiksen 和 @richa65。 - 内存核心:流式回退向量搜索评分(带边界 top-K 结果集),使大型索引在 sqlite-vec 不可用时不会具体化每个分块嵌入。(#73069) 感谢 @parkertoddbrooks。 - 内存核心:在安全重建期间流式嵌入缓存播种,使大型本地缓存在原子重建前不会将每行具体化到 V8 堆。(#73067) 感谢 @parkertoddbrooks。 - 内存/Ollama:添加 `memorySearch.remote.nonBatchConcurrency` 用于内联嵌入索引,将默认 Ollama 非批处理索引设为一次一个请求,并保持批处理并发与非批处理并发分离,使本地嵌入回填避免较小主机上的超时风暴。继承 #57733。感谢 @itilys。 - macOS 应用:更新 Peekaboo、ElevenLabsKit 和 MLX TTS 助手依赖项,使 canvas 文件监视和配置/执行批准状态写入在并发应用/测试活动下可靠,并保持应用加助手构建无警告。感谢 @Blaizzy。 - iOS 应用:刷新 SwiftPM/XcodeGen 源卫生,使应用、扩展、watch 和策划共享 Swift 文件通过预构建 SwiftFormat 和 SwiftLint 检查,将 relay 注册移出已弃用的 StoreKit 接收 API,并保持模拟器构建和逻辑测试无警告。感谢 @ngutman。 - 代理/模型:在重复代理和子代理模型解析期间保持 `models.json` 就绪和提供商钩子缓存温暖,同时保持外部 `models.json` 失效,减少较慢 ARM64 主机上重复提供商插件加载。修复 #73075。感谢 @jochen。 - 文档/工具:阐明 `tools.profile: "messaging"` 故意狭窄,且 `tools.profile: "full"` 是更广泛命令/控制访问的无限制基线。继承 #39954。感谢 @posigit。 - Control UI/代理:在切换代理时重新挂载概览模型控件,使主模型选择器不能保留过时的每代理选择。修复 #39392;继承 #39401,注意重复 #39495 方法,并保持 #46275/#54724 更广泛稳定范围外。感谢 @daijunyi002、@SergioChan、@aworki 和 @wsyjh8。 - 自动回复:在重放不安全提供商/运行时故障后毒化入站消息重复数据删除,使重试在可见进度前安全,但块输出、工具副作用或会话进度后不能重复消息。修复 #69303;保持 #58549 和 #64606 作为重复验证。感谢 @martingarramon、@NikolaFC 和 @zeroth-blip。 - 代理/模型故障转移:直接跳转到已知的后续实时会话模型重定向,而非遍历不相关的故障候选,同时保持已着陆的实时会话/故障转移循环保护。修复 #57471;相关循环系列已通过 #58496 关闭。感谢 @yuxiaoyang2007-prog。 - 网关/Bonjour:在广告商重启期间保持 @homebridge/ciao 取消处理程序注册,使晚期探测取消不会崩溃 Linux 和其他 mDNS 混乱网关。感谢 @vincentkoc。 - 插件/启动:在网关启动时(若允许)加载默认 `memory-core` 槽,使活动内存召回可在不需要显式 `plugins.slots.memory` 条目的情况下调用 `memory_search` 和 `memory_get`,同时保留 `plugins.slots.memory: "none"`。感谢 @vincentkoc。 - 网关/插件:在遗留依赖回退前从实时网关运行时状态解析 `gateway_start` cron 钩子,使 memory-core 梦想 cron 协调在服务启动时 `deps.cron` 未填充的安装上保持工作。修复 #72835。感谢 @RayWoo。 - 插件/CLI:在 jiti 之前优先使用编译的捆绑插件 JavaScript 的本地 require,使只读配置、状态、设备和节点命令避免慢主机上不必要的转换开销。修复 #62842。感谢 @Effet。 - 插件/兼容:单独清点 doctor-side 弃用迁移与运行时插件兼容性,使发布扫描保留所需修复,同时执行日期移除窗口。感谢 @vincentkoc。 - 插件/兼容:为遗留扩展 API、内存注册、提供商钩子/类型别名、运行时别名、渠道 SDK 助手和批准/测试实用程序填充添加缺失的日期兼容性记录。感谢 @vincentkoc。 - 插件/CLI:在管理的插件文件移除后刷新持久注册表,使 ClawHub 卸载不能留下过时的 `plugins list` 条目。感谢 @vincentkoc。 - 插件/CLI:使插件安装和卸载配置写入冲突感知,清除显式重新安装/移除上的过时拒绝列表条目,并在配置/索引提交成功后才删除管理的插件文件。感谢 @vincentkoc。 - 插件:当跟踪插件或钩子更新错误时使 `plugins update` 失败,将捆绑运行时依赖项修复保留在限制性允许列表后,并拒绝带有不可加载扩展条目的包安装。感谢 @vincentkoc。 - WebChat/Control UI:在聊天上传中支持非视频文件附件,同时保留现有图像附件路径和通用图像上传的 MIME 嗅探回退。(#70947) 感谢 @IAMSamuelRodda。 - 技能/内存:通过观看具体技能和内存根(含过滤器,包括 SKILL.md 移除和删除的技能文件夹,无广泛工作区递归)恢复 Chokidar v5 热重载。修复 #27404、#33585 和 #41606。感谢 @shelvenzhou、@08820048 和 @rocke2020。 - 网关/聊天:使重复附件支持的 `chat.send` 重试使用相同幂等键在文档飞行路径上,使中止仍针对真实活动运行。修复 #70139。感谢 @Feelw00。 - 网关/聊天:合并助手聊天流增量时保留重复边界字符(包括重复数字、CJK 字符和 markdown/表标记)。修复 #63769;继承 #63994 和 #65457。感谢 @yon950905 和 @mohuaxiao。 - 插件:在安装和发现间共享包入口点解析,拒绝不匹配的 `runtimeExtensions`,并在扫描期间缓存捆绑运行时依赖项清单读取。感谢 @vincentkoc。 - WhatsApp/Web:基于 WhatsApp Web 传输活动保持安静但健康的链接设备会话连接,同时保留更长应用静默上限,使帧活动不能永久掩盖卡住的会话。修复 #70678;继承聚焦的 #71466 方法,保持 #63939 作为相关可配置超时后续。感谢 @vincentkoc 和 @oromeis。 - Discord/网关:将失败的健康监视器重启尝试计入冷却和每小时上限,并在渠道重新加载期间驱逐过时账户生命周期状态,使重复 Discord 网关恢复不能在旧状态上循环。修复 #38596。(#40413) 感谢 @jellyAI-dev 和 @vashquez。 - TTS/BlueBubbles:在 macOS 主机上向 BlueBubbles 传递文件前,将合成的 MP3 音频预转码为 opus-in-CAF(单声道、24 kHz — 针对 macOS 15.x Messages.app 原生语音备忘录 CAF 描述符验证),使 iMessage 将结果渲染为具有正确持续时间和波形 UI 的原生语音备忘录气泡,而非普通文件附件。添加可选 `tts.voice.preferAudioFileFormat` 渠道能力和 CAF 容器的魔术字节嗅探,使主机本地媒体验证器(使用 `file-type` 且不原生识别 CAF)可验证预转码缓冲区。不选择加入的渠道不受影响。(#72586) 修复 #72506。感谢 @omarshahine。 - 飞书:使用监视器拥有的退避重试 WebSocket 启动失败,同时保留 SDK 本地心跳默认值,使持久连接启动失败不再让监视器挂起。修复 #68766;相关 #42354 和 #55532。感谢 @alex-xuweilong、@120106835、@sirfengyu 和 @tianhaocui。