← 返回更新日志

OpenClaw v2026.3.23

2026-03-23 · GitHub 原文
### 修复 - **Browser/Chrome MCP**:等待现有会话的浏览器标签在附加后变为可用状态,而非将初始 Chrome MCP 握手视为就绪。这减少了 macOS Chrome 附加流程中的用户配置文件超时和重复的同意操作。修复 #52930。感谢 @vincentkoc。 - **Browser/CDP**:在短暂的初始可达性失败后,重用已在运行的环回浏览器,而非立即回退到重新启动检测。这修复了在较慢的无头 Linux 环境下第二次运行浏览器启动/打开的回归问题。修复 #53004。感谢 @vincentkoc。 - **ClawHub/macOS 认证**:遵循 macOS 认证配置和 XDG 认证路径以保存 ClawHub 凭据,使 `openclaw skills ...` 和网关技能浏览继续使用已登录的认证状态,而非静默回退到未认证模式。修复 #53034。 - **ClawHub/macOS**:从 macOS 应用程序支持路径读取本地 ClawHub 登录信息,并在 macOS 上仍遵循 XDG 配置,使技能浏览在默认和 XDG 风格设置下都能使用已登录的令牌。修复 #52949。感谢 @scoootscooob。 - **ClawHub/skills**:为网关技能浏览解析本地 ClawHub 认证令牌,并将浏览所有请求切换为搜索,使 ClawControl 不再陷入未认证的 429 错误和空的已认证技能列表。修复 #52949。感谢 @vincentkoc。 - **Plugins/message tool**:再次使 Discord `components` 和 Slack `blocks` 变为可选,并将 Feishu `message(..., media=...)` 发送路由到出站媒体路径,使置顶/取消置顶/反应流程不再失败于模式验证,且 Feishu 文件/图片附件能实际发送。修复 #52970 和 #52962。感谢 @vincentkoc。 - **Gateway/model pricing**:阻止 `openrouter/auto` 定价刷新在引导期间无限递归,使 OpenRouter 自动路由能再次填充缓存定价和 `usage.cost`。修复 #53035。感谢 @vincentkoc。 - **Mistral/models**:降低捆绑的 Mistral 最大令牌默认值为安全输出预算,并教导 `openclaw doctor --fix` 修复仍携带上下文大小输出限制的旧持久化 Mistral 提供商配置,避免在新环境和现有环境上出现确定性的 Mistral 422 拒绝。修复 #52599。感谢 @vincentkoc。 - **Agents/web_search**:使用活动运行时的 `web_search` 提供商,而非过时/默认选择,使智能体回合继续命中实际配置的提供商。修复 #53020。感谢 @jzakirov。 - **Models/OpenAI Codex OAuth**:在存储凭据刷新路径和令牌续订运行之前,引导环境配置的 HTTP/HTTPS 代理调度器,使过期 Codex OAuth 配置文件能在需要代理的环境中成功刷新,而非在首次令牌过期后锁定用户。 - **Models/OpenAI Codex OAuth 和 Plugins/MiniMax OAuth**:确保在 OAuth 预检和令牌交换请求之前初始化环境配置的 HTTP/HTTPS 代理调度器,使需要代理的环境能再次完成 MiniMax 和 OpenAI Codex 登录流程。(#52228;修复 #51619, #51569)感谢 @openperf。 - **Plugins/memory-lancedb**:在首次使用且捆绑的 npm 安装不包含 LanceDB 时,将其引导到插件运行时状态,使 `plugins.slots.memory="memory-lancedb"` 在全局 npm 安装后无需将 LanceDB 移入 OpenClaw 核心依赖即可再次工作。修复 #26100。 - **Config/plugins**:将过时的未知 `plugins.allow` ID 视为警告而非致命配置错误,使 `plugins install`、`doctor --fix` 和 `status` 等恢复命令在插件本地缺失时仍能运行。修复 #52992。感谢 @vincentkoc。 - **Doctor/WhatsApp**:停止自动启用将内置频道 ID(如 `whatsapp`)追加到 `plugins.allow`,使 `openclaw doctor --fix` 在修复内置频道时不再写入模式无效的插件允许列表条目。修复 #52931。感谢 @vincentkoc。 - **Telegram/auto-reply**:在相同聊天入站防抖顺序中保留顺序,且不滞留过时的繁忙会话后续消息,并在跟踪的防抖键饱和时保持相同键溢出回合有序。(#52998)感谢 @osolmaz。 - **Telegram/message tool**:为图像和 GIF 发送添加 `asDocument` 作为 `forceDocument` 的用户友好别名,同时在两个标志都存在时保留显式 `forceDocument` 的优先权。(#52461)感谢 @bakhtiersizhaev。 - **Discord/commands**:为特权原生斜杠命令返回明确的未授权回复,而非在认证门禁拒绝发送者时回退到 Discord 误导性的通用完成提示。修复 #53041。感谢 @scoootscooob。 - **Channels/catalog**:允许外部频道目录覆盖提供的后备元数据,并在频道设置期间遵循覆盖的 npm 规范,使自定义频道目录在频道 ID 匹配时不再回退到捆绑包。(#52988) - **Voice-call/Plivo**:稳定 Plivo v2 重放密钥,使 webhook 重试和重放保护在有效后续投递时不再冲突。 - **Agents/skills**:为嵌入式技能配置和环境注入首选活动解析的运行时快照,使 `skills.entries.<skill>.apiKey` SecretRefs 在嵌入式启动期间正确解析,而非在原始源配置上失败。修复 #53098。感谢 @vincentkoc。 - **Agents/subagents**:在发送完成事件前,根据最新运行时快照重新检查超时的工作者等待,使实际成功快速完成的工作者不再被报告为超时。修复 #53106。感谢 @vincentkoc。 - **Agents/Anthropic**:在转录图像消毒过程中保留最新助手思考和编辑思考块顺序,使后续回合不会触发 Anthropic 未修改思考验证。(#52961)感谢 @vincentkoc。 - **Plugins/DeepSeek**:重构捆绑的 DeepSeek 提供商到共享单提供商插件条目,将其覆盖率移入扩展测试通道,并保持捆绑认证环境变量元数据在生成的清单路径上。(#48762)感谢 @07akioni。 - **Plugins/Matrix**:在 Jiti 下避免重复的 `resolveMatrixAccountStringValues` 运行时 API 导出,使捆绑的 Matrix 安装在启动时不再因 `Cannot redefine property: resolveMatrixAccountStringValues` 而崩溃。修复 #52909 和 #52891。感谢 @vincentkoc。 - **Security/exec approvals**:仅通过拒绝单引号的 `$0`/`$n` 令牌、禁止换行分隔的 `exec` 并仍接受 `exec --` 载体形式,使 shell 包装器位置参数 argv 允许列表匹配保持在实际直接载体上。感谢 @vincentkoc。 - **Gateway/probe**:阻止成功的网关握手在连接后详细 RPC 仍在加载时作为不可达超时,使慢速设备报告可到达的 RPC 失败而非假阴性死网关。修复 #52927。感谢 @vincentkoc。 - **Gateway/supervision**:通过在重复进程处于重试等待而非在另一个健康网关仍拥有锁时作为失败退出,阻止锁冲突在 launchd 和 systemd 下崩溃循环。修复 #52922。感谢 @vincentkoc。 - **Gateway/auth**:要求画布路由需要认证,且代理会话重置需要管理员范围,使匿名画布访问和非管理员重置请求失败关闭。 - **Release/install**:在发布的 openclaw npm 安装中保留先前发布的捆绑插件和控制 UI 资源,并在这些 shipped 工件缺失时失败发布检查。感谢 @vincentkoc。