← 返回更新日志

OpenClaw v2026.5.10-beta.3 预发布

2026-05-11 · GitHub 原文
### 更新内容 - 构建:针对 focused、disabled、conditional、hook、matcher 和 expectation 风险启用更严格的 Vitest lint 规则。 - 构建:在共享格式化器配置中固定显式的 oxfmt 默认值,以确保跨版本升级时格式化行为保持稳定。 - TypeScript:针对隐式返回、副作用导入、覆盖(overrides)以及未使用的生产代码启用更严格的编译器检查。 - 构建:将工作区包管理升级至 pnpm 11,并保持 Docker、安装、更新和发布工作流基于 pnpm 11 配置。(#79414) 感谢 @altaywtf。 - 模型:在 OpenAI 兼容请求之前,按需启动提供程序级别的 `localService` 以启动本地模型服务器,包括一次性模型探测。 - 智能体:精简默认系统提示词指导和仅发送消息的工具模式,以减少提示词 token 消耗,同时保留 GPT-5 人格引导。 - 上下文:新增 `/context map` 命令,用于发送当前会话上下文贡献者的树状图(treemap)图像。(#79867) - Slack:为机器人 `chat.postMessage` 回复添加 `unfurlLinks` 和 `unfurlMedia` 配置(含按账户覆盖),以便在不更改工作区全局设置的情况下禁用 Slack 链接和媒体预览。修复 #48435。(#80145) 感谢 @esegev1 和 @HemantSudarshan。 - Slack:为文本和 Block Kit 线程回复添加显式的 `replyBroadcast` 支持,使智能体可选择加入 Slack 的父频道 `reply_broadcast` 行为。(#64365) 感谢 @tony88331。 - Slack:在入站提示词上下文中保留提及目标/来源的元数据,以便智能体区分对机器人的直接提及与提及他人的隐式线程唤醒。修复 #79025。(#75356) 感谢 @tmimmanuel。 - Slack:规范化指向对等用户会话的原生 DM 频道 ID 的出站交付镜像路由,使对 `D...` 目标的 `message.send` 调用不会将同一个 Slack DM 线程拆分为频道会话。修复 #80091。(#80111) 感谢 @bek91。 - 插件 SDK:弃用已存在至少一个月且无捆绑扩展生产导入的公共子路径;为保持向后兼容,保留旧的 barrel/test/zod 子路径包导出;并在 SDK 表面报告中同时追踪这两组路径。 - 插件 SDK:弃用目前仅由一两个捆绑插件所有者使用的公共子路径,保持其可导入性,同时引导新插件代码转向聚焦的共享 SDK 接口或插件自有 API。 - 插件 SDK:在将 Chutes、GitHub Copilot 和 OpenAI Codex 的认证流程移回提供程序自有模块后,移除所有者专属的 `provider-auth-login` 公共子路径。 - 插件 SDK:在将捆绑调用方移回提供程序自有模块后,从公共导出中移除提供程序专属的模型、流和 xAI 兼容性辅助函数。 - 插件 SDK:向原生插件工具工厂暴露运行时提供的活动模型元数据,用于诊断和插件自有策略决策。修复 #77857。感谢 @jamiezigelbaum。 - QA/Mantis:新增 Telegram 实时 PR 证据自动化功能,支持 Convex 租赁凭据、Crabbox 转录捕获、动态 GIF 预览及内联 PR 评论。 - QA/Mantis:新增 Telegram 桌面端场景构建器,支持租赁 Crabbox、安装原生 Telegram Desktop、使用租赁的机器人凭据配置 OpenClaw Telegram 网关,并记录 VNC 截图/视频产物。 - Discord/语音:新增实时语音诊断功能,涵盖说话人轮转、播放重置、插话检测(barge-in)及音频截断分析。 - Talk:新增 `talk.realtime.instructions`,使操作员可在保留 OpenClaw 内置智能体咨询引导的同时,追加实时语音风格指令。(#79081) 感谢 @VACInc。 - Discord/语音:测试和源码安装默认使用纯 JS 的 `opusscript` 解码器,忽略可选的原生 `@discordjs/opus` 构建,从而避免在非专用语音性能通道中执行缓慢的原生插件编译。 - Discord/语音:为实时语音性能通道新增可选的原生 `@discordjs/opus` 安装脚本和解码器偏好设置,避免为不相关的 Docker 或测试任务承担原生插件构建开销。 - 网关/技能:新增由 `skills.install.allowUploadedArchives` 控制的可选私有技能档案上传安装路径,使受信任的网关客户端仅在操作员显式启用代码安装表面时,才能暂存和安装基于 zip 的技能。(#74430) 感谢 @samzong。 - Codex 应用服务器:为测试线程启用 Codex 原生仅代码模式,使延迟执行的 OpenClaw 动态工具通过 Codex 自身可搜索的代码执行表面运行,而非通过 PI 风格的包装器。 - 依赖项:刷新工作区锁定版本和补丁目标,包括 ACPX `@agentclientprotocol/claude-agent-acp` `0.33.1`、Codex ACP `0.14.0`、Baileys `7.0.0-rc10`、Google GenAI `2.0.1`、OpenAI `6.37.0`、AWS SDK `3.1045.0`、Kysely `0.29.0`、Tlon 技能 `0.3.6`、Aimock `1.19.5` 和 tsdown `0.22.0`。 - 智能体/压缩:在嵌入式压缩和回合后运行时上下文中保留作用域内的后台执行/进程会话引用,且不暴露无关作用域的会话。修复 #79284。(#79307) 感谢 @TurboTheTurtle。 - 智能体/进程:指示智能体在发送交互式输入前使用 `process log` 检查后台会话,并利用 `log`/`poll` 返回的 `waitingForInput`/`stdinWritable` 提示。 - CLI/引导:改进 setup、onboarding、configure 和 channel 命令的导航指引,使终端流程能解释下一个有用命令,而非依赖简略的设置标签。 - 智能体/Codex:移除可配置的 Codex 动态工具配置文件,使 Codex 应用服务器始终拥有工作区、编辑、补丁、执行、进程和规划工具的管理权,同时 OpenClaw 集成工具保持可用。 - macOS 应用:将 Peekaboo 桥接依赖更新至 Peekaboo 3.0.0。 - 依赖项:刷新工作区锁定版本,并将 WhatsApp 插件从 `@whiskeysockets/baileys` 迁移至 `baileys`,同时保持 `7.0.0-rc10` 运行时。 - 插件 SDK:在分组会话命名空间下添加捆绑插件的会话操作、`sendSessionAttachment`,以及基于 Cron 的 `scheduleSessionTurn`/标签清理。替代了 #75578/#75581/#75588 以及 #73384/#74483 的部分内容。感谢 @100yenadmin。 - 插件 SDK/媒体理解:新增 `extractStructuredWithModel(...)` 以及可选的提供方侧 `extractStructured(...)` 接口,使受信任的插件能够通过提供方拥有的运行时(如 Codex)运行受限的图像优先结构化提取,并支持可选的补充文本上下文。 ### 修复 - Google/Gemini:在将清单目录行转换为发出的提供方配置时,规范化已弃用的嵌套 Gemini 3 Pro Preview ID,以便测试时使用 `google/gemini-3.1-pro-preview` 而非 `google/gemini-3-pro-preview`。 - 原生应用:声明 Gateway 协议兼容性范围,以便在增加 v4 客户端更新后,聊天和节点会话仍能连接到 v3 网关。 - 网关/智能体:在包更新后保持过时的 `sessions_send` ACP 管理器和 `web_fetch` 运行时块可导入,防止在线网关在重启前崩溃。修复 #78804。感谢 @Gomesy72。 - 网关:避免在附加后启动期间进行同步重启哨兵状态探测,防止缓慢的 Windows 系统或重定向的状态目录阻塞频道交互。修复 #79264。感谢 @liyi58。 - 智能体/认证:通过一次锁定存储写入来更新成功的模型认证配置文件状态,减少因重复保存 `auth-profiles.json` 导致的模型回复后延迟。感谢 @mcaxtr。 - 智能体/图像:即使未设置 `agents.defaults.imageModel`,也尊重显式的 `image` 工具模型覆盖,恢复为配置的多模态提供方进行一次性视觉调用。修复 #79341。感谢 @haumanto。 - Codex 应用服务器:通过上下文引擎提示词投影保留提示词局部的当前轮次上下文,使被回复的 Telegram 消息对 Codex 模型输入保持可见。 - Telegram:通过网关消息操作传递智能体作用域的媒体根目录,以防止活跃智能体的工作区本地媒体被拒绝为跨智能体访问。感谢 @frankekn。 - CLI/网关:保持 `gateway status --deep` 的插件感知能力,以便在安装和更新冒烟测试期间,配置的插件清单警告(包括缺失的频道配置元数据)保持可见。 - 飞书:当正常的群组引用回复指向已撤回或缺失的消息时,回退到顶层群组发送,防止回复静默消失,同时保留原生话题安全性。修复 #79349。感谢 @arlen8411。 - 医生(Doctor):当配置的默认智能体不是 `main` 时,停止将实时兼容性智能体目录标记为孤立。修复 #74313。(#74438) 感谢 @carlos4s。 - 认证/Claude CLI:将更新的外部 CLI OAuth 凭据持久化回 `auth-profiles.json`,防止过时的 `anthropic:claude-cli` 配置文件反复引导并刷屏调试日志。修复 #80129。感谢 @Caulderein。 - 上下文:仅从实际运行上下文渲染 `/context map`,并持久化 Codex 应用服务器运行报告,不再将延迟的工具搜索模式计为提示词加载的工具模式。 - Codex 应用服务器:向诊断系统报告 Codex 原生工具执行状态,使长期运行的原生 `bash`、网页、文件和 MCP 工具不再被看门狗误认为过时的嵌入式运行。(#80217) - Codex 应用服务器:在订阅用量限制失败后刷新 Codex 账户速率限制,以便 Discord 和其他频道回复能显示下次重置时间,而不是提示 Codex 返回无。感谢 @pashpashpash。 - 任务:将群组和频道任务完成状态路由至请求者会话,使父级智能体能够发送可见摘要,而非停留在通用的任务状态行。修复 #77251。(#77365) 感谢 @funmerlin。 - Telegram:在渲染回复中保留手动缩进的无序列表块与后续有序列表部分之间的空行。修复 #76998。感谢 @evgyur。 - Slack:通过草稿预览发送传递配置的智能体身份,使部分流式回复在初始 Slack 消息中保留自定义用户名/头像。修复 #38235。(#38237) 感谢 @lacymorrow。 - Slack:支持 `allowBots: "mentions"`,用于处理提及接收机器人的机器人撰写的消息,匹配文档中描述的 Discord 风格模式,同时避免接受所有机器人消息。修复 #43587。(#43588) 感谢 @raw34。 - Slack:当入站私聊文件事件省略或附件 URL 过期时,使用 `files.info` 刷新私有文件 URL,防止文件附件在媒体加载前被丢弃。修复 #50129。(#50200) 感谢 @smartchainark。 - Slack:添加作用域消息工具格式化提示,使智能体对普通发送使用 Markdown,对 Block Kit 字段直接使用 mrkdwn。修复 #34609。(#50979) 感谢 @carrotRakko。 - Slack:将 `download-file` 文件 ID 与消息时间戳分开描述,当智能体传入 `messageId` 而非 `fileId` 时返回针对性的恢复错误。(#74155) 感谢 @jarvis-ai-gregmoser。 - Slack:为 `requireMention=false` 的频道保留已处理的房间消息,使常驻 Slack 频道在轮次之间保持最近的对话上下文。(#38658) 感谢 @syedamaann。 - Slack:编译直接外发发送的交互式回复指令,且不绕过 `interactiveReplies` 能力门控,为 Slack CLI 和定时任务投递保留 Block Kit。(#78220) 感谢 @kazamak。 - Slack:将私聊最后路由更新限制在活跃的非主私聊会话内(包括线程私聊轮次),使隔离的 Slack 私聊会话不会覆盖共享的主路由。(#73085) 感谢 @clawSean。 - Slack/ACP:当不存在运行时绑定时,通过配置的 ACP 绑定路由 Slack 频道和私聊消息,使绑定的线程回复固定到持久化 ACP 会话,并丢弃不可用的配置目标,而不是回退到 `main`。(#73101) 感谢 @Raasl。 - Slack:将未解析的线程回复标记为歧义并跳过,而不是将其视为根频道消息,使线程续接保持在 SDK 支持参与存储中。(#75630) 感谢 @soichiyo。 - Slack:允许同频道消息工具通过 `topLevel: true` 或 `threadId: null` 退出继承的线程上下文,使代理能够从 Slack 线程内发布新的父频道消息。修复 #79807。感谢 @vexclawx31。 - Slack:优先使用完整的富文本块内容,而非截断的 socket-mode 消息预览,以确保长入站 Slack 消息完整送达代理。修复 #79027。感谢 @BobAccentWebDev。 - Slack:在设置、探测、流式传输和回复日志中包含结构化的 Slack API 错误详情,同时保留令牌脱敏。(#53966) 感谢 @deucemask。 - Gateway/代理:在活跃运行排队失败时保留结构化原因,并弃用旧的布尔值排队辅助函数,以便引导和子代理唤醒诊断能够区分已完成、非流式和压缩运行。修复 #80156。感谢 @markus-lassfolk。 - 代理/UI:通过隐藏冗余的 shell 工具名称、将已知工作区路径替换为简短上下文标记,并保留 Discord 痕迹清理以压缩命令行,从而压缩执行和工具进度行。 - ACPX:默认运行并等待嵌入式 ACP 后端启动探测,使网关 `ready` 信号不再在 acpx 运行时可用或报告探测失败前触发;设置 `OPENCLAW_ACPX_RUNTIME_STARTUP_PROBE=0` 可恢复延迟启动。修复 #79596。感谢 @bzelones。 - Gateway/状态:将模型定价的初始化和刷新失败显示为降级健康/状态警告,同时保持网关存活状态正常。修复 #79599。感谢 @bzelones。 - 兼容 OpenAI 的模型:默认从重放的 Chat Completions 历史中剥离之前的助手推理字段,防止 oMLX/vLLM Qwen 后续轮次因过时的 `reasoning` 负载而拒绝或卡住。修复 #46637。感谢 @zipzagster 和 @lexhoefsloot。 - CLI/入门引导:为非 Azure 自定义提供商提供安全生成的上下文窗口,并修复遗留的 4k 向导条目,同时不覆盖明确的有效小模型限制,防止首轮压缩循环。修复 #79428。(#79911) 感谢 @Jefsky。 - 兼容 OpenAI 的模型:新增 `compat.strictMessageKeys`,将 Chat Completions 重放消息剥离为仅含 `role` 和 `content`,以适配拒绝 OpenAI 风格工具和元数据键的严格提供商。修复 #50374。感谢 @choutos。 - Bedrock Mantle:新增 `plugins.entries.amazon-bedrock-mantle.config.discovery.enabled=false` 以抑制自动 Mantle 发现和 IAM 承载令牌生成,同时保持插件启用。修复 #67288。感谢 @kanekoh。 - Ollama:除非显式配置 `params.num_ctx`,否则停止将目录中的 `contextWindow` 或 `maxTokens` 复制到 `/api/chat` 请求的 `options.num_ctx` 中,避免本地大上下文模型出现病态的提示词摄入延迟。修复 #62267。感谢 @BenSHPD。 - Ollama:为通过本地 Ollama 主机路由的 `*:cloud` 模型保持模型空闲看门狗启用,使云支持的工具循环停滞能够显式故障转移,而不是继承本地模型的无空闲行为。修复 #79350。感谢 @geek111。 - 语音/Ollama:在经典嵌入式语音响应中遵循路由语音代理的 `tools.allow` 配置(包括空白名单),使无工具 Ollama 代理不会接收工具模式。修复 #79506。感谢 @donkeykong91。 - Gateway:在首次进程内重启循环启动后从磁盘重新读取配置,防止 SIGUSR1 重启重用过时的启动快照并丢弃启动后写入的配置。修复 #79947。感谢 @TheLevti。 - Codex 应用服务器:将 Codex `savedPath` 事件中的原生图像生成输出作为回复媒体交付,使纯文本图像生成轮次仍能附加生成的文件。感谢 @keshavbotagent。 - 网络/SSRF:当双栈主机同时发布 AAAA 记录时,保持自动 DNS 查找固定于 IPv4,并将 `EADDRNOTAVAIL` 视为瞬态网关网络故障而非致命崩溃。修复 #80078。感谢 @takamasa-aiso。 - 控制面板 UI:在会话表中显示紧凑的单行运行状态徽章(实时/空闲/终端),并将活跃分钟过滤器重命名为“更新于内”的含义。修复 #78307。感谢 @BunsDev。 - 控制面板 UI:按代理限定聊天会话列表的刷新范围,并为仅配置列表跳过仅磁盘的代理存储发现,防止在大型 Windows 存储上首次消息后切换会话时卡住。修复 #79675。感谢 @lovelefeng-glitch, @BunsDev。 - 控制面板 UI:允许通过服务的 CSP 导入外观 tweakcn 主题,使浏览器本地自定义主题链接不再因 `connect-src` 违规而失败。修复 #78504。感谢 @BunsDev。 - 媒体/主机读取:在共享主机本地媒体验证器中,除 ZIP 和文档附件外,还允许经过缓冲区验证的 gzip、tar 和 7z 归档文件。 - 插件/诊断:当插件诊断指向已删除的源路径时,使持久化的插件注册表快照失效,从而在本地扩展被托管 npm 插件替换后,`openclaw doctor` 不再重复显示过时警告。修复 #80087。(#80134) 感谢 @hclsys。 - 诊断/OpenAI Codex:在自动将遗留的 `openai-codex/*` 模型引用修复为标准的 `openai/*` 时,通过添加提供商/模型范围的 Codex 运行时策略来保留 Codex 认证意图,防止修复后的配置回退到直接使用 OpenAI API 密钥认证。修复 #78533 和 #78570。感谢 @superck110 和 @Azmodump。 - CLI/代理:在 `deliverAgentCommandResult` 和 `openclaw agent --json --deliver` 中暴露 `sendDurableMessageBatch` 的持久消息传递状态,将抑制的钩子结果保留为终端无重试结果,同时暴露部分和失败的发送状态以供自动化使用。取代 #53961 和 #57755。感谢 @Kaspre。 - 代理:在提供商流设置仍待处理时应用 LLM 空闲看门狗,防止无声的流前模型挂起等待完整的代理超时时间。 - 定时任务:允许隔离的自清理运行检查其自身的作业运行历史,同时阻止其他 cron 作业和变更操作。修复 #80019。感谢 @hclsys。 - 定时任务:当未发起模型调用时,使用阶段特定的超时错误来报告孤立的智能体回合设置和模型调用前阻塞,而不是等待完整的作业预算。修复 #74803。感谢 @jeffsteinbok-openclaw 和 @dgkim311。 - CLI/插件:将插件 CLI 元数据之外的任意未知子命令视为普通未知命令,而不是建议 `plugins.allow`,同时保留对真实插件命令根目录的白名单指引。修复 #80109。(#80123) 感谢 @kagura-agent。 - CLI/配置:持久化显式 `config set` 和 `config patch` 中等于运行时默认值的参数,而不是报告成功却将其丢弃。修复 #79856。(#80106) 感谢 @abodanty 和 @hclsys。 - OpenAI/实时语音:接受兼容 Codex 的旧版音频和转录事件别名,以防提供商协议差异导致助手音频或字幕丢失。 - Discord/语音:防止默认智能体代理实时会话在强制 OpenClaw 咨询回答前自动朗读填充内容,在实时响应完成时结束 Discord 播放,并将后续的精确语音回答排队至播放空闲时,以避免句子中途替换。 - 网关:对格式错误的编码会话终止 HTTP 路径返回确定的 `400 invalid_request_error` 响应,而不是让路由格式请求穿透到后续的网关处理器。(#72439) 感谢 @rubencu。 - 控制面板 UI:从 `/__openclaw__/` SPA 路由提供根目录 PWA 和图标资源,以便内部导航后标签页图标、安装元数据和 Service Worker 不再返回 404。修复 #80072。感谢 @CodeNovice2017。 - OpenAI/实时语音:本地尊重禁用的输入音频中断设置,以便在操作员设置 `interruptResponseOnInputAudio: false` 后,服务器 VAD 语音开始事件不会清除 Discord 播放。 - Telegram:保持无回复的私信回合静默,而不是将其重写为可见的静默回复闲聊。修复 #78188。(#78228) 感谢 @Beandon13。 - Telegram:在原始回调回退之前处理托管的选择按钮回调,同时保留包含分隔符的选项值(如 `env|prod`)。(#79816) 感谢 @moeedahmed。 - OpenAI 兼容模型:处理返回给流式请求的 JSON 聊天补全主体,保留推理字段和可见文本,而不是完成空智能体回合。修复 #77870。 - Discord/模型:在加载路由、模型和偏好数据之前延迟模型选择器组件交互,防止网关负载下出现“此交互失败”超时。修复 #77283。感谢 @colin-chang。 - xAI:为具备推理能力的 Grok 模型暴露 `/think low|medium|high`,并在原生 Responses 负载中保留 `reasoning.effort`,同时为非推理路由保留仅关闭行为。修复 #79210。感谢 @colinmcintosh。 - CLI/媒体:允许显式图像描述模型引用使用内置的静态提供商目录和通用模型支持的图像钩子,使 `openclaw infer image describe --model zai/glm-4.6v` 能像直接运行模型一样工作,并避免 Anthropic 身份验证探测使用过时的 Claude 3 Haiku 目录条目。 - 模型/Anthropic:当配置了 Anthropic 默认模型时,将 `anthropic/claude-haiku-4-5` 添加到 Anthropic API 密钥智能体白名单默认值中,以便定时任务模型覆盖能选择当前的 Haiku 别名。修复 #78000。 - 智能体/压缩:在 CLI 转录压缩解析默认引擎之前初始化内置上下文引擎,防止在 CLI 会话持久化期间出现全新进程 `legacy` 引擎注册失败。修复 #79446。感谢 @TurboTheTurtle。 - 智能体/Anthropic 兼容:为明确声明 `supportsReasoningEffort: false` 的自定义 Anthropic 兼容模型剥离重放的思考块,防止 Kimi 兼容提供商重新发送不支持的 `thinking` 内容。修复 #47452。 - 浏览器:延长现有会话 Chrome MCP 状态和非深度诊断探测的等待时间,使首次附加缓慢时不会错误报告离线,同时保持原始 CDP 状态探测时间短。(#77473) 感谢 @rubencu。 - 网关/日志:在前台网关快速路径解析之前安装控制台捕获,并在详细模式下抑制已知的 libsignal 会话转储,防止原始终端日志打印 WhatsApp 会话密钥材料。(#76306) 感谢 @rubencu。 - 执行审批:将 `exec.approval.list` 保留在轻量级策略摘要路径上,以便列出待处理审批时不再加载丰富的 tree-sitter 命令解释器。(#76943) 感谢 @rubencu。 - 智能体:当 `exec`/`bash` 工具调用在助手声称成功后失败时,显示简洁的默认可见警告,同时除非启用详细详情,否则保持原始 stderr 隐藏。修复 #60497。(#80003) 感谢 @jbetala7。 - 智能体:在分发前停止空白的模型生成工具调用,同时保留基于 ID 的工具名称恢复机制,防止 Kimi/NVIDIA 空白名称重试循环,且不创建可调用的 `_blank` 哨兵。修复 #34129。(#56391) 感谢 @smartchainark。 - 智能体/Telegram:传递标准的最终助手回答,而不是重放累积的预工具文本块,防止重复的 Telegram 回复和看起来像原始的工具输出片段泄露到聊天投递中。修复 #79621 和 #79986。感谢 @nonzeroclaw 和 @dudaefj。 - 自动回复/TUI:在主模型生命周期错误后,通过输出回退进度并将终端 TUI 错误延迟至恢复有机会完成时,保持回退超时恢复的可投递性。修复 #80000。(#80009) 感谢 @TurboTheTurtle。 - 心跳:当配置的默认模型更改时清除过时的自动回退模型覆盖,使心跳运行遵循更新后的 `agents.defaults.model.primary`,而无需手动重置。修复 #74284。感谢 @brtkwr 和 @bitloi。 - CLI/智能体:允许 `openclaw agent --model` 使用后端/管理员网关作用域,而不会因缓存的设备令牌作用域静默降级请求。(#78837) 感谢 @VACInc。 - CLI/帮助:保持帮助和版本调用无需配置,同时改进共享端口、频道、插件、任务、会话、消息、配对和身份验证恢复文本。 - CLI/config:通过有效示例和纯字符串备用方案解释严格 JSON 解析失败的原因。 - CLI/secrets:将离线 Gateway 重载失败转换为可操作的恢复提示文本。 - CLI/channels:通过后续命令解释通道选择缺失或模糊的问题。 - CLI/channels:将引导式通道状态收集推迟到选择通道之后,使 `openclaw channels add` 的首屏输出更简洁。 - CLI/channels:在取消引导式通道设置时干净退出,而不是打印内部向导错误。 - Plugins/CLI:将禁用的 Matrix 和 LanceDB 内存命令根路径路由至插件启用引导,而非通用的“未知命令”错误。 - Browser/Docker:从 `PLAYWRIGHT_BROWSERS_PATH` 和 Linux 上的默认 Playwright 缓存检测 Playwright 管理的 Chromium,因此持久化 `/home/node/.cache/ms-playwright` 的 Docker 安装不再需要 `browser.executablePath`。 - Ollama:即使 Ollama Cloud `/api/show` 省略了 `thinking` 能力,仍保持 DeepSeek V4 云模型的思考能力,因此 `/think high` 不再拒绝 `ollama/deepseek-v4-*:cloud`。 - ACPX/Claude ACP:当同一会话中到达自主任务通知结果时,保持前台提示符等待其自身结果,并将补丁重新定位至 Claude Agent ACP `0.33.1`。 - WhatsApp:在 `7.0.0-rc10` 中防止 Baileys 媒体上传将非 Dispatcher 代理传递给 undici,并修补内置 Baileys 声明,使最新的 tsdown 构建保持无警告。 - Build:通过外部化已知的第三方声明边缘,并将相对通道配置模块增强替换为显式内置通道字段,使 tsdown `0.22.0` 构建保持无警告。 - ACP sessions:将标准运行时选项映射到后端声明的 ACP 配置键(如 Claude 的 `effort`),同时保持持久化的 OpenClaw 状态为标准。(#79926) 感谢 @InTheCloudDan。 - Models/Discord:在 `agents.defaults.models` 中支持 `provider/*` 条目,使 `/model`、`/models` 和模型选择器能够显示所选提供商的动态发现模型,而无需精确的模型白名单。修复 #79485。感谢 @rendrag-git。 - Gateway/watch:从源码签出启动 Gateway 之前,重新构建或重新打包缺失的内置插件 dist 和 runtime-postbuild 输出,防止不完整的 watch 模式运行时树。(#70805) 感谢 @rubencu。 - CLI/update:允许在自更新期间从上一版 Gateway 协议进行重启健康探测,并使插件干运行报告精确的 npm 目标版本而非 `unknown`,同时保留未更改状态。 - OpenAI/Codex:在标准 `openai/*` 迁移后,将持久化的 `openai-codex` OAuth 配置文件元数据转发至 Codex 插件运行环境尝试中,使仅 OAuth 安装继续使用原生 Codex 认证,而非回退到直接 OpenAI API 密钥认证。修复 #79978。 - OpenAI/Codex:将 Gateway 缺失密钥恢复和向导文档指向标准的 `openai/gpt-5.5` 及 Codex OAuth 路由,并修复轨迹导出错误,使其提示有效的 `openclaw sessions` 命令。 - Google/Gemini:在配置加载和无关配置写入期间,标准化已弃用的 `google/gemini-3-pro-preview` 主配置、回退配置和模型映射引用,使保存的配置继续指向 Gemini 3.1 Pro Preview。 - Google/Gemini:标准化输出 Google 提供商模型配置内的已弃用 Gemini 3 Pro Preview ID,使重新生成的 models.json 行匹配 `google/gemini-3.1-pro-preview`。 - Google/Gemini:为标准 OpenAI 兼容 Google 和 Gemini CLI 提供商配置中的已弃用 Gemini 3 Pro Preview ID 进行标准化,使输出配置指向 `google/gemini-3.1-pro-preview`。 - Google/Gemini:对从现有合并 models.json 提供商中保留的已弃用 Gemini 3 Pro Preview ID 进行标准化,使配置输出继续指向 `google/gemini-3.1-pro-preview`。 - Google/Gemini:标准化提供商认证配置补丁内的已弃用 Gemini 3 Pro Preview ID,使设置输出的提供商目录匹配 `google/gemini-3.1-pro-preview`。 - GitHub Copilot:使用运行时请求相同的 `vscode-chat` 集成身份签发短期 Copilot API 令牌,并刷新缺少该身份的传统缓存令牌,使支持图像的 Copilot 模型不再继承 `copilot-language-server` 作用域。修复 #79946, #80074。感谢 @TurboTheTurtle。 - Plugins/doctor:当 `openclaw doctor --fix` 移除遮蔽内置插件的 npm 包时,丢弃过期的托管 npm 安装记录,使重建的注册表不再恢复已删除的包元数据。 - Discord/voice:复用或抑制延迟的实时咨询工具调用,而不窃取较新的说话者上下文或重复播报强制回退答案。 - Discord/voice:跳过可能不完整的实时强制咨询转录片段和非可操作结尾,使过时的部分语音不会在下一次交互中排队延迟答案。 - Discord/voice:防止实时强制咨询清除正在进行的精确语音播放,使连续语音答案排队而非互相打断。 - Discord/voice:从输出的 Discord PCM 合成实时播放时间戳,使 OpenAI 实时插话截断不再看到 `audioEndMs=0` 并跳过合法中断。 - Plugin SDK:当禁用内置插件回退时,保持已激活的链接插件运行时代理层可加载。感谢 @shakkernerd。 - Feishu:当活跃会话为 group_topic 或 group_topic_sender 时,在主题内自动将 `message(action="send")` 回复设为线程回复,并通过文本、卡片和媒体出站适配器传播 `replyInThread`,使主题范围会话不再发布到群组根目录。修复 #74903。(#77151) 感谢 @ai-hpc。 - WhatsApp:将路由上下文传入语音笔记转录回显预检,使回显的转录可投递至原始聊天。修复 #79778。(#79788) 感谢 @hclsys。 - 定时任务/故障转移:将结构化的 OpenAI 兼容 `server_error` 负载分类为 `server_error`,在定时任务状态中暴露该原因,并使一次性定时任务重试策略尊重 `retryOn: ["server_error"]`,无需依赖原始 `5xx` 文本。(#45594) 感谢 @clovericbot。 - Slack:在交互式回复按钮/选择器点击后唤醒已解决的线程会话,并通过排队交互事件传递 Slack 投递上下文,使点击能继续可见的对话。修复 #79676 和 #61502。(#79836) 感谢 @velvet-shark、@tianxiaochannel-oss88 和 @Saicheg。 - WhatsApp/流式传输:当文本结束块回复在工具调用周期中重复之前的引导语时,仅发送新增的后缀,防止 WhatsApp 引导语消息累积。修复 #78946。(#79120) 感谢 @brokemac79 和 @papawattu。 - 测试/安全审计:将 `audit-exec-surface.test.ts` 沙箱化至每个用例的 OpenClaw 主目录临时目录中,重定向 `OPENCLAW_HOME`(在 `resolveRawHomeDir` 中优先级高于 `HOME`/`USERPROFILE`)以及 `HOME` 和 `USERPROFILE`,使其 `saveExecApprovals(...)` 调用绝不会触碰运行测试套件的主机上的真实 `~/.openclaw/exec-approvals.json`。同类的 exec-approvals 测试已使用临时目录模式;此文件未使用,因此在贡献者的本地签出代码上运行 `pnpm test` 会静默截断其真实审批记录为 `{ "version": 1, "agents": {} }`。(#79885) 感谢 @omarshahine。 - ACP/网关:在生命周期边界内保留 `AcpRuntimeError` 的异常原因链(代码/方法/JSON-RPC 详情),使网关日志、Telegram 回复和工具结果文本显示实际的上游故障,而非模糊的 `Internal error`/`[object Object]`,并在异常链到达日志或回复界面之前应用脱敏处理。 - 渠道/iMessage:当已安装的 imsg 版本声明支持该功能时(通过 `imsg send-rich --help` 探测一次并缓存私有 API 状态),将 `action: "reply"` 附件通过 `imsg send-rich --file` 接入。回复现在通过共享的出站解析器填充 `media`/`mediaUrl`/`fileUrl`/`mediaUrls[0]`/`filePath`/`path`/base64 `buffer`+`filename`,通过现有的 `withTempFile` 辅助函数暂存缓冲区,使用指向 `send` 完整附件解析管道的定向错误拒绝 `http(s)://` URL 附件,并在旧版 imsg 构建中回退到明确的 `imsg#114 not landed yet` 错误。依赖于上游 `openclaw/imsg#114` 功能落地到可安装版本;在此之前,新路径保持受限,用户将看到之前引入的明确回退 `#79822`。(#79864) 感谢 @omarshahine。 - Telegram:在追加真正的部分流式增量时保留首次预览的防抖机制,使编辑草稿预览时,当提供商输出增量内容时不再重复之前的文本。(#80045) 感谢 @TurboTheTurtle。 - 代理/Anthropic:即使本地模型配置仍声明为 200k,也为 Claude Opus/Sonnet 4 模型报告 1M 会话上下文,以匹配模型发现机制并防止状态/UI 过早溢出。修复 #66766。 - 模型/OpenRouter:在 `/model status` 中隐藏缺少认证的直接提供商行,当它们仅被嵌套的 OpenRouter 模型 ID(如 `openrouter/google/...`)重复时,同时保留显式配置的直接提供商。修复 #62317。 - 模型:当另一个提供商拥有相同的裸模型别名时,保留显式选择的提供商/模型(如 `opencode-go/deepseek-v4-pro`)。修复 #79325。 - 模型/配置:当模型仅存在于 `agents.defaults.models` 中时,解释缺失的 `models.providers.<provider>.models[]` 注册信息,而不是返回裸未知模型错误。修复 #80089。 - MCP/工具:为以数字开头的捆绑 MCP 服务器/工具片段添加前缀,确保生成的工具名称对 Moonshot/Kimi 及其他严格提供商有效。修复 #79179。 - 模型/OpenRouter:将 `403 API key budget limit exceeded` 视为计费问题,使模型回退机制继续推进,而不是重试已耗尽的主模型。修复 #60191。感谢 @omgitsgela。 - 模型/OpenRouter:修复丢失外层 `openrouter/` 提供商包装器的过期会话覆盖,使会话返回配置的 OpenRouter 模型,而不是作为未知直接提供商模型失败。修复 #78161。感谢 @hjamal7-bit。 - Google/Gemini:将默认 API 密钥引导配置改回 `google/gemini-3.1-pro-preview`,使新的 Gemini 测试配置能够测试 Gemini 3.1 Pro Preview。 - Telegram:在模型选择器中显示嵌套 OpenRouter 模型 ID 的完整提供商/模型标签,使 `openrouter/openai/gpt-5.4-mini` 不再显示为 `openai/gpt-5.4-mini`。修复 #67792。(#72752) 感谢 @iot2edge。 - 模型/OpenRouter:保留实时的 `supported_parameters` 工具支持元数据,使非工具型 Perplexity Sonar 模型不再接收代理工具负载并避免不必要的回退。修复 #64175。感谢 @Catfish-75。 - 模型/OpenRouter:将 MoonshotAI Kimi K2.5 添加到捆绑的 OpenRouter 目录中,使引导/模型选择器无需等待实时发现即可提供该模型。修复 #14601。 - 模型/OpenRouter:使基于 keyRef/tokenRef 的认证配置文件对只读 PI 模型发现可见,从而 OpenRouter 模型在模型选择器中保持可用,而无需存储明文密钥。修复 #58106。感谢 @ThalynLabs。 - 模型/列表:在默认配置视图中包含显式配置的提供商行和只读认证支持的目录行,无需加载 PI 的完整注册表,使控制面板 UI 选择器与可用的模型认证保持一致。引用 #79381。感谢 @ismael-81。 - 安全/审计:在报告小模型 Web/浏览器暴露时尊重 `tools.byProvider["provider/model"].deny`,使每模型的 OpenRouter 缓解措施能够清除 `models.small_params` 暴露信号。修复 #80118。 - 模型/Moonshot:接受直接的 `moonshotai/...` 和 `moonshot-ai/...` 引用作为标准 `moonshot/...` 的别名,使复制的 OpenRouter Kimi ID 不再作为未知直接模型失败。修复 #73876。(#74946) 感谢 @jeffrey701。 - Kimi Code:在内置目录、引导流程和文档中使用 Kimi 稳定的 `kimi-for-coding` API 模型 ID,同时规范化旧的 `kimi-code` 和 `k2p5` 引用。修复 #79965。 - Telegram:将缓存的回复目标和附近群组聊天渲染为单个选定的对话上下文窗口,使过时的回复不再将 JSON 回复链与本地聊天上下文割裂。 - Volcengine/Kimi:为直连和编程计划模型移除提供商不支持的工具 schema 长度和项约束关键字,以便托管的 Kimi 运行环境不再拒绝带有 `minLength` 的消息工具。修复 #38817。 - DeepSeek:为非自有的 OpenAI 兼容代理提供商回填 V4 `reasoning_content` 回放字段,防止在内置的 DeepSeek 和 OpenRouter 路由之外发生后续请求失败。修复 #79608。 - iMessage:当操作因未附加 imsg 私有 API 桥接而被阻止时,输出 WARN 级别日志,使运维人员能在 `~/.openclaw/logs/openclaw.log` 中看到静默丢弃记录,而无需查阅每次会话轨迹的 JSONL `tool.result` 负载。网关重启后未从 Messages.app 注入 dylib 时常见此情况。(#80035) 感谢 @omarshahine。 - Codex:在 schema 验证前交叉填充缺失的 `thread.id` 和 `thread.sessionId`,使未包含 `sessionId` 的实时 Codex 应用服务器响应不再导致 `thread/start` 或 `thread/resume` 失败。修复 #80124。(#80137) 感谢 @kagura-agent。 - Agents/Pi:在释放会话写锁前等待嵌入式中止清理完成,防止后续交互轮次与之前的提示词清理发生竞态条件。(#80239) 感谢 @samzong。 - WhatsApp:将 OpenClaw 看门狗触发的 Web 重连从运行时错误降级为恢复警告,并在下次成功连接后清除已恢复的重连状态。(#77026) 感谢 @rubencu。