← 返回更新日志

OpenClaw v2026.4.26

2026-04-28 · GitHub 原文
## 2026.4.26 ### 变更 - **Control UI/Talk**:新增通用浏览器实时传输协议,支持使用受限临时令牌的 Google Live 浏览器 Talk 会话,并为仅后端的实时语音插件提供 Gateway 中继。感谢 @VACInc。 - **CLI/models**:通过显式源计划路由提供商标记的模型列表,使用户配置、已安装的清单行、Provider Index 预览和限定范围的运行时回退保持稳定的权威顺序,且无需新增目录缓存。感谢 @shakkernerd。 - **Providers**:将 Cerebras 作为捆绑插件添加,包含入门引导、静态模型目录、文档和插件拥有的端点元数据。 - **Memory/OpenAI-compatible**:为异步嵌入端点添加可选的 `memorySearch.inputType`、`queryInputType` 和 `documentInputType` 配置,包括直接查询嵌入和提供程序批量索引。继承自 #63313 和 #60727。感谢 @HOYALIM 和 @prospect1314521。 - **Ollama/memory**:为 `nomic-embed-text`、`qwen3-embedding` 和 `mxbai-embed-large` 内存搜索查询添加模型特定的检索查询前缀,同时保持文档批次不变。继承自 #45013。感谢 @laolin5564。 - **Plugins/providers**:将预运行时模型 ID 标准化、提供程序端点主机元数据和 OpenAI 兼容请求系列提示移至插件清单中,使核心不再携带捆绑提供程序的路由表。 - **Plugins/config**:弃用直接的插件配置加载/写入辅助工具,转而使用传递的运行时快照和具有显式重启后续策略、扫描器防护、运行时警告和基于修订的缓存失效的事务性变更辅助工具。 - **Plugins/install**:允许 `OPENCLAW_PLUGIN_STAGE_DIR` 包含分层的运行时依赖根目录,在将缺失依赖安装到最终可写根目录之前解析只读预安装依赖。修复 #72396。感谢 @liorb-mountapps。 - **Control UI**:添加原始配置待处理差异面板,可解析 JSON5,在显示前对敏感值进行脱敏,并在打开面板时避免虚假的原始编辑回调。参考 #39831;取代 #48621 和 #46654。感谢 @JiajunBernoulli 和 @BunsDev。 - **Control UI**:优化快速设置仪表板网格,使常用卡片在桌面、平板和移动布局中对齐,且不浪费水平空间。感谢 @BunsDev。 - **Matrix/E2EE**:添加 `openclaw matrix encryption setup` 以启用 Matrix 加密、引导恢复并通过一个设置流程打印验证状态。感谢 @gumadeiras。 - **Agents/compaction**:添加可选的 `agents.defaults.compaction.maxActiveTranscriptBytes` 预检触发器,当活动 JSONL 过大时运行常规本地压缩,要求转录轮换以便成功的压缩将未来轮次移至更小的后继文件,而不是原始字节分割历史。感谢 @vincentkoc。 - **CLI/migration**:添加捆绑的 Claude 导入器,可预览和应用 Claude Code 和 Claude Desktop 指令、MCP 服务器、技能、命令提示符以及安全存档/手动审查状态。感谢 @vincentkoc。 - **CLI/migration**:添加 `openclaw migrate`,包含计划、演练、JSON、迁移前备份、入门检测、仅存档报告副本以及捆绑的 Hermes 导入器(用于配置、内存/插件提示、模型提供程序、MCP 服务器、技能和支持的凭据)。感谢 @NousResearch。 ### 修复 - **Gateway/device tokens**:停止在共享/管理员 `device.token.rotate` 响应中回显轮换的承载令牌,同时保留仅令牌客户端在重新连接前所需的同设备令牌交接。(#66773) 感谢 @MoerAI。 - **Agents/sessions_spawn**:使用目标代理运行时默认提供程序解析配置的裸模型别名以进行生成模型覆盖,在不相关的活动会话修剪路径之外继承特定别名的 #69029 审查修复。修复 #59681。感谢 @HowdyDooToYou。 - **Control UI/Talk**:保持 Google Live 浏览器会话使用 WebSocket 传输,而非回退到 WebRTC;验证浏览器 Google Live WebSocket 端点;限制每个浏览器连接的 Gateway 中继会话;并移除未使用配置的 Talk/TTS 提供程序的过时浏览器原生语音按钮。感谢 @BunsDev。 - **Gateway/startup**:在插件引导计划插件加载之前,在启动自动启用中重复使用配置快照插件清单。感谢 @shakkernerd。 - **Agents/subagents**:对显式的同代理 `sessions_spawn(agentId=...)` 调用强制执行 `subagents.allowAgents`,而非自动允许请求者自定目标。修复 #72827。感谢 @oiGaDio。 - **ACP/sessions_spawn**:允许显式 `sessions_spawn(runtime="acp")` 引导轮次在 `acp.dispatch.enabled=false` 时运行,同时仍阻止自动 ACP 线程调度。修复 #63591。感谢 @moeedahmed。 - **CLI/update**:将 npm 全局更新安装到经过验证的临时前缀,然后再将包树交换到位,防止混合的新/旧安装和过时的打包文件破坏 `openclaw update` 验证。感谢 @shakkernerd。 - **Gateway**:跳过前台 Gateway 运行的 CLI 启动自重启,以便低内存 Linux/Node 24 主机通过相同的路径(如直接 `dist/index.js`)启动,且不会在日志前挂起。修复 #72720。感谢 @sign-2025。 - **Google Meet**:通过浏览器控制授予 Meet 媒体权限,并将本地 Chrome 音频默认值固定为 `BlackHole 2ch`,使加入的代理不再显示“需要权限”或使用 macOS 默认音频设备。感谢 @DougButdorf。 - **Gateway**:将未捕获的损坏管道流错误(如 `EPIPE`)视为非致命,因此 Discord 传递或关闭的管道在回复准备后不再导致 Gateway 崩溃。 - **Google Meet**:通过 OpenClaw 浏览器控制路由本地 Chrome 加入,而非原始默认 Chrome,以便代理在打开 Meet 时使用配置的 OpenClaw 浏览器配置文件。感谢 @oromeis。 - **Plugins/discovery**:在全局和工作区插件根目录中跟随符号链接的插件目录,同时忽略损坏的链接并保留现有的包安全检查。修复 #36754;继承自 #72695 和 #63206。感谢 @Quackstro、@ming1523 和 @xsfX20。 - **Plugins/install**:在安装安全扫描期间跳过测试文件和目录,同时仍强制扫描声明的运行时入口点,因此打包的测试模拟不再阻止插件安装。修复 #66840;继承自 #67050。感谢 @saurabhjain1592 和 @Magicray1217。 - **Plugins/install**:在安装安全扫描期间允许精确的包管理器对等链接回受信任的 OpenClaw 主机包,同时继续阻止欺骗或嵌套逃逸的 `node_modules` 符号链接。继承自 #70819。感谢 @fgabelmannjr。 - **Plugins/install**:跨 CLI、ClawHub、市场、本地路径和频道设置安装,从活动配置文件状态目录解析插件安装目标,因此 `openclaw --profile <name> plugins install ...` 不再写入默认配置文件。修复 #69960;继承自 #69971。感谢 @FrancisLyman 和 @Sanjays2402。 - **Plugins/registry**:当跟踪的 npm 安装插件故意覆盖具有相同 ID 的捆绑插件时,抑制重复插件启动警告。继承自 #48673。感谢 @abdushsk。 - **Plugins/startup**:在每个插件发现传递中重复使用规范的 realpath 查找,包括包和清单边界检查,因此 Windows npm 全局启动不再对相同的插件根重复昂贵的路径解析。修复 #65733。感谢 @welfo-beo。 - **Gateway/proxy**:将 `ALL_PROXY` / `all_proxy` 传递到全局 Undici 环境代理调度器和提供程序代理获取辅助工具,同时仅在 `HTTP_PROXY` / `HTTPS_PROXY` 上保持 SSRF 受信代理自动升级,因此网关/提供程序调用支持所有代理设置,而不削弱受保护的获取。修复 #43821;继承自 #43919。感谢 @RickyTong1。 - **Providers/LiteLLM**:在非交互式 API 密钥入门期间遵守 `--custom-base-url`,且不添加代理发现副作用,因此脚本化远程 LiteLLM 设置保持请求的端点,而非回退到 localhost。继承自 #66160。感谢 @dongs0104。 - **Reply/link understanding**:将媒体和链接预处理保持在稳定的运行时入口点上,并在可选丰富化失败时继续使用原始消息内容,因此包含 URL 的消息在过时的运行时块升级后不再被丢弃。修复 #68466。感谢 @songshikang0111。 - **Discord**:当隐藏的 `/model` 调度成功但绑定的线程会话存储仍过时(包括 LM Studio 后缀模型 ID)时,持久化路由的模型选择器覆盖。继承自 #61473。感谢 @Nanako0129。 - **Nodes/CLI**:添加 `openclaw nodes remove --node <id|name|ip>` 和 `node.pair.remove`,以便可以清理过时的网关拥有的节点配对记录,而无需手动编辑状态文件。 - **Gateway**:在初始 `hello-ok` 快照中包含连接的客户端和新的在场版本,因此客户端不再需要后续事件即可看到自己在线。 - **Docker**:在 slim 运行时镜像中安装 CA 证书包,因此容器化网关的 HTTPS 调用在 `bookworm-slim` 基础切换后不再失败 TLS 设置。修复 #72787。感谢 @ryuhaneul。 - **Providers/OpenRouter**:移除已退役的 Hunter Alpha 和 Healer Alpha 静态目录行,并禁用过时 Hunter Alpha 配置的代理推理注入,因此当 OpenRouter 在推理字段中返回答案文本时,回复不会隐藏。修复 #43942。感谢 @EvanDataForge。 - **Providers/reasoning**:允许 Groq 和 LM Studio 声明提供程序原生推理努力值,因此 Qwen 思维模型接收 `none`/`default` 或 `off`/`on`,而非仅 OpenAI 的 `low`/`medium` 值。修复 #32638。感谢 @Aqu1bp、@mgoulart、@Norpps 和 @BSTail。 - **Local models**:默认仅具有 `baseUrl` 的自定义提供程序为 Chat Completions 适配器,并自动信任环回模型请求,因此本地 OpenAI 兼容代理接收 `/v1/chat/completions` 而不会超时。修复 #40024。感谢 @parachuteshe。 - **Channels/message tool**:在共享消息目标架构和 Discord 歧义错误中公开 Discord、Slack 和 Mattermost `user:`/`channel:` 目标语法,因此按数字 ID 发送 DM 在找到 `user:<id>` 之前不再耗尽重试。修复 #72401。感谢 @garyd9、@hclsys 和 @praveen9354。 - **Agents/tools**:将工具循环检测历史限定在可用时的活动运行范围内,因此调度的心跳周期不再从先前运行继承过时的重复调用计数。修复 #40144。感谢 @mattbrown319。 - **Agents/subagents**:当子代理绑定到不同频道帐户时,保留请求者传递以进行完成公告,同时保持同频道线程完成路由到子线程。感谢 @sfuminya。 - **Agents/subagents**:当完成传递缺少请求者会话信号时,失败关闭而非选择单个子线程绑定。感谢 @suyua9。 - **Agents/status**:当提供程序省略使用元数据时,从自动压缩持久化后压缩令牌估计,因此 `/status` 和会话列表在压缩后继续显示新鲜的上下文使用情况。修复 #67667;继承自 #72822。感谢 @Jimmy-xuzimo 和 @skylight-9。 - **Control UI**:当延迟仪表板面板升级后无法加载时,显示加载、重新加载和重试状态,因此日志选项卡在过时的浏览器捆绑包上不再空白。修复 #72450。感谢 @sobergou。 - **Gateway/plugins**:当单个插件条目具有无效的架构配置时,以降级模式启动 Gateway,并让 `openclaw doctor --fix` 隔离该插件配置,而非使每个频道崩溃循环。修复 #62976 和 #70371。感谢 @Doraemon-Claw 和 @pksidekyk。 - **Agents/plugins**:跳过缺少架构对象的格式错误的插件工具并报告插件诊断,因此一个损坏的工具不再导致 Anthropic 代理运行崩溃。修复 #69423。感谢 @jmnickels。 - **Agents/reasoning**:恢复完全包装的未闭合` 回复(否则将清理为空文本),同时严格剥离闭合推理块和可见文本后的未闭合尾部。修复 #37696;取代 #51915。感谢 @druide67 和 @okuyam2y。 - **Control UI/Gateway**:将 WebChat 握手绑定到其活动套接字,并拒绝关闭后的服务器注册,因此中止的连接不再留下僵尸客户端或误导性的重复 WebSocket 连接日志。修复 #72753。感谢 @LumenFromTheFuture。 - **Agents/fallback**:将模糊的提供程序失败拆分为 `empty_response`、`no_error_details` 和 `unclassified`,并向结构化回退日志添加平面回退步骤字段,以便后续回退也失败时主模型失败保持可见。修复 #71922;参考 #71744。感谢 @andyk-ms 和 @nikolaykazakovvs-ux。 - **Gateway/startup**:在配置验证中重复使用插件清单注册表,因此限制性插件允许列表避免启动期间的重复清单传递。感谢 @shakkernerd。 - **Gateway/startup**:从编写的源配置运行插件自动启用,并跳过禁用的设置探测,避免运行时默认插件允许列表写入和启动期间的第二个配置快照读取。感谢 @shakkernerd。 - **Plugins/Windows**:在将捆绑插件模块传递给 Jiti 之前标准化 Windows 绝对路径,因此飞书/Lark 消息发送不再因不支持的 `c:` ESM 加载器 URL 而失败。修复 #72783。感谢 @jackychen-png。 - **CLI/doctor**:通过异步 npm 安装程序(带旋转器/行进度和心跳更新)运行捆绑插件运行时依赖修复,因此长的 `openclaw doctor --fix` 安装在 TTY 或管道输出中不再看起来挂起。修复 #72775。感谢 @dfpalhano。 - **Feishu/Windows**:在 Jiti 评估之前标准化捆绑频道辅助加载,因此飞书出站发送不再因 Windows 上原始的 `C:` ESM 加载器错误而失败。修复 #72783。感谢 @jackychen-png。 - **Agents/tools**:比较工具循环结果时忽略易失的 `exec` 运行时元数据,因此启用的循环检测可以停止重复的相同 shell 命令结果,而不是在持续时间、PID、会话或 cwd 更改时重置。修复 #34574;取代 #41502。感谢 @gucasbrg 和 @Zcg2021。 - **Agents/fallback**:将内部实时会话模型切换冲突分类为未知回退失败,而非提供程序过载,防止本地 vLLM 端点接收误导性的过载冷却。参考 #63229。感谢 @clawdia-lobster。 - **Discord**:允许线程会话继承父频道会话级 `/model` 覆盖作为仅模型回退,而无需启用父转录继承。修复 #72755。感谢 @solavrc。 - **Gateway/plugins**:跳过其匹配插件不再可发现的过时配置频道,将清理指向 `openclaw doctor --fix`,并保持不相关的频道拼写错误为致命,因此一个缺失的频道插件不再导致 Gateway 崩溃循环。修复 #53311。感谢 @futhgar。 - **Control UI**:在 WebSocket 连接后保持会话特定的助手身份加载权威,因此非主代理聊天会话在引导刷新后不再在标题中显示主代理名称。修复 #72776。感谢 @rockytian-top。 - **Agents/Qwen**:保留具有外部 `api` 所有者的精确自定义 `modelstudio` 提供程序配置,因此显式 OpenAI 兼容 Model Studio 端点不再标准化到捆绑的 Qwen 插件路径。修复 #64483。感谢 @FiredMosquito831。 - **MCP/bundle-mcp**:在保存时将 CLI 原生 `type: "http"` MCP 服务器条目标准化为 OpenClaw `transport: "streamable-http"`,通过 doctor 修复现有配置,并保持嵌入式 Pi 不回退到这些服务器的遗留 SSE GET 优先启动。修复 #72757。感谢 @Studioscale。 - **OpenCode**:为代理的 Claude 模型公开 Anthropic Opus/Sonnet 4.x 思维级别,因此 `/think xhigh`、`/think adaptive` 和 `/think max` 与直接 Anthropic 提供程序一致验证。修复 #72729。感谢 @haishmg 和 @aaajiao。 - **Media-understanding/audio**:将遗留 `audio.transcription.command` 配置中已弃用的 `{input}` 占位符迁移到 `{{MediaPath}}`,因此自定义音频转录器在 doctor 修复后不再接收字面占位符。修复 #72760。感谢 @krisfanue3-hash。 - **Ollama/WSL2**:当 GPU 支持的 WSL2 安装将 CUDA 可见性与使用 `Restart=always` 的自动启动 `ollama.service` 结合时发出警告,并记录 systemd、`.wslconfig` 和保持活动缓解措施以防止崩溃循环。继承自 #61022;修复 #61185。感谢 @yhyatt。 - **Ollama/onboarding**:针对已安装的 `:latest` 标签对建议的裸本地模型去重并跳过冗余拉取,因此设置显示已安装的模型一次,且不再说正在下载已可用的模型。修复 #68952。感谢 @tleyden。 - **Memory-core/doctor**:默认将 `doctor.memory.status` 保留在缓存路径上,且仅对显式深度探测运行实时嵌入 ping,防止慢速本地嵌入后端阻塞 Gateway 状态检查。修复 #71568。感谢 @apex-system。 - **Memory/QMD**:当安装的 QMD 支持多个 `-c` 过滤器时,将同源集合分组到一个 QMD 搜索调用中,同时保持较旧 QMD 构建的每集合回退。修复 #72484;取代 #72485 和 #69583。感谢 @BsnizND 和 @zeroaltitude。 - **Memory/QMD**:接受 QMD 状态向量计数变体,如 `Vectors = 42`、`Vectors:42` 和 `Vectors: 42 embedded`,因此 `memory status --deep` 不再报告健康 QMD 包装器不可用嵌入。修复 #63652;继承自 #63678。感谢 @apoapostolov 和 @WarrenJones。 - **Memory/QMD**:在词法 `searchMode: "search"` 中跳过 QMD 向量状态探测和嵌入维护,因此仅 BM25 的 QMD 设置在 ARM 上不会在状态检查或嵌入周期中触发 llama.cpp/Vulkan 构建。修复 #59234 和 #67113。感谢 @PrinceOfEgypt、@Vksh07、@Snipe76、@NomLom、@t4r3e2q1-commits 和 @dmak。 - **Memory/QMD**:在内存状态中报告实时监视器脏状态,因此更改的 QMD 支持内存文件显示为脏,直到排队的同步完成。修复 #60244。感谢 @xinzf。 - **Compaction**:跳过过大的预压缩检查点快照,并从压缩输入和轮换的后继转录中修剪重复的长用户轮次,防止重试风暴在检查点周期中保留。修复 #72780。感谢 @SweetSophia。 - **Control UI/Cron**:将 cron 作业提示和运行摘要渲染为仪表板中的净化 markdown,具有全宽块内容、更安全的链接点击,以及当失败运行无摘要时无重复错误文本。取代 #48504。感谢 @garethdaine。 - **Control UI/Gateway**:在相同端口上跨 localhost、127.0.0.1 和 IPv6 回环别名保留 WebChat 客户端版本标签,避免在调查重复消息报告时误导性的 `vcontrol-ui` 连接日志。参考 #72753 和 #72742。感谢 @LumenFromTheFuture 和 @allesgutefy。 - **Agents/reasoning**:将带有后续答案文本的孤立闭合推理标签视为跨传递、历史记录、流式传输和 Control UI 净化器的隐私边界,因此格式错误的本地模型输出无法泄露思维链文本。修复 #67092。感谢 @AnildoSilva。 - **Memory-core**:通过瞬态内置和 QMD 管理器运行一次性内存 CLI 命令,因此 `memory index`、`memory status --index` 和 `memory search` 不再启动可能命中 macOS `EMFILE` 限制的长期文件监视器。修复 #59101;继承自 #49851。感谢 @mbear469210-coder 和 @maoyuanxue。 - **Agents/ACP**:将 Claude ACP 适配器与 OpenClaw 一起发货,并需要 Claude 结果消息,然后空闲才能完成提示,防止父代理在长时间运行的 `sessions_spawn(runtime: "acp", agentId: "claude")` 子代理上过早唤醒。修复 #72080。感谢 @siavash-saki 和 @iannwu。 - **CLI/tasks**:通过精简 JSON 路径路由 `tasks --json`、`tasks list --json` 和 `tasks audit --json`,因此只读任务检查不再加载不相关的插件/运行时命令图。修复 #66238。感谢 @ChuckChambers。 - **Memory-core**:在 `memory_search` 或 `memory_get` 执行时重新解析活动运行时配置,因此由 `config.patch` 进行的提供程序更改停止在现有工具实例中留下过时的嵌入后端。修复 #61098。感谢 @BradGroux 和 @Linux2010。 - **WebChat**:将裸 `/new` 和 `/reset` 启动指令保留在可见聊天历史之外,同时保留 `/reset <note>` 作为用户可见的转录本文本。修复 #72369。感谢 @collynes 和 @haishmg。 - **Tasks/memory**:在计时器和关闭前对任务、Task Flow、代理捕获和内置内存数据库检查点和截断 SQLite WAL 辅助文件,限制长期运行的网关 `*.sqlite-wal` 增长。修复 #72774。感谢 @dfpalhano。 - **CLI/doctor**:当过时的插件修复移除缺失的频道插件时,移除悬空的频道配置、心跳目标和频道模型覆盖,防止 Gateway 启动循环在失败的插件重新安装后。修复 #65293。感谢 @yidecode。 - **Control UI/Gateway**:在频道注册更改时缓存、合并、 stale-refresh 和失效有效工具清单,同时重复使用网关绑定的插件注册表并避免模型/身份验证发现,因此聊天运行不再在重复的插件/模型设置上停滞 Control UI 请求。修复 #72365;取代 #72558。感谢 @Gabiii2398 和 @1yihui。 - **Channels/setup**:在 `channels add` 和入门期间将捆绑的频道插件视为已捆绑,启用它们而无需写入冗余的 `plugins.load.paths` 条目或路径安装记录。修复 #72740。感谢 @iCodePoet。 - **WhatsApp**:对 QR 登录 WebSocket 连接遵守网关 `HTTPS_PROXY` / `HTTP_PROXY` 环境变量,同时尊重 `NO_PROXY`,因此代理网络不再回退到直接 `mmg.whatsapp.net` 连接(导致 408 超时)。修复 #72547;取代 #72692。感谢 @mebusw 和 @SymbolStar。 - **Bonjour**:默认将 mDNS 通告设置为系统主机名(当它是 DNS 安全时),避免 `openclaw.local` 探测冲突和像 `Lobster` 或 `ubuntu` 这样的主机上的 Gateway 重启循环。修复 #72355 和 #72689;取代 #72694。感谢 @mscheuerlein-bot、@gcusms、@moyuwuhen601、@pavan987、@zml-0912、@hhq365 和 @SymbolStar。 - **Agents/OpenAI-compatible**:为 `openai-completions` 端点重试播放安全的空 `stop` 轮次,因此瞬时的空本地后端响应在继续成功时不再显示为“代理无法生成响应”,并恢复 `openclaw agent --model` 用于一次性 CLI 运行。修复 #72751。感谢 @moooV252。 - **Git hooks**:在格式化和重新暂存预提交文件时跳过忽略的暂存路径,因此当 `.gitignore` 新忽略暂存的合并内容时,合并提交不再中止。修复 #72744。感谢 @100yenadmin。 - **Memory-core/dreaming**:为 Dream Diary 叙事子代理添加支持的 `dreaming.model` 旋钮,通过阶段配置和现有插件子代理模型覆盖信任门连接。参考 #65963。感谢 @esqandil 和 @mjamiv。 - **Agents/Anthropic**:在启用扩展思维时移除尾部助手预填充有效负载,因此 Opus 4.7/Sonnet 4.6 请求不会失败 Anthropic 的用户最终轮验证。修复 #72739。感谢 @superandylin。 - **Agents/vLLM/Qwen**:为 vLLM 聊天模板 kwargs 和 DashScope 样式顶级 `enable_thinking` 标志添加插件拥有的 Qwen 思维控制,包括代理循环保留的思维。修复 #72329。感谢 @stavrostzagadouris。 - **Memory-core/dreaming**:将请求范围的叙事回退视为预期,在没有创建子代理运行时跳过会话清理,并移除重复的阶段级清理,因此回退不再发出警告噪音。修复 #67152。感谢 @jsompis。 - **Agents/exec**:当未设置每调用超时时,将配置的 `tools.exec.timeoutSec` 应用于后台、`yieldMs` 和节点 `system.run` 命令,防止自动后台化和远程节点命令无限运行。修复 #67600;取代 #67603。感谢 @dlmpx 和 @kagura-agent。 - **Config/doctor**:停止屏蔽未知键验证诊断(如 `agents.defaults.llm`),并让 `openclaw doctor --fix` 移除已退役的 `agents.defaults.llm` 超时块。感谢 @aidiffuser。 - **CLI/startup**:保持预分发 CLI 图无包级导入,并将打包的 CLI 冒烟覆盖扩展到入门和 doctor 帮助路径,防止缺失运行时依赖(如 tslog)在修复代码运行前破坏入门。修复 #63024。感谢 @hu19940121。 - **CLI/plugins**:保留无版本的 ClawHub 安装规范,因此 `plugins update` 可以跟随更新的 ClawHub 版本,而非固定到最初解析的版本。修复 #63010;取代 #58426。感谢 @kangsen1234 和 @robinspt。 - **Memory-core/subagents**:用其插件所有者标记插件创建的子代理会话,因此 dreaming 叙事清理可以删除自己的临时会话,而无需授予广泛的管理会话删除权限。修复 #72712。感谢 @BSG2000。 - **Gateway/models**:将本地提供程序定价选择退出、OpenRouter/LiteLLM 别名和代理直通定价查找移至插件清单元数据,因此核心不再携带扩展特定的定价表。 - **CLI/update**:遵守 `OPENCLAW_NO_AUTO_UPDATE=1` 作为配置的后台包自动更新的网关启动终止开关,因此操作员可以在事件恢复期间保持有意降级,而无需先编辑配置。修复 #72715。感谢 @Xivi08。 - **Agents/Claude CLI**:每当 OpenClaw 添加 `--input-format stream-json` 时,强制实时会话启动包含 `--output-format stream-json`,因此新的 Claude CLI 会话不再立即失败,而可重用会话保持工作。修复 #72206。感谢 @kwangwonkoh 和 @Xivi08。 - **CLI/plugins**:接受 ClawHub 插件 API 通配符范围(如 `*`)而不拒绝兼容的插件安装,同时仍需要有效的运行时 API 版本。修复 #56446;取代 #56466。感谢 @darconada 和 @claygeo。 - **CLI/plugins**:添加显式的 `npm:<package>` 安装前缀,对已知 npm 包跳过 ClawHub 查找,同时保持裸包规范 ClawHub 优先。修复 #55805;取代 #54377。感谢 @Zeoy2020 和 @vagusX。 - **CLI/plugins**:允许配置门控的捆绑插件安装而不持久化无效的占位符配置条目,因此安装/卸载扫描可以覆盖插件(如 memory-lancedb),即使用户尚未配置凭据。感谢 @vincentkoc。 - **CLI/plugins**:拒绝尾部有 `@` 的格式错误 ClawHub 插件规范(在注册表查找之前),因此空版本拼写错误报告为无效规范,而非包未找到错误。修复 #56579;取代 #56582。感谢 @Kansodata。 - **Agents/sessions**:仅在冷引导、插件和工具设置之后获取会话写锁,因此回退运行不被停滞的预模型启动工作阻止。 - **Browser/plugins**:当存在根 `browser` 配置(包括限制性插件允许列表)时自动启动捆绑浏览器插件,并忽略其包路径不再存在的过时持久化插件注册表。 - **Browser**:每个配置文件对重复的托管 Chrome 启动失败进行断路器,因此当 CDP 无法启动时,浏览器请求停止无限生成 Chromium。修复 #64271。感谢 @TheophilusChinomona。 - **Gateway/models**:跳过外部 OpenRouter 和 LiteLLM 本地/自托管模型端点的定价刷新,因此启动不等待本地 Ollama、vLLM 和兼容提供程序的远程定价目录。 - **CLI/plugins**:阻止安全阻止的插件安装作为钩子包重试,因此正常插件包报告扫描器失败,而不会跟随误导性的“不是有效的钩子包”。修复 #61175;取代 #64102。感谢 @KonsultDigital 和 @ziyincody。 - **Agents/Anthropic**:从出站播放中剥离过时的尾部助手预填充轮次,因此上下文引擎短路无法将不支持的助手预填充有效负载发送到提供程序 API。修复 #72556。感谢 @Veda-openclaw。 - **Agents/Google**:从 Gemini 出站播放中剥离过时的尾部助手/模型预填充轮次,因此 Google Generative AI 请求以用户轮次或函数响应结束。#72556 的后续。感谢 @Veda-openclaw。 - **Control UI/Dreaming**:在应用影响重启的 Dreaming 模式更改之前需要显式确认,具有重启警告副本和加载反馈。修复 #63804。(#63807) 感谢 @bbddbb1。 - **CLI/agent**:在 JSON 输出中用 `meta.transport: "embedded"` 和 `meta.fallbackFrom: "gateway"` 标记 Gateway 到嵌入式回退运行,并使终端诊断显式,以便脚本和操作员可以区分回退运行和 Gateway 运行。修复 #71416。感谢 @amknight。 - **Agents/tools**:在 Pi 验证之前将 `null` 或缺失的工具调用参数标准化为无参数对象架构的 `{}`,因此空参数工具运行而非失败参数验证。修复 #72587。感谢 @amknight。 - **Agents/subagents**:在终端生命周期事件之前清除活动的嵌入式运行状态,因此后完成清理不再将完成的子运行视为仍活动并跳过存档或公告簿记。(#70187) 感谢 @amknight。 - **CLI/update**:在核心命令树上保持自动后更新完成刷新,因此它不再在 Gateway 重启路径之前打包捆绑插件运行时依赖,避免 `.24` 更新挂起和 1006 断开连接级联。修复 #72665。感谢 @sakalaboator 和 @He-Pin。 - **Control UI**:使显式重新加载配置操作丢弃过时的本地配置编辑,而被动刷新和失败保存恢复保持待处理草稿完整。修复 #40352;继承自 #40443。感谢 @realmikechong-dotcom。 - **Agents/Bedrock**:停止心跳运行持久化空白用户转录轮次,并在播放前修复现有的空白用户文本消息,防止 AWS Bedrock `ContentBlock` 空白文本验证失败。修复 #72640 和 #72622。感谢 @goldzulu。 - **Agents/LM Studio**:将独立的括号本地模型工具请求提升为注册的工具调用,并从可见回复中隐藏不支持的括号块,因此 MemPalace MCP 查找不再在聊天中打印原始 `[tool]` JSON 脚手架。修复 #66178。感谢 @detroit357。 - **Local models**:当助手回复看起来像工具调用但提供程序发出纯文本而非结构化工具调用时发出警告,使虚假/未执行的工具调用在日志中可见。修复 #51332。感谢 @emilclaw。 - **Local models**:接受私有 LAN 自定义 OpenAI 兼容提供程序的持久非秘密本地身份验证标记,因此 LAN Ollama 配置不再因缺少身份验证而失败,当 `ollama-local` 保存为密钥时。修复 #49736。感谢 @charles-zh。 - **TUI/local models**:将可见的网关客户端标签(如 `openclaw-tui`)视为当前请求者会话以进行会话感知工具,因此 Ollama 工具调用不再通过将 UI 标签解析为会话 ID 而失败。修复 #66391。感谢 @kickingzebra。 - **Local models**:通过受保护的获取路径(固定到配置的主机)路由自托管 OpenAI 兼容模型发现,覆盖 vLLM 和 SGLang 设置,而无需重新打开本地/LAN SSRF 探测。取代 #46359。感谢 @cdxiaodong。 - **Local models**:分类终止、重置、关闭、超时和中止的模型调用失败,并将进程内存快照附加到诊断事件,使 LM Studio/Ollama RAM 压力失败更容易从稳定性捆绑包中证明。参考 #65551。感谢 @BigWiLLi111。 - **Local models**:通过 OpenAI SDK 传输和模型空闲监视器传递配置的提供程序请求超时,因此长时间运行的本地或自定义 OpenAI 兼容流使用一个超时旋钮,而不是命中 SDK 的 10 分钟默认值或 120s 空闲默认值。修复 #63663。感谢 @aidiffuser。 - **LM Studio**:默认信任配置的 LM Studio 环回、LAN 和 tailnet 端点以进行受保护的模型请求,保留显式私有网络选择退出。参考 #60994。感谢 @tnowakow。 - **Docker/setup**:通过 `host.docker.internal` 路由 Docker 入门默认值以获取主机端 LM Studio 和 Ollama,并将 Linux 主机网关映射添加到捆绑的 Compose 文件,因此容器化网关可以到达本地提供程序,而无需使用容器环回。修复 #68684;取代 #68702。感谢 @safrano9999 和 @skolez。 - **Agents/LM Studio**:在 OpenAI 兼容播放中剥离先前轮次的 Gemma 4 推理,同时保留活动工具调用延续推理。修复 #68704。感谢 @chip-snomo 和 @Kailigithub。 - **LM Studio**:允许交互式入门将 API 密钥留空以进行未认证的本地服务器,使用本地合成身份验证并清除过时的 LM Studio 身份验证配置文件。修复 #66937。感谢 @olamedia。 - **Plugins/startup**:在 Gateway 启动期间使用 `PluginLookUpTable`,因此频道所有权、延迟频道加载和启动插件 ID 重复使用相同的已安装清单注册表,而非在引导路径上重建清单元数据。感谢 @shakkernerd。 - **Plugins/startup**:通过插件加载传递 Gateway `PluginLookUpTable`,因此自动启用检查和启动范围回退重复使用相同的清单注册表,而非执行另一个清单传递。感谢 @shakkernerd。 - **Plugins/startup**:将 Gateway `PluginLookUpTable` 携带到延迟频道完全运行时重新加载,因此后侦听启动不在临时设置运行时加载后重建清单元数据。感谢 @shakkernerd。 - **Gateway/models**:在初始模型定价刷新期间重复使用 Gateway 插件清单元数据,因此定价策略和配置的插件 Web 搜索模型不在启动期间重建插件查找。感谢 @shakkernerd。 - **Gateway/startup**:扩展 `OPENCLAW_GATEWAY_STARTUP_TRACE=1` 以包含每阶段事件循环延迟以及已安装索引、清单、启动计划和工作器映射的插件查找表计时和计数指标,并在启动基准摘要中包含新的计时字段。感谢 @shakkernerd。 - **Plugins/channels**:在检查候选插件启用时,从一个插件索引加清单传递(而非重新加载插件元数据)解析只读频道命令默认值。感谢 @shakkernerd。 - **Plugins/capabilities**:缓存清单衍生的能力提供程序插件 ID 每个配置快照,因此重复的 TTS、媒体、实时、内存、图像、视频和音乐提供程序解析避免冗余清单扫描。感谢 @shakkernerd。 - **Plugins/contracts**:从一个插件索引加清单传递(而非为所有所有者和启用所有者单独重建清单元数据)解析运行时清单合同插件所有者。感谢 @shakkernerd。 - **Plugins/extractors**:在解析捆绑文档和 Web 内容提取器插件时重复使用一个清单注册表传递,而非为兼容性和启用过滤重新读取清单。感谢 @shakkernerd。 - **Plugins/providers**:在解析提供程序发现条目时重复使用一个插件注册表快照和清单注册表,而非在提供程序所有者发现后重建清单元数据。感谢 @shakkernerd。 - **Plugins/registry**:解析提供程序、CLI 后端、设置提供程序、命令别名、模型目录、频道配置和清单合同的所有者映射查找表,同时保留仅设置 CLI 后端所有权。感谢 @shakkernerd。 - **Plugins/registry**:缓存重复的已安装索引清单注册表回退重建在边界失效缓存后,因此冷的提供程序发现路径避免重新读取未更改的清单。感谢 @mcaxtr。 - **Plugins/web**:在回退到公共工件提供程序加载时,重复使用已为捆绑 Web 提供程序候选发现加载的清单记录。感谢 @shakkernerd。 - **Mattermost**:通过抑制 DM 传递的回复根(同时保留频道和群组线程根)保持直接消息回复顶级,并从受信频道查找(而非 WebSocket 事件频道类型)派生入站聊天种类。继承自 #60115、#55186、#72305 和 #72659;参考 #59758、#59981、#59791 和 #57565。感谢 @vincentkoc、@jwchmodx 和 @hclsys。 - **Docker**:预先创建 `/home/node/.openclaw` 并具有节点所有权和私有权限,因此首次运行 Docker Compose 命名卷不再以 EACCES 失败启动。(#48072, #63959; 修复 #61279) 感谢 @timoxue 和 @jeanibarz。 - **CLI/Gateway**:将本地重启探测策略关闭(用于连接、精确 `device required`、配对和身份验证失败)视为 Gateway 可访问性证明,而不接受空的、宽泛的独立令牌/密码/范围/角色或对子字符串 1008 关闭原因。修复 #48771;继承自 #48801;相关 #63491。感谢 @MarsDoge 和 @genoooool。 - **Feishu**:将出站交互式回复有效负载作为原生卡片发送(带可点击按钮),同时保留文本、媒体和文档注释回退。修复 #13175 和 #58298;继承自 #47891。感谢 @Horacehxw。 - **Control UI/WebChat**:当助手有效负载已渲染时跳过冗余的最终事件历史重新加载,并将延迟的 `session.message` 重新加载保持附加到活动运行,因此最终协调不再分割、重复或删除助手气泡。修复 #66875 和 #66274;遵循 #66997 和 #67037。感谢 @BiznessFish、@scotthuang 和 @hansolo949。 - **CLI/Agents**:通过配置的默认代理路由新的 `openclaw agent --to` 会话,同时将遗留 `agent:main:<mainKey>` 行迁移到默认代理存储,保留 #64108 的默认代理修复。修复 #63992;相关 #56370、#56453 和 #42009。感谢 @mushuiyu886 和 @voocel。 - **Process/Windows**:使用控制台代码页感知从原始字节解码命令 stdout 和 stderr,同时保留有效的 UTF-8 输出和跨块的多字节字符。修复 #50519。感谢 @iready、@kevinten10、@zhangyongjie1997、@knightplat-blip、@heiqishi666 和 @slepybear。 - **Bonjour/Windows**:隐藏捆绑 mDNS 通告器的 Windows ARP shell 探测,因此 Gateway 启动不再闪烁命令提示符窗口。修复 #70238。感谢 @alexandre-leng、@PratikRai0101、@infinitypacific 和 @tomerpeled。 - **Agents/bootstrap**:按工作区相对路径去重钩子注入的引导上下文文件,并存储规范化的解析路径,因此重复的相对和绝对钩子路径不再依赖于进程 cwd。(#59344; 修复 #59319; 相关 #56721, #56725 和 #57587) 感谢 @koen666。 - **Agents/bootstrap**:在长期主会话轮次上刷新缓存的 workspace 引导快照,当 `AGENTS.md`、`SOUL.md`、`MEMORY.md` 或 `TOOLS.md` 在磁盘上更改时,同时通过工作区文件缓存保留未更改的快照身份。(#64871; 相关 #43901, #26497, #28594, #30896) 感谢 @aimqwest 和 @mikejuyoon。 - **macOS Gateway**:在状态、doctor 和重启期间检测已安装但未加载的 LaunchAgent 分裂脑状态,并在回退到非托管监听器重启之前重新引导 launchd 监督。修复 #67335、#53475 和 #71060;参考 #58890、#60885 和 #70801。感谢 @ze1tgeist88、@dafacto 和 @vishutdhar。 - **Plugins/install**:将镜像的核心记录器依赖视为分阶段捆绑运行时依赖,因此打包的 Gateway 启动在外部插件运行时依赖根缺少 `tslog` 时不会崩溃。修复 #72228;取代 #72493。感谢 @deepujain。 - **Build/plugins**:保留活动捆绑运行时依赖阶段临时目录(由活动构建过程拥有),因此重叠的 postbuild 运行在修剪期间不再删除彼此的阶段性依赖。取代 #72220。感谢 @VACInc。 - **Plugins/install**:在 Windows 上的 Gateway 启动、postinstall 和打包阶段路径中隐藏捆绑运行时依赖 npm 子窗口,因此 Telegram/Anthropic 依赖修复不再闪烁 shell 窗口。修复 #72315。感谢 @athuljayaram 和 @joshfeng。 - **Agents/Windows**:在 Node ESM 加载之前标准化延迟的代理运行时导入,因此 Windows 驱动器号 `subagent-registry` 运行时路径不再因 `ERR_UNSUPPORTED_ESM_URL_SCHEME` 而失败每个代理任务。修复 #72636;继承自 #72716。感谢 @Andyz-CData 和 @xialonglee。 - **Plugins/Windows**:在 Node ESM 加载之前标准化延迟的插件服务覆盖导入,因此驱动器号浏览器控制模块路径不再因 `ERR_UNSUPPORTED_ESM_URL_SCHEME` 而失败。修复 #72573;取代 #72599 和 #72582。感谢 @llzzww316、@feineryonah-byte 和 @WuKongAI-CMU。 - **Browser/plugins**:通过浏览器运行时 shim 加载 `playwright-core`,因此打包安装可以在 doctor/启动修复后从分阶段插件运行时依赖运行 Playwright 操作。修复 #72168;取代 #72238。感谢 @zdg1110 和 @yetval。 - **Plugins/install**:在 Gateway 启动之前阶段捆绑插件运行时依赖,排空更新重启,并在外部镜像中实现插件拥有的根块,因此阶段依赖在原生 ESM 下解析。修复 #72058;取代 #72084。感谢 @amnesia106 和 @drvoss。 - **TTS/SecretRef**:从活动运行时快照解析 `messages.tts.providers.*.apiKey`,因此 SecretRef 支持的 MiniMax 和其他 TTS 提供程序密钥在运行时回复/音频路径中工作。修复 #68690。感谢 @joshavant。 - **Gateway/install**:在 Linux 服务激活期间公开 systemd 用户总线恢复提示,并在 `systemctl --user` 报告无介质总线故障时通过目标用户作用域重试,而不让过时的 `SUDO_USER` 覆盖 `sudo -u` 安装。修复 #39673;参考 #44417 和 #63561。感谢 @Arbor4、@myrsu、@mssteuer 和 @boyuaner。 - **CLI/nodes**:使无过滤的 `openclaw nodes list` 优先使用 `nodes status` 使用的有效配对节点视图,同时保留挂起的行、配对范围回退、终端安全表渲染和配对的 JSON 元数据。修复 #46871;通过 ProjectClownfish #72619 修复继承 #65772。感谢 @skainguyen1412。 - **CLI/startup**:在回退到实时帮助呈现之前从捆绑的 `dist` 布局读取生成的启动元数据,因此根/浏览器帮助和频道选项引导保持在快速路径上。感谢 @vincentkoc。 - **Feishu/Lark**:停止将仅广播的 `@all`/`@_all` 消息视为机器人提及,同时保留直接机器人提及,包括也包含 `@all` 的消息。修复 #37706。感谢 @JosepLee。 - **CLI/help**:将位置 `help` 调用(如 `openclaw channels help`)视为启动门的帮助路径,避免模型/身份验证预热,同时保留位置参数(如 `openclaw docs help`)。感谢 @gumadeiras。 - **Web search**:将插件范围的 web_search SecretRefs 通过活动运行时配置快照路由,因此提供程序执行接收解析的凭据跨应用/运行时路径,包括 `plugins.entries.brave.config.webSearch.apiKey`。修复 #68690。感谢 @VACInc。 - **Voice Call**:允许 SecretRef 支持的 Twilio 身份验证令牌和调用特定的 OpenAI/ElevenLabs TTS API 密钥通过插件配置表面。修复 #68690。感谢 @joshavant。 - **Google Meet**:在重新加入之前按 URL 清理过时的 chrome-node 实时音频桥,公开活动节点桥检查,并容忍瞬态节点输入拉取失败而非丢弃 Meet 会话。修复 #72371。(#72372) 感谢 @BsnizND。 - **Google Meet**:默认对 Chrome 命令对实时音频使用 24 kHz PCM16,保留遗留 8 kHz G.711 mu-law 自定义命令对,并让实时提供程序协商选择的桥音频格式。修复 #72525。感谢 @BsnizND。 - **Google Meet**:当实时中断到达时清除排队的 Gemini Live 播放,在清除后重启 Chrome 命令对音频输出,并公开 Google Live 中断/VAD 配置旋钮以获取 Meet 和 Voice Call 实时桥。修复 #72523。(#72524) 感谢 @BsnizND。 - **Google Meet**:添加 `realtime.agentId` 以便实时会议咨询可以目标 OpenClaw 代理(而非始终使用 `main`)。(#72381) 感谢 @BsnizND。 - **Google Meet**:通过网关拥有的运行时路由有状态的 `google_meet` 工具操作,因此创建或加入的实时会话在代理轮次结束后对状态、说话和离开保持可见。修复 #72440。(#72441) 感谢 @BsnizND。 - **Google Meet/Voice Call**:在长 OpenClaw 代理咨询完成之前向 Gemini Live 发送非阻塞咨询继续,然后在空闲时传递最终结果,因此调用和会议在工具支持的答案期间不沉默。(#72189) 感谢 @VACInc。 - **Google Meet**:在回复实时工具调用时保留 Gemini Live 函数名称,因此 Google SDK 验证接受 `FunctionResponse` 有效负载。修复 #72425。(#72426) 感谢 @BsnizND。 - **Discord/media**:将偶然的 Markdown 图像徽章保留在最终回复中作为文本,除非频道选择进入 Markdown 图像媒体提取,同时保留 Telegram Markdown 图像媒体回复和显式 `MEDIA:` 附件。修复 #72642。感谢 @solavrc 和 @Bartok9。 - **Matrix/E2EE**:稳定恢复和损坏设备 QA 流程,同时避免可能使关闭时间加密工作运行的 Matrix 设备清理同步竞争。感谢 @gumadeiras。 - **Cron**:将 `cron.maxConcurrentRuns` 应用于专用的 `cron-nested` 隔离代理轮次通道以及 cron 调度,因此并行 cron 作业不再在内部 LLM 执行上序列化,而非 cron 嵌套流保持其现有通道行为。修复 #72707。感谢 @kagura-agent。 - **Cron**:当已验证的 cron 传递已交付回复时,将隔离运行报告为成功,同时保持未解决的消息/Canvas 工具失败为致命。修复 #72732 和 #50170;#54188 的后续。感谢 @zNatix、@pixeldyn 和 @ChickenEggRoll。 - **Cron**:即使未产生回复有效负载,也将隔离运行级代理失败视为作业错误,合成安全错误有效负载,因此模型/提供程序失败增加错误计数器并触发失败通知,而非清除为成功。修复 #43604;继承自 #43631。感谢 @SPFAdvisors。 - **Cron**:将具有空最终助手轮次的隔离作业中的精确 `NO_REPLY` 工具结果保留为静默成功,而非显示不完整轮次错误。修复 #68452;继承自 #68453。感谢 @anyech。 - **Cron**:在回退到创建者会话之前,针对 `session:<id>` 目标解析失败警报和失败目标公告,因此从群组聊天创建的作业可以通知目标直接会话,而无需跨帐户路由错误。参考 #62777;继承自 #68535。感谢 @slideshow-dingo 和 @likewen-tech。 - **Discord**:通过插件路由保留显式 `user:` 和 `channel:` 传递目标,因此 cron 公告和失败警报保持其预期收件人种类。参考 #62777;继承自 #62798。感谢 @neeravmakwana。 - **Cron**:添加 `failureAlert.includeSkipped` 和 `openclaw cron edit --failure-alert-include-skipped`,因此持久跳过的作业可以警报,而不将跳过计数为执行错误或影响重试退避。修复 #60846。感谢 @slideshow-dingo。 - **Cron**:在实时或离线 `jobs.json` 计划编辑后使过时的挂起运行时槽失效,同时为仅格式重写保留到期槽。修复 #27996 和 #71607;继承自 #71651。感谢 @xialonglee 和 @fagnersouza666。 - **Cron**:在比较分裂状态计划身份时保持遗留平面 `jobs.json` 行可加载,因此旧 cron 存储在内存水合之前不会崩溃。 - **Cron**:在运行程序进入其有效执行通道后启动隔离代理轮次执行超时,因此排队的 cron/手动运行不再在有用工作开始前花费整个超时预算。修复 #41783。感谢 @ayanesakura 和 @Hurray0。 - **Cron/Telegram**:从 Telegram 直接线程会话键推断提醒传递时保留直接聊天线程 ID 和可选帐户 ID。修复 #44270;继承自 #44325、#44351、#44412 和 #72657。感谢 @RunMintOn、@arkyu2077、@0xsline 和 @vincentkoc。 - **Cron**:从 `--no-deliver` 运行记录中省略合成 `delivery.resolved` 错误,同时保留代理初始化消息的显式无传递目标跟踪。修复 #72210;继承自 #72219。感谢 @hatemclawbot-collab 和 @xydigit-sj。 - **Cron**:从结构化嵌入式运行执行拒绝元数据将隔离运行分类为错误,最终输出标记回退用于 `SYSTEM_RUN_DENIED`、`INVALID_REQUEST` 和批准绑定拒绝,因此阻止的命令在 cron 历史中不再显示为绿色。修复 #67172;继承自 #67186。感谢 @oc-gh-dr、@hclsys 和 @1yihui。 - **Subagents**:仅在子代理系统提示中保留委托任务,并发送简短的初始启动消息,避免重复任务令牌,同时保留多行任务格式。修复 #72019;继承自 #72053。感谢 @Wizongod 和 @ly85206559。 - **Onboarding/GitHub Copilot**:添加清单拥有的 `--github-copilot-token` 支持以进行非交互式设置,包括环境回退、引用模式中的 tokenRef 存储、保存配置文件重用和当前 Copilot 默认模型连接。参考 #50002 并取代 #50003。感谢 @scottgl9。 - **Gateway/install**:添加经过验证的 `--wrapper`/`OPENCLAW_WRAPPER` 服务安装路径,在强制重新安装、更新和 doctor 修复期间持久化可执行 LaunchAgent/systemd 包装器,而非回退到原始 node/bun `ProgramArguments`。修复 #69400。(#72445) 感谢 @willtmc。 - **Plugins**:当加载器拥有的接受门拒绝缺失的钩子名称或仅内存插件的仅内存能力注册时,插件注册失败,通过插件状态和 doctor 公开问题,而非静默丢弃注册。修复 #72459。感谢 @amknight。 - **macOS Gateway**:使用状态目录 `WorkingDirectory` 写入 launchd 服务,使用持久状态目录临时路径而非冻结 macOS 会话 `TMPDIR`,在引导之前创建该临时目录,并将中止形状的 launchd 退出标记为状态输出中的 `SIGABRT/abort`。修复 #53679 和 #70223;参考 #71848。感谢 @dlturock、@stammi922 和 @palladius。 - **Control UI/update**:使 `Update now` 需要真实的网关进程替换,用稳定原因报告跳过/错误更新结果,并在重启后验证运行的网关版本,因此全局安装无法静默保持内存中的旧代码。修复 #62492;解决 #64892 和 #63562。感谢 @IAMSamuelRodda。 - **Exec approvals**:接受网关和节点批准集有效负载中运行时拥有的 `source: "allow-always"` 和 `commandText` 允许列表元数据,因此 Control UI 往返不再失败,出现 `unexpected property 'source'`。修复 #60000;继承自 #60064。感谢 @sd1471123、@sharkqwy 和 @luoyanglang。 - **Exec/node**:跳过全信任 `host=node` 运行的批准计划准备,因此解释器和脚本命令不再在有效策略为 `security=full` 且 `ask=off` 时失败,出现 `SYSTEM_RUN_DENIED: approval cannot safely bind`。修复 #48457 和重复 #69251。感谢 @ajtran303、@jaserNo1、@Blakeshannon、@lesliefag 和 @AvIsBeastMC。 - **Exec/node**:当配对的节点通告 `system.run` 而无 `system.run.prepare` 时合成本地批准计划,解除当前 macOS 伴随节点上需要批准的 `host=node` exec 的阻塞,同时为支持它的节点主机保留远程准备。修复 #37591 和重复 #66839;继承自 #69725。感谢 @soloclz。 - **Memory/QMD**:优先使用 QMD 的 `--mask` 集合模式标志,因此根内存索引限定在 `MEMORY.md`,而非扩展到工作区的每个 markdown 文件。修复 #65480;取代 #65481 和 #66259。感谢 @ccage-simp、@Bortlesboat、@seank-com 和 @crazyscience。 - **Memory/doctor**:将特定的 `gateway timeout after ...` 网关内存探测结果视为不确定,而非报告嵌入未准备就绪,同时保留显式失败的警告。修复 #44426;继承自 #46576(应用 Greptile 审查反馈)。感谢 Cengiz (@ghost)。 - **Gateway/memory**:对隐式非默认代理延迟 QMD 启动,并将内存运行时加载限定到选定的内存槽,因此 Gateway 引导和第一次内存回忆避免广泛的插件运行时扇出。感谢 @vincentkoc。 - **Gateway/startup**:保持核心请求处理程序、设置向导和频道运行时辅助工具离线引导路径,直到第一个匹配请求、向导运行或频道启动,减少无插件 Gateway 就绪 RSS 和可避免的启动导入。感谢 @vincentkoc。 - **Gateway/startup**:保持 CLI 出站频道发送依赖为延迟请求时间发送器,因此 Gateway 引导不再导入频道插件注册仅为了构造默认依赖。感谢 @vincentkoc。 - **Gateway/startup**:将轻量级 HTTP 身份验证辅助工具与模型覆盖辅助工具分离,因此 Gateway 绑定不再在连接基础 HTTP 路由时导入模型目录选择。感谢 @vincentkoc。 - **Gateway/startup**:延迟加载插件 HTTP 路由调度(当活动插件路由存在时),因此无插件 Gateway 引导跳过插件路由运行时范围设置。感谢 @vincentkoc。 - **Gateway/startup**:将聊天运行/订阅者注册移至轻量级状态模块,并延迟聊天/会话事件投影直到第一个事件,因此 Gateway 引导跳过会话 IO 导入。感谢 @vincentkoc。 - **Gateway/startup**:将节点会话运行时保留在轻量级 JSON 解析器上,而非在引导期间导入网关方法验证辅助工具。感谢 @vincentkoc。 - **Gateway/startup**:从轻量级共享状态模块读取嵌入式运行活动,因此重启延迟不再在 Gateway 引导期间导入嵌入式运行器。感谢 @vincentkoc。 - **Gateway/startup**:延迟 MCP 环回服务器导入直到 Gateway 关闭,因此正常引导不再加载环回 HTTP/工具模式堆栈仅为了注册关闭处理程序。感谢 @vincentkoc。 - **Gateway/startup**:仅当启用/配置的频道启动时异步解析频道运行时辅助工具,因此无频道 Gateway 引导跳过自动回复、媒体、配对和出站频道辅助工具导入。感谢 @vincentkoc。 - **Gateway/startup**:从其请求路径延迟加载 HTTP 身份验证、canvas 身份验证和插件路由范围辅助工具,因此 Gateway 绑定不再在引导期间支付那些实用程序图。感谢 @vincentkoc。 - **Gateway/startup**:延迟隔离 cron 运行器导入直到 `/hooks/agent` 调度,因此 Gateway 引导跳过仅需要正常 HTTP 绑定的安装的代理轮次运行时。感谢 @vincentkoc。 - **Gateway/startup**:将钩子请求解析拆分为请求路径模块,且仅当请求匹配钩子基本路径时加载 Gateway 钩子调度器,保持钩子映射和限制辅助工具脱机普通 HTTP 绑定。感谢 @vincentkoc。 - **CLI/Gateway**:对普通 `gateway status` 读取使用仅解析配置快照,并重复使用相同路径服务配置上下文,因此状态不再在打印前花费数十秒进行完整配置验证。感谢 @vincentkoc。 - **Lobster/Gateway**:在加载嵌入式 Lobster 运行时之前缓存重复的 Ajv 架构编译,因此计划的工作流和 `llm.invoke` 循环停止在内容相同架构上增加网关堆。修复 #71148。感谢 @cmi525、@vsolaz 和 @vincentkoc。 - **Codex harness**:在会话/上下文核算之前标准化缓存的输入令牌,因此提示缓存读取在 `/status`、`session_status` 或持久化 `sessionEntry.totalTokens` 中不被双重计数。修复 #69298。感谢 @richardmqq。 - **Hooks/session-memory**:对内存文件名、回退时间戳 slug 和 markdown 标头使用主机本地时区,而非 UTC 日期。修复 #46703。(#46721) 感谢 @Astro-Han。 - **Gateway health**:在 `gateway.health` 快照和缓存刷新中保留实时运行时支持的频道/帐户状态,同时将原始探测有效负载保留在敏感/管理员路径上。(#39921, #42586, #46527, #52770, #42543) 感谢 @FAL1989、@rstar327、@0xble 和 @ajayr。 - **Feishu**:跨架构 1.0、架构 2.0、i18n、模板变量和后格式回退形状提取引用/回复的交互式卡片文本,而不携带相关解析器实验的广泛生成/配置混乱。(#38776, #60383, #42218, #45936) 感谢 @lishuaigit、@lskun、@just2gooo 和 @Br1an67。 - **Telegram/agents**:当助手已明确确认失败操作时,在 Telegram 中隐藏原始失败写入/编辑警告消息,同时保留回复声称成功或省略失败时的警告;#39406 仍是更广泛的可配置传递策略后续。修复 #51065;覆盖 #39631。感谢 @Bartok9 和 @Bortlesboat。 - **Exec approvals**:接受符号链接的 `OPENCLAW_HOME` 作为受信任的批准根,同时仍拒绝其下符号链接的 `.openclaw` 路径组件。(#64663) 感谢 @FunJim。 - **Logging**:在文件日志 JSONL 记录中添加顶级 `hostname`、扁平化 `message` 和可用的 `agent_id`、`session_id` 和 `channel` 字段,用于多代理过滤,且不删除现有结构化日志参数。修复 #51075。感谢 @stevengonsalvez。 - **ACP**:在 Gateway 配置/引导工作之前将服务器日志路由到 stderr,因此 ACP stdout 保持仅 JSON-RPC 以用于 IDE 集成。修复 #49060。感谢 @Hollychou924。 - **Logging**:通过 Gateway HTTP 请求和 WebSocket 帧传播内部请求跟踪范围,因此文件日志、诊断事件、代理运行跟踪、模型调用跟踪、OTEL 跨度、受信提供程序 `traceparent` 标头共享可关联的 `traceId`,且不记录原始请求或模型内容。修复 #40353。感谢 @liangruochong44-ui。 - **Diagnostics/OTEL**:在诊断事件、插件钩子、稳定性快照和 OTEL 模型调用跨度/指标中捕获隐私安全的模型调用请求有效负载字节、流式响应字节、第一响应延迟和总持续时间,且不记录原始模型内容。修复 #33832。感谢 @wwh830。 - **Logging**:将验证的诊断跟踪上下文写入文件日志 JSONL 记录中的顶级 `traceId`、`spanId`、`parentSpanId` 和 `traceFlags` 字段,因此跟踪请求和模型调用在日志处理器中更容易关联。参考 #40353。感谢 @liangruochong44-ui。 - **Logging/sessions**:将配置的脱敏模式应用于持久化会话转录文本,并接受安全自定义脱敏正则中的转义字符类,因此转录 JSONL 不再在明文保留匹配的敏感文本。修复 #42982。感谢 @panpan0000。 - **Agents/sessions**:让 `sessions_spawn runtime="subagent"` 忽略仅 ACP 的 `streamTo` 和 `resumeSessionId` 字段,同时保留 ACP 直通和记录 `streamTo` 为仅 ACP。修复 #43556 和 #63120;覆盖 #56326、#61724、#64714 和 #67248;继承自 #68397、#65282、#58686、#56342 和 #40102。感谢 @skernelx、@damselem、@Br1an67、@Mintalix、@IsaacAPerez、@vvitovec、@Sanjays2402、@shenkq97 和 @1034378361。 - **Providers/Ollama**:在注册本地模型时遵守 `/api/show` 能力,因此非工具 Ollama 模型不再接收代理工具表面,并保持原生 Ollama 思维选择加入而非默认启用。修复 #64710 和重复 #65343。感谢 @yuan-b、@netherby、@xilopaint 和 @Diyforfun2026。 - **Image tool/media**:在显式图像分析中遵守 `tools.media.image.timeoutSeconds` 和匹配的每模型图像超时,包括 MiniMax VLM 回退路径,因此慢速本地视觉模型不被硬编码的 30s/60s 中止限制。修复 #67889;取代 #67929。感谢 @AllenT22 和 @alchip。 - **Providers/Ollama**:从 `/api/show` 读取更大的自定义 Modelfile `PARAMETER num_ctx` 值,因此自动发现的具有扩展上下文的 Ollama 模型不再固定到基础模型上下文。修复 #68344。感谢 @neeravmakwana。 - **Providers/Ollama**:在本地和 OpenAI 兼容 Ollama 请求中遵守配置的模型 `params.num_ctx`,因此本地模型可以在不重建 Modelfiles 的情况下限制运行时上下文。修复 #44550 和 #52206;取代 #69464。感谢 @taitruong、@armi0024 和 @LokiCode404。 - **Providers/Ollama**:停止强制原生 Ollama 请求使用完整配置的 `contextWindow` 作为 `options.num_ctx`(除非 `params.num_ctx` 显式),因此本地模型可以保持 Ollama 的 VRAM/环境默认值,而非在首次轮次看起来挂起。修复 #49684 和 #68662。感谢 @zhouZcong 和 @dshenster-byte。 - **Providers/Ollama**:转发白名单的原生 Ollama 模型参数(如 `temperature`、`top_p` 和顶级 `think`),因此用户可以从配置禁用 API 级思维或调整本地模型,而无需代理垫片。修复 #48010。感谢 @tangzhi、@pandego、@maweibin、@Adam-Researchh 和 @EmpireCreator。 - **Providers/Ollama**:公开原生 Ollama 思维努力级别,因此 `/think max` 被推理能力 Ollama 模型接受,并映射到 Ollama 最高支持的 `think` 努力。修复 #71584。感谢 @g0st1n。 - **Providers/Ollama**:在原生聊天和嵌入请求之前剥离活动的自定义 Ollama 提供程序前缀,因此自定义提供程序 ID(如 `ollama-spark/qwen3:32b`)作为真实模型名称到达 Ollama。修复 #72353。感谢 @maximus-dss 和 @hclsys。 - **Providers/Ollama**:在调度之前解析字符串化的原生工具调用参数,保留不安全的整数值,因此 Ollama 工具使用接收结构化参数。修复 #69735;取代 #69910。感谢 @rongshuzhao 和 @yfge。 - **Providers/Ollama**:除非 Ollama 身份验证或有意义的配置选项,否则跳过隐式 localhost 发现,防止意外探测 `127.0.0.1:11434` 针对未使用 Ollama 的用户。修复 #56939;取代 #57116。感谢 @IanxDev 和 @tsukhani。 - **Providers/Ollama**:当配置自定义远程 `api: "ollama"` 提供程序时跳过隐式 localhost 发现,同时仍将 `127/8` 环回主机视为本地。继承自 #43224。感谢 @issacthekaylon。 - **Providers/models**:在解析发现的模型时遵守提供程序级 `contextWindow`、`contextTokens` 和 `maxTokens` 作为默认值,因此本地 Ollama 和其他自托管提供程序可以限制所有模型,而无需重复每模型条目。修复 #44786;继承自 #44955。感谢 @voltwake 和 @maweibin。 - **Providers/Ollama**:将内存嵌入移动到 Ollama 的当前 `/api/embed` 端点,同时保留向量归一化和自定义提供程序身份验证/标头覆盖的批量 `input` 请求。修复 #39983。感谢 @sskkcc 和 @LiudengZhang。 - **Providers/Ollama**:通过 Ollama 签名的 `/api/experimental/web_search` 守护程序代理路由本地 Web 搜索,对 `ollama.com` 直接使用托管的 `/api/web_search`,并保持 `OLLAMA_API_KEY` 限定到云回退身份验证。修复 #69132。感谢 @yoon1012 和 @hyspacex。 - **Providers/Ollama**:在发现、流式传输、设置拉取、嵌入和 Web 搜索中接受 OpenAI SDK 样式 `baseURL` 作为 `baseUrl` 的别名,因此远程 Ollama 主机不静默忽略。修复 #62533;取代 #62549。感谢 @Julien-BKK 和 @Linux2010。 - **Providers/Ollama**:将合成本地身份验证和嵌入承载令牌限定到声明的 Ollama 主机边界,因此云密钥不发送到本地/自托管嵌入端点,远程/云 Ollama 端点不再接收 `ollama-local` 标记作为真实令牌。取代 #69261 和 #69857;参考 #43945。感谢 @hyspacex、@maxramsay 和 @Meli73。 - **Providers/Ollama**:通过 Ollama 合成身份验证钩子解析自定义命名的本地 Ollama 提供程序(如 `ollama-remote`),因此子代理不再错过 `ollama-local` 身份验证并静默回退到云模型。修复 #43945。感谢 @Meli73 和 @maxramsay。 - **Providers/Ollama**:添加提供程序范围的模型请求超时,通过受保护的获取连接/标头/主体/中止处理线程它们,并记录 `params.keep_alive` 用于冷本地模型,因此首次轮次 Ollama 加载不再需要全局代理超时更改。修复 #64541 和 #68796;取代 #65143 和 #66511。感谢 @LittleJakub、@Juankcba、@uninhibite-scholar 和 @yfge。 - **Providers/Ollama**:在合并发现的提供程序元数据时保留显式配置的模型输入模态,因此自定义视觉模型保留图像支持,而非静默删除附件。修复 #39690;继承自 #39785。感谢 @Skrblik 和 @Mriris。 - **Providers/Ollama**:当 `/api/chat` 省略提示/评估计数器时估计原生 Ollama 转录使用情况,同时保留精确的零计数器,保持本地模型运行在使用表面可见。继承自 #39112。感谢 @TylonHH。 - **Agents/Ollama**:重试完成时没有用户可见文本(包括未签名的仅思维响应)的原生 Ollama 轮次,因此受限的推理轮次可以继续,而非显示空回复。继承自 #66552 和 #61223。感谢 @yfge 和 @L3G。 - **Docs/Ollama**:扩展本地、LAN、云、多主机、Web 搜索、嵌入、思维控制和大上下文故障排除的设置配方。 - **Providers/PDF/Ollama**:为 Ollama 模型拉取和原生 Anthropic/Gemini PDF 分析请求添加有界网络超时,因此无响应的提供程序端点不再无限挂起会话。修复 #54142;取代 #54144 和 #54145。感谢 @jinduwang1001-max 和 @arkyu2077。 - **LLM Task/Ollama**:接受已包含选定提供程序前缀的模型覆盖,避免加倍 ID(如 `ollama/ollama/llama3.2:latest`),并实时验证本地 Ollama JSON 任务返回解析输出。修复 #50052。感谢 @ralphy-maplebots 和 @Hollychou924。 - **Memory/doctor**:将 Ollama 内存嵌入视为键可选,因此 `openclaw doctor` 不再在网关报告嵌入就绪时警告缺失 API 密钥。修复 #46584。感谢 @fengly78。 - **Agents/Ollama**:将提供程序拥有的播放轮次标准化应用于原生 Ollama 聊天,因此云模型不再拒绝代理/Gateway 运行中非交替播放历史。修复 #71697。感谢 @ismael-81。 - **Control UI/Ollama**:在聊天和会话思维下拉列表中显示解析的配置思维默认值,因此继承的 `adaptive`/每模型思维配置不再显示为 `Default (off)` 或通用继承值。修复 #72407。感谢 @NotecAG。 - **Agents/Ollama**:针对目录发现的 Ollama 推理元数据验证显式 `--thinking max`,因此本地代理运行接受模型目录中显示的相同原生思维级别。修复 #71584。感谢 @g0st1n。 - **CLI/models**:在 `openclaw models list --provider <id>` 中包含显式配置的提供程序模型,而无需完整目录路径,因此配置的 Ollama 模型可见。修复 #65207。感谢 @drzeast-png。 - **Docker/QA**:将可观测性覆盖添加到正常 Docker 聚合,因此 QA-lab OTEL 和 Prometheus 诊断在 Docker 内部运行。感谢 @vincentkoc。 - **Auto-reply**:在播放不安全提供程序/运行时失败后毒化入站消息去重,因此重试在可见进度之前保持安全,且无法在块输出、工具副作用或会话进度后重复消息。修复 #69303;保持 #58549 和 #64606 作为重复验证。感谢 @martingarramon、@NikolaFC 和 @zeroth-blip。 - **Agents/model fallback**:保持自动持久化的回退模型覆盖跨轮次选择,直到 `/new` 或重置清除它们,避免探测已知错误主模型,而 `/status` 显示选定的和活动的模型。感谢 @kibedu。 - **Agents/model fallback**:直接跳转到已知的稍后实时会话模型重定向,而非遍历不相关的回退候选,同时保留已着陆的实时会话/回退循环保护。修复 #57471;相关循环族已通过 #58496 关闭。感谢 @yuxiaoyang2007-prog。 - **Gateway/Bonjour**:在通告器重启期间保持 @homebridge/ciao 取消处理程序注册,因此晚期探测取消无法崩溃 Linux 和其他 mDNS 混乱网关。 - **Plugins/startup**:在 Gateway 启动期间(当允许时)加载默认 `memory-core` 槽,因此活动内存回忆可以调用 `memory_search` 和 `memory_get` 而无需显式 `plugins.slots.memory` 条目,同时保留 `plugins.slots.memory: "none"`。 - **Plugins/CLI**:在 jiti 之前优先为编译的捆绑插件 JavaScript 使用原生 require,因此只读配置、状态、设备和节点命令避免慢主机上不必要的转换开销。修复 #62842。感谢 @Effet。 - **Plugins/compat**:单独清单 doctor 端弃用迁移与运行时插件兼容性,因此发布扫描保留需要的修复,同时执行日期删除窗口。感谢 @vincentkoc。 - **Plugins/compat**:添加遗留扩展 API、内存注册、提供程序钩子/类型别名、运行时别名、频道 SDK 辅助工具和批准/测试实用程序垫片的缺失日期兼容性记录。感谢 @vincentkoc。 - **Plugins/CLI**:在管理的插件文件被删除后刷新持久化注册表,因此 ClawHub 卸载无法留下过时的 `plugins list` 条目。 - **Plugins/CLI**:使插件安装和卸载配置写入冲突感知,在显式重新安装/删除时清除过时拒绝列表条目,且仅在配置/索引提交成功后删除管理的插件文件。 - **Plugins**:当加载器拥有的接受门拒绝缺失的钩子名称或仅内存插件的仅内存能力注册时,插件注册失败,通过插件状态和 doctor 公开问题,而非静默丢弃注册。修复 #72459。感谢 @amknight。 - **WebChat/Control UI**:在聊天上传中支持非视频文件附件,同时保留现有图像附件路径和通用图像上传的 MIME 嗅探回退。(#70947) 感谢 @IAMSamuelRodda。 - **Skills/memory**:通过观看具体技能和内存根(包括 SKILL.md 删除和删除的技能文件夹,无广泛工作区递归)恢复 Chokidar v5 热重载。修复 #27404、#33585 和 #41606。感谢 @shelvenzhou、@08820048 和 @rocke2020。 - **Gateway/chat**:在文档的进行中路径上保持重复附件支持的 `chat.send` 重试具有相同的幂等键,因此中止仍针对真实活动运行。修复 #70139。感谢 @Feelw00。 - **Gateway/session rows**:报告运行时会话使用的相同配置解析思维默认值,包括全局和每代理默认值,因此 Control UI 和 TUI 默认标签保持对齐。(#71779, #70981, #71033, #70302) 感谢 @chen-zhang-cs-code、@SymbolStar 和 @cholaolu-boop。 - **Plugins**:在安装和发现之间共享包入口点解析,拒绝不匹配的 `runtimeExtensions`,并在扫描期间缓存捆绑运行时依赖清单读取。 - **WhatsApp/Web**:基于 WhatsApp Web 传输活动保持安静但健康的链接设备会话连接,同时保留更长的应用静默上限,因此帧活动不能永远掩盖卡住的会话。修复 #70678;继承聚焦的 #71466 方法并保持 #63939 作为相关可配置超时后续。感谢 @vincentkoc 和 @oromeis。 - **Discord/gateway**:将失败的健康监视器重启尝试计入冷却和每小时上限,并在频道重新加载期间驱逐过时的帐户生命周期状态,因此重复的 Discord 网关恢复不能在旧状态上循环。修复 #38596。(#40413) 感谢 @jellyAI-dev 和 @vashquez。 - **Cron/context engine**:在运行范围的上下文引擎会话键下运行隔离 cron 作业,因此相同作业的先前运行不继承,除非作业显式会话绑定。(#72292) 感谢 @jalehman。 - **Control UI**:本地化命令面板标签、类别、技能快捷方式、页脚提示和连接命令复制标签,同时保留本地化命令面板搜索匹配。(#61130, #61119) 感谢 @rubensfox20。 - **Plugins/memory-lancedb**:从 OpenAI 兼容服务器请求浮点嵌入响应,因此默认 SDK 请求到 base64 的本地提供程序不再返回维度不匹配的 LanceDB 向量,同时保留配置的维度。修复 #45982。(#59048, #46069, #45986) 感谢 @deep-introspection、@xiaokhkh、@caicongyang 和 @thiswind。 - **Plugins/memory-lancedb**:每个会话在消息被处理或故意跳过之后推进自动捕获游标,重试失败消息,在压缩历史中存活,并在会话结束时清除游标状态。修复 #71349;继承自 #42083。感谢 @as775116191。 - **Plugins/memory-core**:在非批量索引期间遵守配置的内存搜索嵌入并发,因此本地 Ollama 嵌入后端可以序列化索引,而非泛洪服务器。修复 #66822。(#66931) 感谢 @oliviareid-svg 和 @LyraInTheFlesh。 - **Docker/update smoke**:在包 shipped 文件上保持包衍生的更新频道固定装置,且其 UI 构建存根创建更新程序验证的资产。感谢 @vincentkoc。 - **Gateway/models**:修复遗留 `models.providers.*.api = "openai"` 配置值为 `openai-completions`,并在启动期间跳过具有未来过时 API 枚举值的提供程序,而非阻塞网关。修复 #72477。(#72542) 感谢 @JooyoungChoi14 和 @obviyus。 - **Gateway/skills**:从 `skills.update` RPC 响应中脱敏 `apiKey` 和秘密命名的 `env` 值,以防止将凭据泄漏到 WebSocket 流量、客户端日志或会话转录。配置仍完全写入磁盘;仅响应有效负载脱敏。(#69998) 感谢 @Ziy1-Tan。 - **Plugins/CLI**:让标志驱动的 `openclaw channels add` 从其默认源安装选定的频道插件,而无需打开交互式提示,修复已发布 npm Telegram 设置在 stdin 关闭自动化中。 - **Onboarding/setup**:保持首次运行配置读取、插件兼容性通知和 post-model 健全性检查在冷元数据路径上,除非用户选择浏览所有模型,避免提示之间的完整插件/运行时目录工作。感谢 @shakkernerd。 - **Onboarding/auth**:通过范围设置提供程序运行清单拥有的提供程序身份验证选择,因此选择 OpenAI Codex 浏览器/设备身份验证不再在 OAuth 开始之前加载每个提供程序运行时。感谢 @shakkernerd。 - **Onboarding/auth**:将 post-auth 默认模型策略查找保留在清单/设置元数据上,因此下一个提示出现无需加载广泛的提供程序运行时。感谢 @shakkernerd。 - **Onboarding/models**:保持跳过身份验证和提供程序范围的模型选择器提示脱机完整全局模型目录路径,并缓存提供程序目录钩子解析,因此设置不再在身份验证后在大插件注册表上停滞。感谢 @shakkernerd。 - **Gateway/Bonjour**:通过范围进程处理程序抑制已知 @homebridge/ciao 取消和网络断言失败,因此格式错误的 mDNS 数据包或受限 VPS 网络禁用/重启 Bonjour 而非崩溃网关。修复 #67578。感谢 @zenassist26-create。 - **Discord**:当提升模式自动解析请求时,保持对已解析执行批准按钮的晚期点击安静,同时仍显示真实批准提交失败。修复 #66906。感谢 @rlerikse。 - **Telegram**:为长期预览流式回复发送新鲜最终消息,因此可见 Telegram 时间戳反映完成时间而非预览创建时间。感谢 @rubencu。