← 返回更新日志

OpenClaw v2026.5.16-beta.2 预发布

2026-05-16 · GitHub 原文
### 变更 - Providers/xAI:为 SuperGrok 订阅用户添加 xAI Grok OAuth 登录,让 `xai/*` 模型及 xAI 媒体/工具提供商无需 `XAI_API_KEY` 即可进行身份验证。 - CLI/cron:添加 `openclaw cron run --wait`,支持超时和轮询间隔控制,以及精确的 `cron.runs --run-id` 过滤,使自动化能够阻塞等待某个已排队的手动运行。(#81929)感谢 @ificator。 - 维护者工具:将 Crabbox 技能默认值通过仓库代理的 AWS 配置路由,将 Blacksmith Testbox 设为显式加入选项,而非广泛默认值。 - CLI/入门向导:将设置向导和捆绑频道设置流程本地化为英语、简体中文和繁体中文。(#80645)感谢 @GaosCode。 - Agents/skills:在热网关轮次之间缓存已水合的 `resolvedSkills`,同时通过修订后的有效配置键控重用,减少冗余的技能快照重建,而不跨越配置门控的技能边界。(#81451)感谢 @solodmd。 - Telegram/群组聊天:添加可选的 `messages.groupChat.ambientTurns: "room_event"` 处理,使始终在线的环境闲聊可以作为安静的房间上下文运行,并仅通过消息工具显式发言。(#81317)感谢 @obviyus。 - Codex/上下文引擎:将线程引导投影纪元绑定到 Codex 应用服务器线程,将修订后的工具结果上下文带入新线程,并在投影状态变化时轮换后端线程。(#82351)感谢 @jalehman。 ### 修复 - Telegram:在重启重放时持久化轮询更新,使排队中的同主题消息按顺序恢复,而不是在网关重启后丢失上下文。(#82256)感谢 @VACInc。 - Gateway/Gmail:在关闭前中止正在进行的 Gmail 监视器启动和热重载重启,防止在网关即将关闭时重新加载产生 `gog serve`。感谢 @frankekn。 - MCP 插件工具:通过 `createPluginToolsMcpHandlers().callTool` 将主机 MCP `tools/call` 的 `AbortSignal` 转发到插件的 `tool.execute`,使主机取消操作实际上会中止正在进行的插件工具调用,而不是让它们运行完成。修复 #82424。(#82443)感谢 @joshavant。 - Media:当字节嗅探为通用容器时,忽略图像 MIME 和文件名提示,使被误标为图像的 zip/octet-stream 负载不会成为本地图像媒体,也不会在暂存时保留图像文件扩展名。 - Update/doctor:避免为拒接接受 `groupAllowFrom` 的频道模式实现化该字段,使包交换医生修复不会在外部化的 Slack 配置上失败。 - Gateway/media:防止图像文件名覆盖通用的非图像字节嗅探,使被误标为图像的 zip/octet-stream 负载在成为内联图像附件之前被卸载或拒绝。 - Plugins/web search:将过时的可选提供商安装降级为警告,使网关和医生修复路径在启动提供商选择后继续运行。参考 #82313。感谢 @crackmac。 - Telegram/Gateway:将针对性的 Telegram `/stop@bot` 消息路由到控制通道,无需缓存机器人元数据,并在原始/规范会话别名上匹配网关停止请求。(#82298)感谢 @VACInc。 - MS Teams/media:在暂存前嗅探内联 `data:image/*` 附件字节,跳过实际上不是图像的负载。 - Update:让 `doctor --fix` 包交换在插件模式仍在收敛时持久化核心配置修复,防止在外部化频道配置上更新失败。 - Update:将插件验证绕过带入配置变异预写读取,使包更新医生修复能够在外部化插件模式收敛时完成。 - Update/doctor:在顶级 `$include` 配置写入路径上保持插件验证绕过,使包修复可以更新包含的插件配置文件,而无需将其展平到根配置中。 - Agents/subagents:在生命周期清理失败时发出警告并继续完成公告清理,防止已结束的子智能体运行成为静默幽灵。修复 #82306。感谢 @SebTardif。 - Telegram:让授权的文本 `/stop` 命令在排队智能体工作之前使用快速中止路径,使活动轮次立即停止,而不是在轮次完成后才处理中止;外来机器人 `/stop@otherbot` 提及现在保持在常规主题通道上,而不是被路由到我们的控制通道。修复 #82162。感谢 @civiltox。 - Sessions:删除具有无效会话 ID 的持久化条目,并在水合会话运行时状态之前清除格式错误的转录文件元数据。 - Auth/device:在返回或保留令牌条目之前规范化格式错误的持久化设备认证令牌元数据。 - Pairing:在批准有效通道配对码之前跳过格式错误的持久化待处理配对请求。 - Commitments:在匹配待处理后续项之前,从持久化承诺中清除格式错误的可选提醒范围元数据。 - Config persistence:规范化格式错误的认证配置文件凭证字段/状态,跳过 JSON 有效的垃圾转录检查点行,并让 `openclaw doctor --fix` 删除不可修复的 cron 作业行。 - Cron:跳过内存中格式错误的计划或负载形状的持久化作业行,将存储留给 `openclaw doctor --fix` 而非将其水合到运行时状态。 - Cron:在持久化作业之前拒绝空的主/隔离计划负载,使运行时存储与格式错误行的强化保持兼容。 - Task persistence:从任务和任务流 SQLite 副表中删除格式错误的数组/标量请求者来源 JSON,而不是将其恢复为交付元数据。 - Agents/timeouts:澄清模型空闲超时错误和文档,使提供商 `timeoutSeconds` 显示为受整个智能体/运行超时上限的约束。 - 发布工具:对齐已发布的启动器 Node 最低版本、`npm start`、包脚本检查、分片 lint 锁定、Vitest 根项目覆盖率以及插件 SDK 声明构建缓存元数据,使发布/包验证不会静默跳过或提供过时的表面。 - Cron/agents:对于隔离的调度运行,遵循配置的子智能体模型回退,并将该回退策略转发到嵌入式智能体超时故障转移。修复 #74985。感谢 @chrisgwynne。 - Codex 应用服务器/MCP:通过可选的 `mcp.servers.<name>.codex.agents` 列表将用户 MCP 服务器限定到特定的 OpenClaw 智能体 ID,并接受 `codex.defaultToolsApprovalMode`(`auto`/`prompt`/`approve`)作为原生 Codex 批准默认值;OpenClaw 在将 `mcp_servers` 配置交给 Codex 之前会剥离 `codex` 块。(#82180)感谢 @sercada。 - Agents/OpenAI Responses:将 `input_tokens - cached_tokens` 限制为零,并从输入 + 输出 + 缓存组件中重构 `totalTokens`,使 Responses-API 流在提供商相对于 `cached_tokens` 低估 `input_tokens` 时报告一致的用量。 - Agents:将适配器捕获的工具执行失败标记为嵌入式 Pi 会话中的错误工具结果,使模型可以重试可恢复的编辑失败,而不是看到成功的工具结果。修复 #81546。(#81564)感谢 @najef1979-code 和 @MonkeyLeeT。 - Plugins:在安装、发现和后更新负载烟雾测试期间,拒绝格式错误的 `package.json` 中的 `openclaw.extensions` 元数据,而不是静默丢弃无效条目。 - Plugins:拒绝其 `package.json` 解析到插件根目录之外的包元数据记录,而不是信任持久化或重建的注册表快照。 - Plugins:忽略格式错误的持久化包通道/安装元数据,而不是崩溃目录重建或泄露无效安装提示。 - Plugin releases:拒绝会从 npm 插件 tarball 中省略广告的包本地运行时条目的包 `files` 否定。 - Media/files:在信任声明的 MIME 头部之前嗅探 `input_file` 字节,在伪造的图像或 zip 负载成为智能体可见文本之前拒绝它们。 - Plugins/dependencies:清除过时的托管根 `openclaw` 所有权元数据,而不删除链接的活动主机包,防止插件安装降级 npm 全局主机。修复 #79462。感谢 @lisandromachado。 - Gateway/update:将关闭钩子运行器导入保持在稳定的 dist 入口上,并提供一个旧版块别名,使包交换不会因缺少关闭块而困住运行中的网关。修复 #81819。感谢 @najef1979-code。 - Config persistence:忽略格式错误的数组/标量认证配置文件、cron 作业状态和会话存储条目,而不是将它们水合为数字配置文件 ID、崩溃的 cron 行或无效的会话记录。 - Config persistence:在加载时清除格式错误的待处理最终交付会话字段,使重放/恢复路径跳过中毒的回复元数据,而不是在原始对象上崩溃。 - Config persistence:在加载时清除格式错误的插件扩展状态和提升的会话槽所有权,使损坏的会话行不会将中毒的插件元数据泄漏到重放/投影路径中。 - Gateway/sessions:在会话投影期间忽略格式错误的压缩检查点行,使损坏的存储不会使会话列表/描述响应崩溃或显示虚假的检查点计数。 - Gateway/sessions:当导入的树转录引用缺失或旧版的父行时,保留可访问的转录历史,防止部分导入后会话历史读取变为空。 - Providers:拒绝格式错误的成功 Runway、BytePlus 和 Ollama 嵌入响应,使用提供商拥有的错误而不是原始解析器/类型失败、静默的坏向量或长时间的虚假轮询。 - Providers/images:拒绝格式错误的成功 OpenAI 兼容、OpenAI、Google、fal 和 OpenRouter 图像响应,使用提供商拥有的错误而不是原始形状失败、静默的无效 base64 跳过或空图像结果。 - Providers/videos:拒绝格式错误的成功 xAI、OpenRouter 和 fal 视频创建、轮询和结果响应,使用提供商拥有的错误而不是原始解析器失败或长时间的虚假轮询。 - Providers/audio:拒绝格式错误的成功 OpenAI 兼容、ElevenLabs 和 Deepgram 语音响应,使用提供商拥有的错误而不是原始解析器失败、形状错误的转录或被视为音频的 JSON/文本主体。 - Providers/embeddings:拒绝格式错误的成功 OpenAI 兼容、Google Gemini 和 Amazon Bedrock 嵌入响应,而不是静默返回空或强制转换的向量。 - Providers/catalogs:拒绝格式错误的成功 LM Studio、GitHub Copilot、DeepInfra、Vercel AI Gateway 和 Kilocode 模型列表响应,使用提供商拥有的错误而不是原始解析器/类型失败或静默的回退目录。 - Providers/polling:拒绝数组、null 或标量的成功操作状态响应,使用提供商拥有的格式错误 JSON 错误,而不是等待超时。 - ACPX/Codex:在包装器崩溃后启动时回收插件本地 Codex ACP 适配器孤儿,同时保持直接适配器命令不受启动租约注入的影响。修复 #82364。(#82459)感谢 @joshavant。 - Telegram:通过渲染回退文本和内联按钮来发送仅展示负载,而不是将其视为空。修复 #82404。(#82449)感谢 @joshavant。 - Trajectory export:跳过并报告 `manifest.json` 中格式错误的会话/运行时 JSONL 行,而不是让形状错误的会话行使支持包导出崩溃。 - Voice calls:持久化拒绝的入站通话重放密钥,使重复的运营商 webhook 重试在网关重启后保持忽略。 - Config/doctor:在 `openclaw doctor --fix` 期间,将已启用回退的频道 `allowFrom` 条目复制到显式的 `groupAllowFrom` 允许列表中,以保留当前群组访问权限,而无需添加运行时回退转换标志。 - Config/doctor:在 `openclaw doctor --fix` 期间,从受信任的目录元数据中替换仅来源的官方 Brave 和 Slack 插件安装,解除外部化库存插件升级后的恢复障碍。(#82425)感谢 @joshavant。 - Agents/bootstrap:在工作区设置清理失败后,忽略过时的已完成的根 `BOOTSTRAP.md` 上下文,防止频道智能体轮次将其视为目录。(#82463)感谢 @joshavant。 - Update/doctor:在 `openclaw doctor --fix` 期间重新启用 Codex 插件(当配置的 OpenAI 智能体模型需要 Codex 运行时),防止升级后的配置因未注册的 Codex 框架而失败。修复 #82368。(#82502)感谢 @joshavant。 - Configure:显示一个 OpenAI 提供商条目,包含 ChatGPT/Codex 登录和 API 密钥选择,并将浏览过的 Codex 模型保留在已保存的 `/model` 选择器允许列表中。 - Agents/model fallback:在延迟配置重新加载期间(当会话回退来源存在但 `modelOverrideSource` 缺失时),保留自动回退链。修复 #81982。感谢 @joshavant。 - Hooks:将有限制的网关生命周期钩子等待预算提高到关闭 5 秒和预重启 10 秒,使短重启通知处理器有时间在关闭继续之前完成。(#82273)感谢 @bryanbaer。 - Plugin releases:在 npm 插件发布计划中要求外部包兼容性元数据,与 ClawHub 包合约匹配后再发布包。 - Agents/OpenAI-compatible:在嵌入式 OpenAI 补全运行中遵循每个模型的 `max_completion_tokens`/`max_tokens` 参数,使高 token 的 Kimi 风格路由保持其配置的补全上限。修复 #82230。感谢 @albert-zen。 - Agents/local:在受信任的 `openclaw agent --local` 运行周围安装本地网关请求作用域,使子智能体完成公告可以使用进程内网关调度而不会崩溃。修复 #82140。感谢 @Kushmaro。 - Cron:防止失败的独立智能体运行在仅交付失败通知时将成功结果标记为已交付。修复 #72985。感谢 @Allenbluff。 - Discord:在规范化频道历史之前验证消息读取结果,并使用 Discord 边界错误报告意外负载,而不是 `map is not a function`。修复 #82252。感谢 @jessewunderlich。 - Agents/runtime:将 `agents.defaults.models["provider/*"].agentRuntime` 作为提供商范围的模型运行时策略应用,同时保留精确的模型运行时优先级。修复 #82243。感谢 @rendrag-git。 - Agents/auto-reply:将 `NO_REPLY` 提示指导限制为自动群组/频道回复,删除旧版的静默回复重写,并抑制意外的直接聊天静默令牌,而不是交付回退文本。修复 #82254。感谢 @absol89。 - Telegram:当最终回调仅携带省略号截断的快照时,保留更长的部分流预览,防止可见答案和转录镜像被短预览替换。修复 #82239。感谢 @crash2kx。 - Telegram/active-memory:通过 Telegram 提供程序为直接消息轮次运行阻塞记忆召回,即使钩子上下文携带原始聊天 ID,防止嵌入式召回针对无效的数字频道启动。修复 #82177。感谢 @cslash-zz。 - Control UI/WebChat:防止乐观的图像消息嵌入大型内联 `data:` 预览,并在聊天历史中保留纯图像用户轮次,避免在发送图像附件时浏览器堆栈溢出。修复 #82182。感谢 @ExploreSheep。 - Agents/media:为生成的音乐和视频完成交接保留仅消息工具的交付,使群组/频道完成在发布生成的附件之前不会结束。 - Telegram:在轮询重连确认新的 `getUpdates` 活动后排出排队的出站交付,使陈旧的套接字和网络恢复不会使失败的回复搁浅。修复 #50040。参考 #82175。感谢 @dmitriiforpost-commits 和 @shellyrocklobster。 - Gateway/model auth:当通过网关控制平面移除已保存的认证时,中止活动的提供商运行,刷新实时运行时认证快照,并向客户端显示 `stopReason: "auth-revoked"`。修复 #81987。(#82346)感谢 @joshavant。 - Codex 应用服务器:在 `custom_tool_call_output` 通知后保持原始工具输出空闲看门狗处于待命状态,使工具后流沉默快速失败,而不是等待终端空闲超时。修复 #82274。(#82378)感谢 @joshavant。 - Codex 应用服务器:对 Codex 原生应用服务器 shell 和批准路径强制执行 OpenClaw `before_tool_call` 策略,防止原生工具执行绕过插件策略。修复 #82372。(#82496)感谢 @joshavant。 - Telegram:当假脱机的入站积压停滞而 Bot API 轮询仍然成功时,将隔离的轮询入站标记为不健康,使网关/频道健康在 Telegram DM 处理卡住后不再保持绿色。修复 #82175。感谢 @shellyrocklobster。 - Telegram:在批准 ID 过期后从隔离轮询中删除过期的批准回调,使陈旧的内联按钮更新不会在重启间永远重试。修复 #82347。(#82455)感谢 @joshavant。 - Agents:从交付的回复中剥离带有属性或自闭合语法的 Gemini/Gemma `<final>` 标签,包括严格的 final 标签流式执行。修复 #65867。感谢 @grizdum。 - macOS/update:当 `openclaw update` 从其中一个启动时,解除旧版 `ai.openclaw.update.*` LaunchAgents,防止 KeepAlive 重启循环反复重启网关并重放更新延续。修复 #82167。感谢 @DougButdorf。 - Agents/replay:从提供商重放和待处理最终交付恢复中剥离内部运行时上下文元数据和 `NO_REPLY` 哨兵,使重启和心跳恢复不会将控制文本反馈给模型。修复 #76629。感谢 @fuyizheng3120、@bryan-chx 和 @cael-dandelion-cult。 - Agents/replay:在对嵌入式助手空白填充进行去重时,跳过格式错误的转录尾部行,防止截断的 JSONL 在重放恢复期间重复最终的助手回复。 - LINE:在智能体处理之前确认已签名的 webhook 事件,使慢速模型回复不会导致 LINE `request_timeout` 交付失败。修复 #65375。感谢 @myericho。 - LINE:停止 cron 恢复从规范会话密钥中推断小写的 LINE 接收者,使长时间运行的任务回复不会静默重试不可交付的推送目标。修复 #81628。(#81704)感谢 @edenfunf。 - TTS:即使提供商的输出本身不是语音兼容,也保留从频道派生的语音便签交付给 `/tts audio` 回复。(#82174)感谢 @xuruiray。 - Codex 应用服务器:在镜像的用户提示上保留入站发送者元数据和源频道来源,包括失败快照,使频道历史保留原始发送者身份。(#82184)感谢 @zknicker。 - Codex 应用服务器:在嵌入式运行通知之间将投影器工作让给事件循环,同时保留轮次前速率限制捕获,减少来自帐户和 MCP 状态通知的网关延迟。修复 #81936。(#82333)感谢 @joshavant。 - Plugins/web search:在网关启动期间启动配置的 web_search 提供商插件,包括允许列表后的自动启用外部提供商。修复 #82313。(#82376)感谢 @joshavant。 - Codex account/status:将仅元数据的速率限制桶视为已返回但为空,使 `/codex status` 和 `/codex account` 报告 `none returned` 而不是计数幻影限制。 - Codex/Lossless:保持 Codex 显式压缩在原生应用服务器线程上,同时允许 Lossless 通过上下文引擎槽;`openclaw doctor --fix` 现在将旧版 `compaction.provider: "lossless-claw"` 配置迁移到 `plugins.slots.contextEngine`。 - Cron/doctor:报告带有显式 `payload.model` 覆盖的调度作业,包括提供商命名空间计数和默认模型不匹配,使过时的 cron 模型固定在认证或计费调查中可见。修复 #82151。感谢 @mgonto。 - Codex 应用服务器:在最后一个非助手当前轮次项目完成后保持短轮次完成空闲看门狗处于待命状态,使安静的 Codex 应用服务器在外部尝试超时之前释放 OpenClaw 会话通道。修复 #82171。(#82172)感谢 @funmerlin。 - Providers/OpenRouter:停止向助手工具调用重放消息添加空的 DeepSeek V4 `reasoning_content` 占位符,并在后续聊天补全请求之前剥离空的重放工件,使 `openrouter/deepseek/deepseek-v4-pro` 在工具使用后不再失败。修复 #82150。(#82158)感谢 @luyao618 和 @Suquir0。 - OpenAI 兼容提供商:在决定是否发送 `stream_options.include_usage` 时遵守流式用量兼容性元数据,同时将捆绑的 Volcengine 路由保持为选择 Ark 流式用量。参考 #44845。(#82181)感谢 @xuruiray。 - Gateway/approvals:将 `turnSourceTo` 视为 `canBridgeNoDeviceChatApprovalFromBackend` 中的可选字段,与 `turnSourceAccountId` 和 `turnSourceThreadId` 的现有可选处理一致。没有接收者概念的频道(webchat、control-ui)在批准快照和重放参数上将 `turnSourceTo` 设为 null,因此先前的必需字符串检查拒绝了每个后端重放并返回 `APPROVAL_CLIENT_MISMATCH`。跨频道重放仍受必需的 `turnSourceChannel` 和 `sessionKey` 检查门控。修复 #82132。(#82136)感谢 @ottodeng。 - OC Path:添加 `openclaw path set --dry-run --diff`,使地址编辑可以作为统一差异在写入前进行审查。 - Cron:在隔离的 cron 模型和交付解析之前加载运行时插件,使外部频道可以被选择用于调度运行。(#82111)感谢 @medns。 - Cron:将成功的直接调度交付镜像到目标会话的转录中,同时保留隔离交付感知策略。(#80786)感谢 @cavit99。 - Cron:在会话绑定的调度运行压缩后保留旋转后的转录身份,使 `sessionTarget: "current"` 将下一个用户消息保持在同一对话中。修复 #82164。感谢 @weissfl。 - Twitch:保持网关帐户运行直到关闭,而不是将成功的监视器启动视为干净的频道退出,防止立即自动重启循环。修复 #60071。(#81853)感谢 @edenfunf。 - Agents/auto-reply:当通用智能体运行失败回退决定是否发送可见回退文本时,遵循 `agents.defaults.silentReply` 和每个表面的群组静默回复策略。修复 #82060。(#82086)感谢 @taozengabc。 - Discord:将频道主题上下文渲染为结构化不可信元数据包含在回复提示中,并停止重复入站消息主体或暴露原始 `EXTERNAL_UNTRUSTED_CONTENT` 信封。修复 #82168。感谢 @ronan-dandelion-cult。 - Codex 应用服务器:一旦 Codex 接受轮次,就启动短空闲看门狗,使没有当前轮次进度的已接受轮次在外部模型超时之前释放 OpenClaw 会话通道。修复 #82129。感谢 @Francois3d。 - Agents/replies:还在相邻的已剥离工具调用 XML 块之后,当 `<function_response>` 工作流程输出变得可见时将其剥离,关闭 #47444 中剩余的清菌剂泄漏。感谢 @5toCode。 - Control UI/WebChat:当用户点击可见的输入 chrome 时聚焦编辑器,并恢复更大、带标签的桌面编辑器控件,同时保留紧凑的移动触摸。修复 #45656。感谢 @BunsDev。 - Discord:默认抑制出站消息上的生成链接嵌入,使智能体发送的 URL 保持为纯链接,除非禁用了 `channels.discord.suppressEmbeds`。 - 系统事件:将所有者降级保留在结构化元数据中,同时将排队的提示文本渲染为纯 `System:` 行,保留最低权限唤醒,而无需提示可见的信任标签。(#82067) - Gateway/agents:当诊断检测到过时的原生工具调用时,中止活动的嵌入式运行,防止嵌套智能体会话在重启恢复期间保持死锁。修复 #81976。(#82369)感谢 @joshavant。 - Slack:默认关闭出站机器人链接展开,使智能体发送的 URL 不再扩展为内联预览,除非启用了 `channels.slack.unfurlLinks`。(#82123)感谢 @kibi-bsp。 - Slack:当稍后同一轮次的工具警告正常交付时,保持已完成的草稿预览回复可见,而不是清除编辑过的答案。修复 #81903。(#81979)感谢 @neeravmakwana。 - Providers/Xiaomi:在多轮工具调用重放中保留 MiMo `reasoning_content`,包括自定义 Xiaomi 兼容代理路由,使后续轮次不再因 `400 Param Incorrect` 失败。修复 #81419。(#81589)感谢 @lovelefeng-glitch 和 @jimdawdy-hub。 - Slack/plugins:在压缩智能体可见系统事件之前,通过 Slack 交互式处理器路由插件拥有的模态 `view_submission` 和 `view_closed` 事件,使插件可以持久化完整的提交表单状态,同时保持转录紧凑。修复 #82102。感谢 @shannon0430。 - Providers/Xiaomi:将旧版 MiMo V2 仅推理最终答案提升为可见文本,包括 Xiaomi 兼容代理路由,使 `mimo-v2-pro` 和 `mimo-v2-omni` 回复在答案出现在 `reasoning_content` 中时不再显示为空白。修复 #60261。(#60304)感谢 @HiddenPuppy。 - Providers:为 Kimi K2.6/K2 思考和 MiMo V2.6 OpenAI 兼容工具调用后续轮次保留必需的 `reasoning_content` 重放,同时保持标准 OpenAI/Qwen 剥离路径不变。修复 #82139。感谢 @yimao。 - Memory search:停止对内存和 QMD 监视器使用 chokidar 写入稳定性轮询,使大型 Markdown extraPath 树不再积累常规文件描述符;更改的文件现在通过现有的去抖动同步队列稳定下来。修复 #77327 和 #78224。(#81802)感谢 @frankekn、@loyur 和 @JanPlessow。 - Message tool:将暴露给模型的 Discord 频道创建模式字段从 `type` 重命名为 `channelType`,避免 NVIDIA NIM JSON 模式解析器失败,同时仍然接受旧版 `type` 工具调用。(#78920)感谢 @YashSaliya。 - Feishu:将 CardKit 流式卡片作为已交付的增量发送,并重试失败的更新,防止重复或丢失流式文本。修复 #82417。(#82419)感谢 @hclsys。 - Gateway/Gmail:在热重载之前停止排队的就绪后 Gmail 副车,并中止过时的 Tailscale 设置,使取消的监视器重启不会重写旧的公共钩子目标或将中止杀死的命令报告为成功。(#82395)感谢 @samzong。