← 返回更新日志

OpenClaw v2026.3.22-beta.1 预发布

2026-03-23 · GitHub 原文
npm beta 标签 `v2026.3.22-beta.1` 的预发布版本。 此 beta 版本未附带新的 macOS 应用构建。macOS 资源仍停留在稳定应用版本 `2026.3.22`,且本次预发布中 `appcast.xml` 故意保持不变。 ### 破坏性变更 - **插件/安装**:裸命令 `openclaw plugins install <package>` 现在优先从 ClawHub 而非 npm 获取 npm 安全名称,仅在 ClawHub 中没有该包或版本时才回退到 npm。文档:https://docs.openclaw.ai/tools/clawhub - **浏览器/Chrome MCP**:移除遗留的 Chrome 扩展中继路径、捆绑的扩展资源、`driver: "extension"` 和 `browser.relayBindHost`。运行 `openclaw doctor --fix` 可将主机本地浏览器配置迁移至 `existing-session` / `user`;Docker、无头、沙箱和远程浏览器流程仍使用原始 CDP。文档:https://docs.openclaw.ai/gateway/doctor 和 https://docs.openclaw.ai/tools/browser (#47893) 感谢 @vincentkoc。 - **工具/图像生成**:在核心 `image_generate` 工具上标准化内置图像创建/编辑路径。旧的 `nano-banana-pro` 文档/示例已移除;如果您之前复制了该示例技能配置,请切换到 `agents.defaults.imageGenerationModel` 以使用内置图像生成,或显式安装单独的第三方技能。 - **技能/图像生成**:移除捆绑的 `nano-banana-pro` 技能包装器。改用 `agents.defaults.imageGenerationModel.primary: "google/gemini-3-pro-image-preview"` 实现原生的 Nano Banana 风格路径。 - **插件/SDK**:新的公共插件 SDK 表面为 `openclaw/plugin-sdk/*`;`openclaw/extension-api` 已被移除且无兼容性填充。捆绑插件必须使用注入的运行时进行主机端操作(例如 `api.runtime.agent.runEmbeddedPiAgent`),任何剩余的直接导入必须来自狭窄的 `openclaw/plugin-sdk/*` 子路径,而非单体 SDK 根目录。文档:https://docs.openclaw.ai/plugins/sdk-migration 和 https://docs.openclaw.ai/plugins/sdk-overview - **插件/消息发现**:共享 `message` 工具发现现在需要 `ChannelMessageActionAdapter.describeMessageTool(...)`。遗留的 `listActions`、`getCapabilities` 和 `getToolSchema` 适配器方法已被移除。插件作者应将消息发现迁移到 `describeMessageTool(...)`,并将通道特定的操作运行时代码保留在所属插件包内。感谢 @gumadeiras。 - **插件/Matrix**:添加由官方 `matrix-js-sdk` 支持的新 Matrix 插件。如果您从之前的公共 Matrix 插件升级,请遵循迁移指南:https://docs.openclaw.ai/install/migrating-matrix 感谢 @gumadeiras。 - **配置/环境**:在运行时、安装程序和测试工具中移除遗留的 `CLAWDBOT_*` 和 `MOLTBOT_*` 兼容性环境名称。请改用匹配的 `OPENCLAW_*` 环境名称。 - **配置/状态**:移除遗留的 `.moltbot` 状态目录和 `moltbot.json` 自动检测/迁移回退。如果您仍将状态保留在 `~/.moltbot` 下,请将其移动到 `~/.openclaw` 或显式设置 `OPENCLAW_STATE_DIR` / `OPENCLAW_CONFIG_PATH`。文档:https://docs.openclaw.ai/install/migrating 和 https://docs.openclaw.ai/start/getting-started - **执行/环境沙箱**:阻止主机执行环境中的构建工具 JVM 注入(`MAVEN_OPTS`、`SBT_OPTS`、`GRADLE_OPTS`、`ANT_OPTS`)、glibc 可调优利用(`GLIBC_TUNABLES`)和 .NET 依赖项解析劫持(`DOTNET_ADDITIONAL_DEPS`),并将 Gradle 初始化脚本重定向(`GRADLE_USER_HOME`)限制为仅覆盖块,以便用户配置的 Gradle 主目录仍能传播。(#49702) - **Discord/命令**:默认将原生命令部署切换到 Carbon 协调,以便 Discord 重启停止通过 OpenClaw 的本地部署路径频繁变动斜杠命令。(#46597)感谢 @huntharo 和 @thewilloftheshadow。 - **安全/执行批准**:在允许列表评估和始终允许持久性期间,将 `time` 视为透明分发包装器,以便批准的 `time ...` 命令绑定到内部可执行文件而非包装器路径。感谢 @YLChen-007 报告。 - **语音呼叫/网络钩子**:在正文读取前拒绝缺失提供程序签名标头的请求,将预认证正文预算降至 `64 KB` / `5s`,并限制每个源 IP 的并发预认证请求数,以便未经身份验证的调用者无法强制使用旧的 `1 MB` / `30s` 缓冲路径。感谢 @SEORY0 报告。 - **插件/Matrix**:在消息实际路由之前,停止提及门控或丢弃的房间聊天刷新聚焦的线程绑定,以便在需要提及的房间中空闲 ACP 和会话绑定仍能正常过期。感谢 @vincentkoc、@dinakars777 和 @mvanhorn。 - **插件/Matrix**:跨网关重启持久去重传入房间事件,以便之前处理的 Matrix 消息不会作为新消息重放,同时为未见过的事件保留干净重启积压传递。(#50922)感谢 @gumadeiras - **代理/媒体回复**:将剩余的浏览器、画布和节点快照输出迁移到 `details.media`,以便生成的媒体在收集后附加重构后仍能附加到助手回复。(#51731)感谢 @christianklotz。 - **Android/联系人搜索**:在联系人名称查询中转义字面量 `%` 和 `_`,以便 `100%` 或 `_id` 等搜索不再通过 SQL `LIKE` 通配符匹配不相关的联系人。(#41891)感谢 @Kaneki-x。 - **网关/使用情况**:在总计、会话发现和仅归档会话详情回退中包含重置和删除的归档会话记录,以便“使用情况”视图不再低估轮换的会话。(#43215)感谢 @rcrick。 ### 变化 - **ClawHub/安装**:添加原生 `openclaw skills search|install|update` 流程,以及 `openclaw plugins install clawhub:<package>`(带跟踪的更新元数据)、网关技能安装/更新对 ClawHub 支持请求的支持,以及新源路径的回归覆盖/文档。 - **插件/市场**:添加 Claude 市场注册表解析、`plugin@marketplace` 安装、市场列表和更新支持,以及本地和官方市场流程的 Docker E2E 覆盖。(#48058)感谢 @vincentkoc。 - **命令/插件**:添加所有者门控的 `/plugins` 和 `/plugin` 聊天命令,用于插件列表/显示和启用/禁用流程,以及显式的 `commands.plugins` 配置门控。感谢 @vincentkoc。 - **安装/更新**:允许通过 `openclaw update --tag main`、安装程序 `--version main` 或直接 npm/pnpm git 规范从 GitHub `main` 进行包管理器安装。(#47630)感谢 @vincentkoc。 - **插件/捆绑包**:添加兼容的 Codex、Claude 和 Cursor 捆绑包发现/安装支持,将捆绑技能映射到 OpenClaw 技能,并将 Claude 捆绑包 `settings.json` 默认值应用于嵌入式 Pi(清理的 shell 覆盖)。感谢 @vincentkoc。 - **CLI/钩子**:通过 `openclaw plugins` 路由钩子包安装和更新,保持 `openclaw hooks` 专注于钩子可见性和每钩子控制,并在 CLI 输出中显示插件管理的钩子详情。 - **模型/OpenAI**:将默认 OpenAI 设置模型切换为 `openai/gpt-5.4`,Codex 保持 `openai-codex/gpt-5.4`,并将 OpenAI 聊天、图像、TTS、转录和嵌入默认值集中到一个共享模块中,以便未来默认模型更新保持低变动。感谢 @vincentkoc。 - **代理**:添加每代理思考/推理/快速默认值,并在代理默认选择上自动还原不允许的模型覆盖。感谢 @xuanmingguo 和 @vincentkoc。 - **命令/btw**:添加 `/btw` 侧边问题,用于在不改变未来会话上下文的情况下快速获取关于当前会话的无工具答案,具有可关闭的会话内 TUI 答案和外部通道上的显式 BTW 回复。(#45444)感谢 @ngutman。 - **沙箱/运行时**:添加可插拔沙箱后端,附带具有 `mirror` 和 `remote` 工作区模式的 OpenShell 后端,并使沙箱列表/重新创建/修剪以后端感知而非仅 Docker 的方式运行。 - **沙箱/SSH**:添加核心 SSH 沙箱后端,具有基于密钥、证书和 known_hosts 输入的机密支持,将共享远程执行/文件系统工具移至核心,并保持 OpenShell 专注于沙箱生命周期加上可选的 `mirror` 模式。 - **浏览器/现有会话**:支持 `browser.profiles.<name>.userDataDir`,以便 Chrome DevTools MCP 可以通过其自己的用户数据目录附加到 Brave、Edge 和其他基于 Chromium 的浏览器。(#48170)感谢 @velvet-shark。 - **插件/捆绑包**:使启用的捆绑 MCP 服务器在嵌入式 Pi 中公开可运行工具,并将默认相对捆绑 MCP 启动指向捆绑根目录,以便像 Context7 这样的市场捆绑包可以通过 Pi 运行,而不是在配置导入处停止。 - **插件/提供程序**:将 OpenRouter、GitHub Copilot 和 OpenAI Codex 提供程序/运行时逻辑移至捆绑插件,包括动态模型回退、运行时身份验证交换、流包装器、能力提示和缓存 TTL 策略。 - **模型/Anthropic Vertex**:添加通过 Google Vertex AI 使用 Claude 的核心 `anthropic-vertex` 提供程序支持,包括 GCP 身份验证/发现和主运行路径路由。(#43356)感谢 @sallyom 和 @yossiovadia。 - **插件/Chutes**:添加具有插件拥有 OAuth/API 密钥身份验证、动态模型发现和默认开启扩展布线的捆绑 Chutes 提供程序。(#41416)感谢 @Veightor。 - **Web 工具/Exa**:添加 Exa 作为捆绑的网络搜索插件,具有 Exa 原生日期过滤器、搜索模式选择和 `plugins.entries.exa.config.webSearch.*` 下的可选内容提取。感谢 @V-Gutierrez 和 @vincentkoc。 - **Web 工具/Tavily**:添加 Tavily 作为捆绑的网络搜索提供程序,具有专用的 `tavily_search` 和 `tavily_extract` 工具,使用 `plugins.entries.tavily.config.webSearch.*` 下的规范插件拥有配置。(#49200)感谢 @lakshyaag-tavily。 - **Web 工具/Firecrawl**:通过捆绑插件添加 Firecrawl 作为 `onboard`/配置搜索提供程序,公开显式的 `firecrawl_search` 和 `firecrawl_scrape` 工具,并使核心 `web_fetch` 回退行为与 Firecrawl 基础 URL/环境回退以及受保护的端点获取保持一致。 - **模型/OpenAI**:在 OpenAI 提供程序目录、运行时解析和推理能力门控中添加 `gpt-5.4-mini` 和 `gpt-5.4-nano` 的原生前向兼容支持。感谢 @vincentkoc。 - **控制 UI/聊天**:在助手聊天气泡和应用内会话导航(从“会话”和“Cron”视图)上添加展开到画布按钮。感谢 @BunsDev。 - **控制 UI/外观**:统一 Claw、Knot 和 Dash 的主题边框半径,并在“外观”设置中添加“圆度”滑块,以便用户可以从锐利调整到完全圆角。感谢 @BunsDev。 - **控制 UI/使用情况**:改进使用情况概览样式、本地化以及响应式聊天/上下文通知呈现,包括更安全的主题颜色处理和未剪裁的使用情况标题菜单。(#51951)感谢 @BunsDev。 - **控制 UI/使用情况**:删除空的会话详情占位符卡片,以便在选择真实会话详情面板之前,使用情况视图保持单列。(#52013)感谢 @BunsDev。 - **Android/移动**:在入职前后屏幕上添加系统感知的深色主题,以便应用在设置、聊天和语音流程中跟随设备主题。(#46249)感谢 @sibbl。 - **Android/Talk**:将 Talk 语音合成移至网关 `talk.speak` 后,在网关上保留 Talk 机密,并将 Android 播放切换到最终响应音频而非设备本地 ElevenLabs 流式传输。(#50849) - **Android/节点**:添加 `callLog.search` 以及共享的“通话记录”权限布线,以便 Android 节点可以通过网关搜索最近的通话记录。(#44073)感谢 @lixuankai。 - **Android/节点**:添加 `sms.search` 以及共享的 SMS 权限布线,以便 Android 节点可以通过网关搜索设备短信。(#48299)感谢 @lixuankai。 - **Telegram/apiRoot**:跨发送、探测、设置、doctor 修复和入站媒体下载路径添加每账户自定义 Bot API 端点支持,以便代理或自托管的 Telegram 部署可以端到端工作。(#48842)感谢 @Cypherm。 - **Telegram/主题**:在第一条带有 LLM 生成标签的消息上自动重命名 DM 论坛主题,具有每账户和每 DM `autoTopicLabel` 覆盖。(#51502)感谢 @Lukavyi。 - **Telegram/操作**:添加 `topic-edit` 用于论坛主题重命名和图标更新,同时共享插件运行时使用的相同 Telegram 主题编辑传输。(#47798)感谢 @obviyus。 - **Telegram/错误回复**:添加默认关闭的 `channels.telegram.silentErrorReplies` 设置,以便机器人错误回复可以在常规回复、原生命令和回退发送中静默传递。(#19776)感谢 @ImLukeF。 - **飞书/卡片**:添加结构化交互式审批和快速操作启动器卡片,通过路由保留回调用户和对话上下文,并保持遗留卡片操作回退行为,以便常见操作无需输入原始命令即可运行。(#47873)感谢 @Takhoffman。 - **飞书/ACP**:为支持的 DM 和主题对话添加当前对话 ACP 和子代理会话绑定,包括完成传递回原始飞书对话。(#46819)感谢 @Takhoffman。 - **飞书/流式传输**:为流式卡片添加 `onReasoningStream` 和 `onReasoningEnd` 支持,以便 `/reasoning stream` 将思考令牌渲染为同一卡片中的 markdown 块引用——匹配 Telegram 频道的推理通道行为。(#46029)感谢 @day253。 - **飞书/卡片**:为飞书回复和直接发送添加身份感知的结构化卡片标题和注释页脚,同时通过共享出站身份路径保持该呈现布线。(#29938)感谢 @nszhsl。 - **插件/Matrix**:添加 `allowBots` 房间策略,以便配置的 Matrix 机器人账户可以相互对话,具有可选的仅提及门控。感谢 @gumadeiras。 - **插件/Matrix**:添加每账户 `allowPrivateNetwork` 选择加入用于私有/内部 homeserver,同时保持公共明文 homeserver 被阻止。感谢 @gumadeiras。 - **插件/MiniMax**:添加 MiniMax-M2.7 和 MiniMax-M2.7-highspeed 模型,并将默认模型从 M2.5 更新为 M2.7。(#49691)感谢 @liyuan97。 - **MiniMax/快速模式**:将共享 `/fast` 和 `params.fastMode` 映射到 MiniMax `-highspeed` 模型,适用于 M2.1、M2.5 和 M2.7 API 密钥和 OAuth 运行。感谢 @vincentkoc。 - **模型/MiniMax 默认值**:将捆绑的 MiniMax M2.5/M2.7 上下文窗口、最大令牌和定价元数据提升到当前上游 Pi SDK 提供的更高默认值。感谢 @vincentkoc。 - **模型/MiniMax**:添加捆绑的 `MiniMax-M2`、`MiniMax-M2.1` 和 `MiniMax-M2.1-highspeed` 目录条目,以便 OpenClaw 的提供程序元数据和 OAuth 别名与当前上游 Pi SDK 保持一致。感谢 @vincentkoc。 - **插件/MiniMax**:将捆绑的 MiniMax API 和 MiniMax OAuth 插件表面合并为单个默认开启的 `minimax` 插件,同时保持遗留的 `minimax-portal-auth` 配置 ID 别名以实现兼容性。 - **代理/Pi 兼容性**:使 OpenClaw 的捆绑 MiniMax 运行时行为与当前上游 Pi 0.61.1 版本保持一致,以便嵌入式运行与最新发布的 Pi SDK 语义保持同步。感谢 @vincentkoc。 - **模型/GitHub Copilot**:允许无需代码更新的前向兼容动态模型 ID,同时为这些合成模型保留配置的提供程序和每模型覆盖。(#51325)感谢 @fuller-stack-dev。 - **xAI/模型**:将捆绑的 Grok 目录同步到当前的 Pi 支持 ID、限制和定价元数据,同时保持较旧的 Grok 快速和 4.20 别名在运行时干净解析。感谢 @vincentkoc。 - **xAI/快速模式**:将共享 `/fast` 和 `params.fastMode` 映射到当前的 xAI Grok 快速模型系列,以便直接 Grok 运行可以选择更快的 Pi 支持变体。感谢 @vincentkoc。 - **CLI/配置**:使用 SecretRef 和提供程序构建器模式、JSON/批量分配支持以及具有结构化 JSON 输出的 `--dry-run` 验证扩展 `config set`。(#49296)感谢 @joshavant。 - **Z.AI/模型**:将捆绑的 GLM 目录同步到当前的 Pi 元数据,包括较新的 4.5/4.6 模型系列、更新的多模态条目以及当前的定价和令牌限制。感谢 @vincentkoc。 - **Mistral/模型**:将捆绑的默认 Mistral 元数据同步到当前的 Pi 定价,以便内置默认值不再 advertised 零成本使用。感谢 @vincentkoc。 - **插件/Xiaomi**:将捆绑的 Xiaomi 提供程序切换到 `/v1` OpenAI 兼容端点,并将 MiMo V2 Pro 和 MiMo V2 Omni 添加到内置目录。(#49214)感谢 @DJjjjhao。 - **代理/压缩**:通知用户后续自动压缩何时开始和结束,将这些通知保留在 TTS 之外,并为真实的助手回复保留回复线程。(#38805)感谢 @zidongdesign。 - **内存/插件**:让活动内存插件注册其自己的系统提示部分,同时保留缓存清除和快照加载提示隔离。(#40126)感谢 @jarimustonen。 - **网关/健康监控**:添加可配置的陈旧事件阈值和重启限制,以及每通道和每账户 `healthMonitor.enabled` 覆盖,同时保持现有的全局禁用路径 `gateway.channelHealthCheckMinutes=0`。(#42107)感谢 @rstar327。 - **插件/代理集成**:扩展插件表面以进行具有通道感知命令、交互式回调、入站声明以及 Discord/Telegram 对话绑定支持的应用服务器集成。(#45318)感谢 @huntharo 和 @vincentkoc。 - **插件/绑定**:添加 `onConversationBindingResolved(...)`,以便插件可以在绑定批准或拒绝后立即反应,而不会阻塞通道交互确认。(#48678)感谢 @huntharo。 - **插件/上下文引擎**:在公共插件 SDK 上公开 `delegateCompactionToRuntime(...)`,重构遗留引擎以使用共享助手,并澄清非拥有引擎的 `ownsCompaction` 委托语义。(#49061)感谢 @jalehman。 - **插件/上下文引擎**:将嵌入式运行程序 `modelId` 传递给上下文引擎 `assemble()`,以便插件可以按模型调整上下文格式。(#47437)感谢 @jscianna。 - **插件/上下文引擎**:为上下文引擎添加转录维护重写,在重写期间保留活动分支转录元数据,并将溢出恢复截断强化为在正常会话写入锁下重写会话。(#51191)感谢 @jalehman。 - **技能/提示预算**:在当完整提示格式超过 `maxSkillsPromptChars` 时丢弃条目之前,通过紧凑目录回退保留所有已注册技能。(#47553)感谢 @snese。 - **钩子/工作区**:保持仓库本地 `<workspace>/hooks` 禁用直到显式启用,阻止工作区钩子名称冲突遮蔽捆绑/管理/插件钩子,并将 `hooks.internal.load.extraDirs` 视为受信任的管理钩子源。 - **安全/插件**:拒绝远程市场清单条目在克隆的市场仓库之外扩展安装,包括外部 git/GitHub 源、HTTP 存档和绝对路径。 - **网关/文档**:阐明空 URL 输入允许列表被视为未设置,记录 `allowUrl: false` 作为拒绝所有开关,并为规范化路径添加回归覆盖。 - **机密**:强化只读 SecretRef 命令路径和诊断。(#47794)感谢 @joshavant。 - **范围消息 SecretRef 解析并强化 doctor/status 路径**。(#48728)感谢 @joshavant。 - **构建/内存工具**:将 `dist/cli/memory-cli.js` 作为稳定的核心入口发出,以便运行时 `memory_search` 加载不再依赖于哈希的 `memory-cli-*` 捆绑包名称。(#51759)感谢 @oliviareid-svg。 - **插件/测试**:为插件作者测试助手添加公共 `openclaw/plugin-sdk/testing` 表面,并将仅捆绑扩展的测试桥从 `extensions/` 移至私有仓库测试助手。 - **代理/引导文档**:更新嵌入式 Pi 引导文档和运行程序注释以匹配当前上游行为,其中排队的引导在活动助手回合完成其工具调用后注入,而不是在回合中途跳过剩余工具。感谢 @vincentkoc。 - **Doctor/重构**:通过首先提取 Telegram 首次运行和组允许列表警告到提供程序特定模块,开始将 doctor 提供程序检查拆分为 `src/commands/doctor/providers/*`,保持当前设置指导和警告行为不变。感谢 @vincentkoc。 - **重构/通道**:移除遗留通道填充目录并将通道特定导入直接指向扩展拥有的实现。(#45967)感谢 @scoootscooob。 - **文档/Zalo**:阐明市场机器人支持矩阵和配置指导,以便 Zalo 通道文档更紧密地匹配当前的 Bot Creator 行为。(#47552)感谢 @No898。 - **文档/插件**:将社区钉钉插件列表添加到文档目录。(#29913)感谢 @sliverp。 - **文档/插件**:将社区 QQbot 插件列表添加到文档目录。(#29898)感谢 @sliverp。 - **文档/插件**:将社区企业微信插件列表添加到文档目录。(#29905)感谢 @sliverp。 ### 修复 - **Web 工具/搜索提供程序列表**:在保持单独的运行时自动检测优先级(用于基于凭据的提供程序选择)的同时,保持入职、配置和文档提供程序列表按字母顺序排列。 - **媒体/Windows 安全**:在核心媒体加载和相邻提示/沙箱接缝中的本地文件系统解析之前,阻止远程主机 `file://` 媒体 URL 和 UNC/网络路径,以便下一个版本不再允许结构化的本地媒体输入触发 Windows 上的出站 SMB 凭据握手。感谢 @RacerZ-fighting 报告。 - **网关/发现**:在 CLI 发现、入职和 `gateway status` 中对未解决的 Bonjour 和 DNS-SD 服务端点失败关闭,以便仅 TXT 提示不再能够引导路由或 SSH 自动目标选择。感谢 @nexrin 报告。 - **安全/配对**:将 iOS 设置代码绑定到预期的节点配置文件,并拒绝请求更广泛角色或范围的首次使用引导兑换。感谢 @tdjackey。 - **内存/核心工具**:独立注册 `memory_search` 和 `memory_get`,以便一个不可用的内存工具不再在新会话中抑制另一个。(#50198)感谢 @artwalker。 - **Web 工具/Exa**:通过支持较新的搜索类型和更丰富的 `contents` 选项,使捆绑的 Exa 插件与当前 Exa API 保持一致,同时修复结果计数上限以遵守 Exa 的更高限制。感谢 @vincentkoc。 - **插件/Matrix**:将捆绑插件 `KeyedAsyncQueue` 导入移至稳定的 `plugin-sdk/core` 表面,以便 Matrix Docker/运行时构建不依赖于脆弱的 keyed-async-queue 子路径。感谢 @ecohash-co 和 @vincentkoc。 - **Nostr/安全**:在解密前强制执行入站 DM 策略,将 Nostr DMs 路由通过标准回复管道,并添加预加密速率和大小保护,以便未知发送者无法绕过配对或强制无限制的加密工作。感谢 @kuranikaran。 - **群晖聊天/安全**:默认情况下将回复传递绑定到稳定的数字 `user_id`,并将可变的用户名/昵称收件人查找置于 `dangerouslyAllowNameMatching` 之后,并带有新的回归覆盖。感谢 @nexrin。 - **代理/默认超时**:将共享默认代理超时从 `600s` 提高到 `48h`,以便长时间运行的 ACP 和代理会话不会失败,除非您配置更短的限制。 - **网关/启动**:从内置安装的编译 `dist/extensions` 条目加载捆绑通道插件,以便网关启动不再在每次启动时重新编译捆绑扩展 TypeScript,而 WhatsApp 级别的冷启动降至秒级而非数十秒或更差。(#47560)感谢 @ngutman。 - **网关/启动**:在通道启动前预热配置的主模型,并在 transient 提供程序运行时丢失时重试一次,以便启动后的第一条 Telegram 或 Discord 消息不再因 `Unknown model: openai-codex/gpt-5.4` 而失败。感谢 @vincentkoc。 - **CLI/启动**:延迟加载通道添加和根帮助启动路径,以修剪受限主机上可避免的 RSS 和帮助延迟。(#46784)感谢 @vincentkoc。 - **配置/启动**:将出站发送依赖项解析移入轻量级助手,以便 `openclaw configure` 不再在横幅后暂停,同时急切加载通道插件。(#46301)感谢 @scoootscooob。 - **CLI/身份验证选择**:延迟加载插件/提供程序回退解析,以便映射的身份验证选择保持在静态路径上,只有未知选择才支付沉重的提供程序加载。(#47495)感谢 @vincentkoc。 - **网关/Discord 启动**:在网关启动期间仅加载配置的通道插件,并延迟加载 Discord 提供程序/会话运行时设置,以便启动停止导入不相关的提供程序并减少冷启动延迟。感谢 @vincentkoc。 - **代理/入站**:延迟加载纯文本回合的媒体和链接理解,并通过身份验证文件状态缓存同步的身份验证存储,以便普通入站回复避免不必要的启动变动。感谢 @vincentkoc。 - **代理/OpenAI 兼容工具调用**:跨实时助手消息和重放历史记录去重重复的工具调用 ID,以便 OpenAI 兼容后端不再因重复的 `tool_call_id` 值而拒绝 HTTP 400。(#40996)感谢 @xaeon2026。 - **代理/OpenAI 响应**:对于非 OpenAI 兼容响应端点剥离 `prompt_cache_key` 和 `prompt_cache_retention`,同时将它们保留在直接 OpenAI 和 Azure OpenAI 路径上,以便第三方 OpenAI 兼容提供程序不再因这些请求而拒绝 HTTP 400。(#49877)感谢 @ShaunTsai。 - **模型/OpenAI 补全**:默认非原生 OpenAI 兼容提供程序省略工具定义 `strict` 字段,除非用户显式选择重新加入,以便工具调用在拒绝该选项的提供程序上继续工作。(#45497)感谢 @sahancava。 - **模型/OpenRouter 运行时能力**:在首次使用时获取未编录的 OpenRouter 模型元数据,以便新添加的视觉模型保持图像输入而不是静默降级为仅文本,并为 `/api/v1/models` 提供顶级能力字段回退。(#45824)感谢 @DJjjjhao。 - **控制 UI/会话路由**:在 webchat 视图或发送源自外部会话时保留已建立的出站传递路由,以便子代理完成仍返回到原始通道而不是仪表板。(#47797)感谢 @brokemac79。 - **Telegram/回复**:在针对目标的发送和媒体错误通知上设置 `allow_sending_without_reply`,以便删除的父消息不再丢弃其他有效回复。(#52524)感谢 @moltbot886。 - **Telegram/轮询**:对卡住的 `getUpdates` 请求进行硬超时,以便挂起的网络路径更快失败,而不是等待轮询停滞看门狗。感谢 @vincentkoc。 - **Android/位置**:使当前位置请求在超时后丢弃延迟回调,而不是因 `Already resumed` 而崩溃。(#52318)感谢 @Kaneki-x。 - **Android/配对**:在入职期间将无端口安全设置 URL 解析为 `443`,同时保留直接的明文网关默认值和显式的 `:80` 手动端点。(#43540)感谢 @fmercurio。 - **Android/画布**:忽略来自捆绑脚手架和受信任 A2UI 表面之外的页面的桥接消息。感谢 @vincentkoc。 - **CLI/状态**:通过跳过未在 JSON 有效负载中呈现的插件兼容性扫描,保持 `status --json` stdout 干净。(#52449)感谢 @cgdusek。 - **WhatsApp/重新连接**:在扩展收件箱监控中恢复追加最近性过滤器,并正确处理 protobuf `Long` 时间戳,以便重新连接后的新鲜追加消息得到处理,而陈旧历史同步保持抑制。(#42588)感谢 @MonkeyLeeT。 - **WhatsApp/登录**:在 Baileys `515` 配对重启后,在 QR 登录和 `channels login` 流程中等待待处理的凭据写入后再重新打开,并将重启覆盖范围固定到实际包装的错误形状加上每账户凭据队列。(#27910)感谢 @asyncjason。 - **Android/画布**:在评估 WebView JS 之前序列化 A2UI 操作状态事件字符串,以便操作 ID 和多行错误不会破坏回调分发。(#43784)感谢 @Kaneki-x。 - **Android/相机**:在 `camera.snap` 中回收中间和最终快照位图,以便重复捕获不泄漏本机图像内存。(#41902)感谢 @Kaneki-x。 - **控制 UI/日志记录**:使浏览器安全记录器导入避免急切临时目录解析,以便捆绑的控制 UI 在日志记录达到 `tmp-openclaw-dir` 时不再崩溃为空白屏幕。(#48469)修复 #48062。感谢 @7inspire。 - **控制 UI/聊天会话**:再次在分组会话下拉列表中显示人类可读标签,在元数据缺失时保持唯一作用域回退,并且仅在需要时消除重复标签。(#45130)感谢 @luzhidong。 - **Telegram/回复**:在描述回复上下文时忽略格式错误的非字符串回复文本和标题字段,以便意外的 Telegram 回复有效负载不再破坏入站上下文组装。(#50500)感谢 @p3nchan。 - **控制 UI/仪表板**:在重启断开连接期间保留结构化的网关关闭原因,以便配置触发的重启不再回退到 `disconnected (1006): no reason`。(#46580)修复 #46532。感谢 @vincentkoc。 - **Android/聊天**:明确为主题思考下拉菜单和 TLS 信任对话框设置主题,以便弹出表面匹配活动应用主题而不是回退到不匹配的 Material 默认值。 - **节点/启动**:移除剩余的调试 `console.log("node host PATH: ...")`,该调试在每次 `openclaw node run` 调用时打印解析的 PATH。(#46515)修复 #46411。感谢 @ademczuk。 - **Slack/启动**:跨当前捆绑运行时形状强化 `@slack/bolt` 导入互操作,以便在插件 SDK 捆绑更改后 Slack 监视器不再因 `App is not a constructor` 而崩溃。(#45953)感谢 @merc1305。 - **控制 UI/模型切换**:在从聊天下拉菜单切换模型时保留选定的提供程序前缀,以便多提供程序设置不再在用户选择 `openai/gpt-5.2` 时发送 `anthropic/gpt-5.2` 样式的错配。(#47581)感谢 @chrishham。 - **控制 UI/存储**:通过网关基本路径范围持久化设置键,从遗留共享键迁移,以便一个域下的多个网关停止相互覆盖仪表板首选项。(#47932)感谢 @bobBot-claw。 - **控制 UI/概览**:在仪表板启动期间保持语言下拉菜单与持久化的语言环境一致,以便刷新页面不会在语言环境水合完成之前回退到英语。(#48019)感谢 @git-jxj。 - **macOS/登录时启动**:停止为桌面应用启动代理发出 `KeepAlive`,以便 OpenClaw 在手动退出后不再立即重新启动,而登录时启动保持启用。(#40213)感谢 @stablegenius49。 - **Mattermost/线程**:对于已经是线程的入站帖子,遵守 `replyToMode: "off"`,以便线程后续回复在配置时可以回退到顶级回复。(#52543)感谢 @RichardCao。 - **入职/自定义提供程序**:使用 Responses API 配置形状存储 Azure OpenAI 和 Azure AI Foundry 自定义端点,归一化 `/openai/v1` 基础 URL 和 Azure 安全默认值,以便 TUI 和代理运行在设置后工作。(#49543)感谢 @kunalk16。 - **CLI/完成**:减少递归完成脚本字符串变动,并修复嵌套 PowerShell 命令路径匹配,以便生成的嵌套完成在 PowerShell 上也能解析。(#45537)感谢 @yiShanXin 和 @vincentkoc。 - **macOS/画布操作**:仅在受信任的应用内画布表面上保留无人值守的本地代理操作,并停止将深度链接回退密钥暴露给任意页面脚本。(#46790)感谢 @vincentkoc。 - **代理/压缩**:在压缩活动进行时延长封闭运行截止时间一次,并在超时/取消时中止底层 SDK 压缩,以便大型会话压缩停止在运行中途冻结。(#46889)感谢 @asyncjason。 - **网关/Telegram 关闭**:在关闭时中止停滞的 Telegram 轮询获取,清理每周期中止监听器,并保持进程内看门狗在主管停止超时之前,以便 SIGTERM 不再留下僵尸网关。(#51242)感谢 @juliabush。 - **Telegram/设置**:当设置将 DMs 留在配对时没有允许列表发出警告,并显示有效的账户范围修复命令。(#50710)感谢 @ernestodeoliveira。 - **Doctor/Telegram**:用首次运行指导替换全新安装空组允许列表误报,该指导解释 DM 配对批准和下一步组设置步骤,以便新的 Telegram 安装获得可操作的设置帮助而不是错误配置警告。感谢 @vincentkoc。 - **Doctor/扩展**:将 Matrix DM `allowFrom` 修复保留在规范 `dm.allowFrom` 路径上,并停止将 Zalouser 组发送者门控视为回退到 `allowFrom`,以便 doctor 警告和 `--fix` 与运行时访问控制保持一致。感谢 @vincentkoc。 - **Doctor/重构**:将内置通道 doctor 语义集中到一个静态能力注册表中,对未知/外部通道具有保守回退行为,以便未来扩展更改停止依赖分散的共享字符串检查。感谢 @vincentkoc。 - **通道/插件**:通过修复 Slack 自定义回调路由和重复点击去重,允许仅交互发送,以及保留有序 Discord 共享文本块,保持共享交互式有效负载合并就绪。(#47715)感谢 @vincentkoc。 - **Slack/交互式回复**:通过实时 DM 传递和预览最终编辑保留 `channelData.slack.blocks`,以便 Block Kit 按钮和选择指令呈现而不是回退到原始文本。(#45890)感谢 @vincentkoc。 - **飞书/操作**:扩展运行时操作表面,包括消息读取/编辑、显式线程回复、固定和面向操作员的聊天/成员检查,以便飞书可以更直接地操作工作区。(#47968)感谢 @Takhoffman。 - **飞书/主题线程**:在启动主题线程会话时获取完整线程上下文,包括之前的机器人回复,以便飞书主题中的后续回合保持正确的对话状态。(#45254)感谢 @Coobiw。 - **飞书/媒体**:在出站发送、入站下载、线程回复、目录/操作别名和能力文档之间保持原生图像、文件、音频和视频/媒体处理对齐,以便不支持的区域是显式的而不是隐含的。(#47968)感谢 @Takhoffman。 - **飞书/网络钩子**:强化签名网络钩子验证以使用恒定时间签名比较,并在网络钩子 E2E 覆盖中保持格式错误的短签名失败关闭。 - **Telegram/消息发送**:通过 `sendPayload` 路径以及 `sendMedia` 转发 `--force-document`,以便带有 `channelData` 的 Telegram 有效负载发送继续将图像作为文档上传而不是静默回退到压缩的照片发送。(#47119)感谢 @thepagent。 - **Telegram/消息分块**:在 HTML 溢出重新分块分割格式化回复时保留空格、段落分隔符和单词边界。(#47274)感谢 @obviyus。 - **Z.AI/入职**:即使对于显式的 `zai-coding-*` 端点选择也检测工作的默认模型,以便编码计划设置可以在 `glm-5` 可用时保持选定的端点同时默认为它,或回退到 `glm-4.7`。(#45969)感谢 @obviyus。 - **CI/入职冒烟**:将 `ensure-base-commit` 获取失败显示为工作流警告,并在预期的设置提示漂移时失败入职 Docker 冒烟测试,而不是静默继续。感谢 @Takhoffman。 - **Z.AI/入职**:将 `glm-5-turbo` 添加到默认 Z.AI 提供程序目录,以便入职生成的配置将新模型与现有 GLM 默认值一起公开。(#46670)感谢 @tomsun28。 - **Zalo 个人/组门控**:当 `groupAllowFrom` 未设置时,停止将 `dmPolicy.allowFrom` 重新应用为已允许组的发送者门控,以便允许组的任何成员可以触发回复,而 DM 保持受限。(#46663)修复 #40146。感谢 @Takhoffman。 - **Zalo/插件运行时**:从 `openclaw/plugin-sdk/zalo` 导出 `resolveClientIp`,以便安装的构建在从打包扩展而不是 monorepo 源代码树加载时不再在启动时崩溃。(#46549)感谢 @No898。 - **Docker/实时测试**:将外部 CLI 身份验证主目录挂载到可写容器副本,从 JWT `exp` 推导 Codex OAuth 过期,刷新同步的 CLI 凭据而不是信任陈旧的缓存过期,并让网关实时探测等待转录输出,以便 `pnpm test:docker:all` 在 Linux 上保持绿色。 - **网关/监视模式**:在捆绑插件包和清单元数据更改时重启,为扩展源和 `tsdown.config.ts` 更改重建 `dist`,并仍然忽略扩展文档。(#47571)感谢 @gumadeiras。 - **网关/监视模式**:在干净或陈旧的 `dist` 状态后重新创建捆绑插件运行时元数据,以便 `pnpm gateway:watch` 不再在重建后缺少 `dist/extensions/*/openclaw.plugin.json` 清单时失败。感谢 @gumadeiras。 - **控制 UI**:通过网关基本路径范围持久化会话选择,防止令牌化网关打开之间的陈旧会话泄漏,并限制存储的网关会话历史。(#47453)感谢 @sallyom。 - **模型/OpenAI Codex OAuth**:启动 Codex 登录的远程手动输入竞争,并使粘贴的输入提示与实际接受的值保持一致,以便远程/VPS 身份验证不再因无法访问的 localhost 回调而停滞。(#51631)感谢 @cash-echo-bot。 - **组提及门控**:拒绝无效和不安全的嵌套重复 `mentionPatterns`,在提及剥离和检测之间重用共享的安全配置正则编译器,并缓存剥离时正则编译,以便嘈杂的组避免重复重新编译。 - **浏览器/配置文件**:删除自动创建的 `chrome-relay` 浏览器配置文件;需要 Chrome 扩展中继的用户现在必须通过 `openclaw browser create-profile` 创建自己的配置文件。(#46596)修复 #45777。感谢 @odysseus0。 - **CI/通道测试路由**:将内置通道套件移动到 `test:channels` 并将它们保留在 `test:extensions` 之外,以便扩展 CI 在通道迁移后不再失败,而目标测试路由仍将 Slack、Signal 和 iMessage 套件发送到正确的通道。(#46066)感谢 @scoootscooob。 - **网关/配置验证**:停止将隐式默认内存槽视为必需的显式插件配置,以便启动不再在 `memory-core` 仅被推断时失败并显示 `plugins.slots.memory: plugin not found: memory-core`。(#47494)感谢 @ngutman。 - **Tlon**:遵守显式空允许列表并延迟引用扩展。(#46788)感谢 @zpbrent 和 @vincentkoc。 - **Tlon/DM 身份验证**:在 DM 授权和所有者命令处理之后延迟引用消息扩展,以便未经授权的 DM 和所有者批准/管理员命令不再在拒绝或命令路径之前触发跨通道引用获取。 - **网关/代理事件**:停止向客户端广播错误的运行结束 `seq gap` 错误,并使用每运行 ID 隔离节点驱动的入站回合,以便陈旧尾部事件不能泄漏到以后的会话运行中。(#43751)感谢 @caesargattuso。 - **节点/挂起操作**:在将它们返回节点之前,根据当前节点命令策略重新检查排队的前台操作。(#46815)感谢 @zpbrent 和 @vincentkoc。 - **Windows/网关状态**:将 `schtasks` `Last Result` 输出接受为 `Last Run Result` 的别名,以便运行计划任务安装不再显示 `Runtime: unknown`。(#47844)感谢 @MoerAI。 - **ACP/acpx**:从实际插件目录解析捆绑插件根目录,以便插件本地安装保留在 `dist/extensions/acpx` 下而不是逃逸到 `dist/extensions` 并导致运行时设置失败。(#47601)感谢 @ngutman。 - **网关/WebSocket 握手**:将默认预认证握手超时提高到 10 秒,并添加 `OPENCLAW_HANDSHAKE_TIMEOUT_MS` 作为运行时覆盖,以便繁忙的本地网关不再在 3 秒时丢弃健康的 CLI 连接。(#49262)感谢 @fuller-stack-dev。 - **网关/WebSocket 配对旁路用于禁用的身份验证**:当 `gateway.auth.mode=none` 时跳过设备配对强制,以便反向代理仪表板不再因身份验证被显式禁用而卡在 `pairing required`。(#47148)感谢 @ademczuk。 - **代理/使用情况跟踪**:停止对非原生 OpenAI 补全提供程序强制 `supportsUsageInStreaming: false`,以便兼容的后端再次报告令牌使用情况和成本而不是显示全零。(#46500)修复 #46142。感谢 @ademczuk。 - **ACP/acpx**:在实时仓库检查中将插件本地后端安装保留在 `extensions/acpx` 下,以便重建不再删除运行时二进制文件,并避免运行时修复期间的 package-lock 变动。 - **代理/压缩**:在 `session.compact()` 之后重新运行转录修复,以便孤立的 `tool_result` 块不能在压缩后存活并破坏以后的 Anthropic 请求。(#16095)感谢 @claw-sylphx。 - **代理/压缩**:从工具结果保护触发溢出恢复,以便长工具循环在下一个模型调用硬失败之前压缩。(#29371)感谢 @keshav55。 - **macOS/执行批准**:强化 exec-host 请求 HMAC 验证以使用时间安全比较,并在聚焦的 IPC 身份验证覆盖中保持格式错误或截断的签名失败关闭。 - **网关/执行批准**:在网关主机批准提示中显示请求的环境覆盖键,以便操作员可以在不继承嘈杂的基础主机环境的情况下审查幸存的环境上下文。 - **Telegram/网络**:在轮询重启之间保留粘性 IPv4 回退状态,以便具有不稳定 IPv6 到 `api.telegram.org` 的主机在每次重启后停止重新触发重复的 Telegram 超时。(#48282)感谢 @yassinebkr。 - **代理/压缩**:在空准备时写入最小边界摘要,同时保持拆分回合前缀在正常路径上,以便无总结消息会话停止重新触发保护循环。(#42215)感谢 @lml2468。 - **模型/聊天命令**:默认情况下保持 `/model ...@YYYYMMDD` 版本后缀完整,但仍为同一提供程序 honor 匹配的存储数字身份验证配置文件覆盖。(#48896)感谢 @Alix-007。 - **网关/通道**:序列化每账户通道启动,以便重叠启动不会两次启动相同的提供程序,防止启动和重启期间的 MS Teams `EADDRINUSE` 崩溃循环。(#49583)感谢 @sudie-codes。 - **Discord**:强制执行严格的 DM 组件允许列表身份验证(#49997)感谢 @joshavant。 - **稳定插件加载器和 Docker 扩展冒烟测试**(#50058)感谢 @joshavant。 - **Telegram**:稳定配对/会话/论坛路由和回复格式化测试(#50155)感谢 @joshavant。 - **网关**:强化 OpenResponses 文件上下文转义(#50782)感谢 @YLChen-007 和 @joshavant。 - **LINE**:强化 Express 网络钩子解析以验证原始正文(#51202)感谢 @gladiator9797 和 @joshavant。 - **执行**:跨网关和节点强化主机环境覆盖处理(#51207)感谢 @gladiator9797 和 @joshavant。 - **语音呼叫**:强制执行语音输出合同并修复流式 TTS 静音回归(#51500)感谢 @joshavant。 - **xAI/模型**:将捆绑的 Grok 4.20 目录条目重命名为 GA ID 并在运行时标准化保存的已弃用 beta ID,以便现有配置和会话保持解析。(#50772)感谢 @Jaaneek - **代理/引导警告**:将引导截断警告移出系统提示并放入每回合提示正文,以便提示缓存重用当截断警告出现或消失时保持稳定。(#48753)感谢 @scoootscooob 和 @obviyus。 - **Telegram/DM 主题会话密钥**:通过入站消息、原生命令和会话状态查找的相同每账户基础会话密钥路由命名账户 DM 主题,以便 `/status` 和线程恢复停止创建幻影 `agent:main:main:thread:...` 会话。(#48204)感谢 @vincentkoc。 - **ACP/配置绑定**:重新初始化卡在 `error` 状态的已配置 ACP 会话,而不是重用失败的运行时。 - **Telegram/网络**:在 API 和媒体获取下统一粘性 IPv4 和固定 IP 回退链,并针对 SSRF 策略重新验证固定覆盖地址。(#49148)感谢 @obviyus。 - **代理/提示组合**:将引导截断警告追加到当前回合提示,并为稳定的系统提示缓存不变量添加回归覆盖。(#49237)感谢 @scoootscooob。 - **群晖聊天/多账户**:按账户和发送者范围直接消息会话,以便不同群晖账户上相同的网络钩子 `user_id` 值不再共享转录或传递状态。 - **Telegram/安全**:添加回归覆盖,证明固定回退主机覆盖保持绑定到 Telegram 并将不匹配的主机名委托回原始查找路径。感谢 @vincentkoc。 - **工具/图像生成**:添加捆绑的 fal 图像生成支持,以便 `image_generate` 可以针对 `fal/*` 模型使用 `FAL_KEY`,包括通过 FLUX 图像到图像的单个图像编辑流程。感谢 @vincentkoc。 - **网关/钩子**:在异步隔离代理分发期间保留不可变钩子入口来源,以便规范化钩子会话路由保持外部包装、Gmail 特定策略和 Gmail 模型选择完整。 - **消息/投票**:在 `message.send` 上将零值的投票参数视为未设置默认值,同时保持投票验证路径上的非零投票参数。(#52150)修复 #52118。感谢 @Bartok9。 - **xAI/网络搜索**:添加缺失的 Grok 凭据元数据,以便捆绑的提供程序注册再次类型检查。(#49472)感谢 @scoootscooob。 - **代理/会话缓存**:在以后的缓存活动期间机会性地清除过期的嵌入式运行程序会话缓存条目,以便一次性会话文件不会永久累积。(#52427)感谢 @karanuppal。 - **WhatsApp**:稳定入站监视器和设置测试(#50007)感谢 @joshavant。 - **Matrix**:使入职状态运行时安全(#49995)感谢 @joshavant。 - **通道**:稳定通道 harness 和监视器测试(#50167)感谢 @joshavant。 - **代理/压缩**:添加可选的压缩后会话 JSONL 截断步骤,该步骤在保留保留分支尾部 and 实时会话元数据的同时删除汇总的转录条目。(#41021)感谢 @thirumaleshp。 - **Telegram/路由**:当 `message send` 目标是未知的非默认 Telegram `accountId` 时大声失败,而不是静默回退到通道级机器人令牌并通过错误的机器人发送。(#50853)感谢 @hclsys。 - **网络搜索**:使入职、配置和完成与插件拥有的提供程序合同保持一致,包括禁用提供程序恢复、配置感知凭据挂钩和运行时可见摘要。(#50935)感谢 @gumadeiras。 - **代理/重放**:在提供程序重放之前净化格式错误的助手工具调用重放块,以便后续 Anthropic 请求不会继承下游 `replace` 崩溃。(#50005)感谢 @jalehman。 - **Discord/启动日志**:在网关仍在连接时报告客户端初始化,而不是在达到就绪之前声称 Discord 已登录。(#51425)感谢 @scoootscoob。 - **代理/压缩保护**:当有上限的重试回退重用最后一个成功摘要时,保留拆分回合上下文和保留的最近回合。(#27727)感谢 @Pandadadadazxf。 - **代理/内存刷新**:在内存刷新回退重试期间保持转录哈希去重活动,以便写入然后抛出的刷新尝试不能在回退周期完成之前附加重复的 `MEMORY.md` 条目。(#34222)感谢 @lml2468。 - **Discord/ACP**:将工作者中止信号转发到 ACP 回合,以便超时的 Discord 作业取消正在运行的回合而不是静默离开绑定的 ACP 会话在后台工作。 - **ACP/Codex 会话重放**:在加载或重新绑定现有 ACP 会话时保留隐藏的助手思考,以便存储的思考块不会重放为可见的助手文本。感谢 @vincentkoc。 - **网关/命令**:在内部调用者可以持久化 `/exec` 默认值或通过 `/phone arm|disarm` 突变 `phone-control` 节点策略之前,保持内部 `chat.send` 斜杠命令 UX 同时要求 `operator.admin`。 - **插件/Matrix**:将捆绑插件 `KeyedAsyncQueue` 导入移至稳定的 `plugin-sdk/core` 表面,以便 Matrix Docker/运行时构建不依赖于脆弱的 keyed-async-queue 子路径。感谢 @ecohash-co 和 @vincentkoc。 - **插件/上下文引擎**:在加载器和公共 SDK 路径上强制执行所有者感知的上下文引擎注册,以便插件不能欺骗特权所有权、声称核心 `legacy` 引擎 ID 或通过直接 SDK 导入覆盖现有的引擎 ID。(#47595)感谢 @vincentkoc。 - **插件/捆绑器 TDZ**:修复 `RESERVED_COMMANDS` 暂时性死区错误,该错误阻止设备配对、电话控制和语音插件在捆绑器将命令模块放在同一输出块中的调用站点之后时注册。感谢 @BunsDev。 - **插件/导入**:修复陈旧的 googlechat 运行时 API 导入路径和被最近插件 SDK 重构破坏的信号 SDK 循环重新导出。感谢 @BunsDev。 - **插件/安装优先级**:默认情况下捆绑插件优先于自动发现的全局插件,但让显式安装的插件记录在其自己的重复 ID 平局中获胜,以便安装的通道插件在 `openclaw plugins install` 之后从 `~/.openclaw/extensions` 加载。(#46722)感谢 @Takhoffman。 - **插件/作用域 ID**:在安装和配置键控期间保留作用域插件 ID,并默认捆绑插件优先于发现的重复 ID,以便 `@scope/name` 插件不再与无作用域安装冲突。(#47413)感谢 @vincentkoc。 - **文档/Mintlify**:修复 Perplexity、Model Providers、Moonshot 和执行批准页面上的 MDX 标记语法,以便本地文档预览不再破坏渲染或留下陈旧页面未发布。(#46695)感谢 @velvet-shark。 - **插件/运行时 barrel**:通过公共 `openclaw/plugin-sdk/*` 子路径路由捆绑扩展运行时导入,并阻止相对跨包逃逸,以便打包扩展停止依赖 monorepo 仅相对路径。(#51939)感谢 @vincentkoc。 - **文档/安全审计**:阐明 `gateway.controlUi.allowedOrigins: ["*"]` 是显式的允许所有浏览器源策略,应避免在严格控制本地测试之外使用。 - **插件/子代理**:在运行时、工具和嵌入式运行程序加载路径之间保留网关拥有的插件子代理访问,以便网关插件工具和上下文引擎在加载器缓存拆分后仍然可以生成和管理子代理。(#46648)感谢 @jalehman。 - **插件/子代理**:通过网关插件子代理分发转发每运行提供程序和模型覆盖,以便插件启动的代理委托再次 honor 显式模型选择。(#48277)感谢 @jalehman。 - **测试/OpenAI Codex 身份验证**:将登录期望与默认 `gpt-5.4` 模型对齐,以便 CI 覆盖与当前 OpenAI Codex 默认值保持一致。(#44367)感谢 @jrrcdev。 - **插件/Matrix TTS**:将自动 TTS 回复作为原生 Matrix 语音气泡发送而不是通用音频附件。(#37080)感谢 @Matthew19990919。 - **插件/发现**:区分缺少包入口文件与包路径转义违规,以便启动跳过不存在的插件入口路径而不引发错误的安全诊断。(#52491)感谢 @hclsys。 - **插件/Matrix**:接受共享发送工具媒体别名(`mediaUrl`、`filePath`、`path`)并通过 Matrix 操作分发保留 `asVoice` / `audioAsVoice`,以便仅媒体发送和语音消息意图正确到达插件发送层。感谢 @psacc 和 @vincentkoc。 - **插件/运行时 API**:使用显式护栏覆盖固定扩展运行时 API 导出表面,以便未来表面 creep 成为有意的 diff。感谢 @vincentkoc。 - **插件/WhatsApp**:共享插件命令注册和活动 WhatsApp 监听器的拆分加载单例状态,以便重复模块图不再丢失原生插件命令或出站监听器状态。(#50418)感谢 @huntharo。 - **插件/更新**:让 `openclaw plugins update <npm-spec>` 通过发行标签或确切版本定位跟踪的 npm 安装,并保留记录的 npm 规范以供以后基于 ID 的更新。(#49998)感谢 @huntharo。 - **测试/CLI**:减少命令机密网关测试导入压力,同时保留真实的协议有效负载验证器,以便隔离通道不再携带更重的运行时 web 和消息通道图。(#50663)感谢 @huntharo。 - **网关/插件**:跨重复模块图共享插件交互式回调路由和插件绑定批准状态,以便 Telegram Codex 选择器按钮和插件绑定批准不再落入正常入站消息路由。(#50722)感谢 @huntharo。 - **插件/上下文引擎**:当旧引擎拒绝时,在没有新 `prompt` 字段的情况下重试严格的遗留 `assemble()` 调用,为预提示插件保留提示感知检索兼容性。(#50848)感谢 @danhdoan。 - **插件/运行时状态**:跨重复模块图共享插件面向基础设施单例状态,并保持会话绑定适配器所有权稳定直到活动所有者注销。(#50725)感谢 @huntharo。 - **Discord/选择器**:通过跨重复模块图共享组件回调状态,保留回调回退,并在分发之前确认匹配的插件交互,保持 Discord 中的 `/codex_resume --browse-projects` 选择器回调存活。(#51260)感谢 @huntharo。 - **内存/核心工具**:独立注册 `memory_search` 和 `memory_get`,以便一个不可用的内存工具不再在新会话中抑制另一个。(#50198)感谢 @artwalker。 - **Telegram/Mattermost 消息工具**:在隔离和 cron 会话中保持插件按钮模式可选,以便没有当前通道活动时普通发送不会失败验证。(#52589)感谢 @tylerliu612。