← 返回更新日志

OpenClaw v2026.3.13-beta.1 预发布

2026-03-14 · GitHub 原文
npm beta 标签 `v2026.3.13-beta.1` 的预发布版本。 macOS 资源包使用稳定版应用 `2026.3.13` 构建,以便在后续的非 beta 版本中重复使用。本预发布版本中 `appcast.xml` 文件特意保持不变。 ### 更新 - Android/聊天设置:重新设计聊天设置面板,采用分组的设备和媒体区块,刷新“连接”和“语音”标签页,并收紧聊天输入框/会话标题栏以实现更紧凑的移动端布局。(#44894) 感谢 @obviyus。 - iOS/新用户引导:在网关设置前添加首次运行欢迎分页,停止自动打开二维码扫描器,并在连接步骤显示 `/pair qr` 指令。(#45054) 感谢 @ngutman。 - 浏览器/现有会话:为已登录的实时 Chrome 会话添加官方的 Chrome DevTools MCP 附加模式,并提供关于启用 `chrome://inspect/#remote-debugging` 的文档以及直接指向 Chrome 自身设置指南的链接。 - 浏览器/代理:为已登录的主浏览器添加内置 `profile="user"`,为扩展中继添加 `profile="chrome-relay"`,使代理浏览器调用能优先使用真实的已登录浏览器,而无需额外的 `browserSession` 选择器。 - 浏览器/act 自动化:为浏览器 act 请求添加批量操作、选择器 targeting 和延迟点击,并实现标准化的批量分发。感谢 @vincentkoc。 - Docker/时区覆盖:添加 `OPENCLAW_TZ`,使 `docker-setup.sh` 能将网关和 CLI 容器固定到指定的 IANA 时区,而非继承守护进程默认时区。(#34119) 感谢 @Lanfei。 - 依赖项/pi:将 `@mariozechner/pi-agent-core`、`@mariozechner/pi-ai`、`@mariozechner/pi-coding-agent` 和 `@mariozechner/pi-tui` 升级至 `0.58.0`。 ### 修复 - 仪表盘/聊天 UI:停止在仪表盘 v2 中每次实时工具结果都重新加载完整聊天历史,防止工具密集型运行在最终事件仍刷新持久化历史时触发 UI 冻结/重新渲染风暴。(#45541) 感谢 @BunsDev。 - Ollama/推理可见性:停止将原生的 `thinking` 和 `reasoning` 字段提升到最终助手文本中,使本地推理模型不再在普通回复中泄露内部思考过程。(#45330) 感谢 @xi7ang。 - Android/新用户引导二维码扫描:将设置二维码扫描切换为 Google Code Scanner,使新用户引导使用更可靠的扫描器,而非遗留的嵌入式 ZXing 流程。(#45021) 感谢 @obviyus。 - 浏览器/现有会话:强化驱动验证和会话生命周期,使传输错误触发重连,而工具级错误保留会话;提取共享 ARIA 角色集以去重 Playwright 和 Chrome MCP 快照路径。(#45682) 感谢 @odysseus0。 - 浏览器/现有会话:接受来自 Chrome DevTools MCP 的仅文本 `list_pages` 和 `new_page` 响应,使实时会话标签发现和新标签打开流程在服务器省略结构化页面元数据时仍能正常工作。 - 控制 UI/不安全认证:在纯 HTTP 控制 UI 连接上保留显式的共享令牌和密码认证,使局域网和反向代理会话不再在首次 WebSocket 握手前丢弃共享认证。(#45088) 感谢 @velvet-shark。 - 网关/会话重置:在网关会话重置间保留 `lastAccountId` 和 `lastThreadId`,使 `/reset` 后的回复仍能路由回同一账户和主题。(#44773) 感谢 @Lanfei。 - macOS/新用户引导:避免自重启刚引导的 launchd 网关,并为新守护进程安装提供更长的健康等待时间,使 `openclaw onboard --install-daemon` 不再在较慢的 Mac 和新虚拟机快照上错误失败。 - 网关/状态:添加 `openclaw gateway status --require-rpc` 和更清晰的 Linux 非交互式守护进程安装失败报告,使自动化能在探测失败时硬失败,而非将打印的 RPC 错误视为成功。 - macOS/执行许可:在网关提示器中尊重每代理执行许可设置,包括原生提示无法显示时的允许列表回退,使网关触发的 `system.run` 请求遵循配置的策略,而非总是提示或意外拒绝。(#13707) 感谢 @sliekens。 - Telegram/媒体下载:将相同的直接或代理传输策略纳入 SSRF 保护的文件获取中,使入站附件在 Telegram 在环境代理和直接网络间回退时仍能工作。(#44639) 感谢 @obviyus。 - Telegram/入站媒体 IPv4 回退:对 Telegram 文件下载的 SSRF 保护重试一次,采用与 Bot API 调用相同的 IPv4 回退策略,使 IPv6 损坏主机上的全新安装不再无法下载入站图片。 - Windows/网关安装:限制 `schtasks` 调用并在任务创建挂起时回退到启动文件夹登录项,使原生 `openclaw gateway install` 能快速失败,而非在损坏的计划任务设置上永久挂起。 - Windows/网关停止:从安装的 `gateway.cmd` 端口解析启动文件夹回退监听器,使 `openclaw gateway stop` 现在能在重启前实际终止回退启动的网关进程。 - Windows/网关状态:读取运行时状态时重用安装的服务命令环境,使启动回退网关在 `gateway status --json` 中继续报告配置的端口和运行状态,而非回退到“网关端口未知”。 - Windows/网关认证:停止在本地回环共享令牌和密码网关调用上附加设备身份,使原生 Windows 代理回复不再在成功前记录过时的“设备签名过期”回退噪音。 - Discord/网关启动:将纯文本和瞬态 `/gateway/bot` 元数据获取失败视为瞬态启动错误,使 Discord 网关启动不再因未处理的拒绝而崩溃。(#44397) 感谢 @jalehman。 - Slack/探测:在简化探测结果路径的同时保持 `auth.test()` 机器人和团队元数据映射稳定。(#44775) 感谢 @Cafexss。 - 仪表盘/聊天 UI:将超大纯文本回复渲染为普通段落而非受限的灰色代码块,使长桌面聊天响应无需标签切换刷新即可阅读。 - 仪表盘/聊天 UI:在新消息滚动药丸上恢复 `chat-new-messages` 类,使按钮使用其现有紧凑样式,而非渲染为全屏 SVG 叠加层。(#44856) 感谢 @Astro-Han。 - 网关/控制 UI:恢复仅限操作员的设备认证绕过,并分类浏览器连接失败,使起源和设备身份问题不再在控制 UI 和网络聊天中显示为认证错误。(#45512) 感谢 @sallyom。 - macOS/语音唤醒:当语音片段范围来自不同转录实例时,停止崩溃唤醒词命令提取。 - Discord/允许列表:在水合的行会对象缺失时尊重原始 `guild_id`,使允许列表的频道和主题(如 `#maintainers`)不再在频道允许列表检查前被错误丢弃。 - macOS/运行时定位器:在 macOS 运行时发现期间要求 Node >=22.16.0,使应用不再接受主运行时保护器稍后拒绝的 Node 版本。感谢 @sumleo。 - 代理/自定义提供商:为回环 OpenAI 兼容自定义提供商保留空白 API 密钥,方法是在运行时清除合成的 Authorization 头,同时保持显式的 apiKey 和 oauth/token 配置不会静默降级为伪造的 bearer 认证。(#45631) 感谢 @xinhuagu。 - 模型/google-vertex Gemini flash-lite 标准化:将现有裸 ID 预览标准化应用于 `google-vertex` 模型引用和提供商配置,使 `google-vertex/gemini-3.1-flash-lite` 解析为 `gemini-3.1-flash-lite-preview`。(#42435) 感谢 @scoootscooob。 - iMessage/远程附件:在生成 SCP 前拒绝不安全的远程附件路径,使发送方控制的文件名不再能向远程媒体暂存注入 shell 元字符。感谢 @lintsinghua。 - Telegram/webhook 认证:在读取或解析请求体前验证 Telegram webhook 密钥,使未认证请求被立即拒绝,而非先消耗最多 1 MB 数据。感谢 @space08。 - 安全/设备配对:使引导设置码一次性使用,使挂起的设备配对请求在批准前无法被静默重放和扩大为管理员。感谢 @tdjackey。 - 安全/外部内容:在边界消毒期间剥离零宽和软连字符标记分割字符,使伪造的 `EXTERNAL_UNTRUSTED_CONTENT` 标记回退到现有强化路径,而非绕过标记规范化。 - 安全/执行许可:在批准绑定期间解包更多 `pnpm` 运行时形式,包括 `pnpm --reporter ... exec` 和直接的 `pnpm node` 文件运行,并配有匹配的回归覆盖和文档更新。 - 安全/执行许可:对 Perl `-M` 和 `-I` 批准流程失败关闭,使预加载和加载路径模块解析在批准支持的运行时执行外保持,除非操作员使用更广泛的显式信任路径。 - 安全/执行许可:在 macOS 内联命令提取期间识别 PowerShell `-File` 和 `-f` 包装形式,使批准和命令分析路径将基于文件的 PowerShell 启动视为现有的 `-Command` 变体。 - 安全/执行许可:在 macOS shell-chain 解析的 shell 段允许列表分辨率内解包 `env` 分发包装器,使 `env FOO=bar /path/to/bin` 针对有效可执行文件而非包装器令牌解析。 - 安全/执行许可:在 macOS shell-chain 解析中将反斜杠换行视为 shell 行继续,使行继续的 `$(` 替换失败关闭,而非滑过命令替换检查。 - 安全/执行许可:将 macOS 技能自动允许信任绑定到可执行文件名和解析路径两者,使同名二进制文件不再从无关的技能二进制文件继承信任。 - 构建/插件 SDK 打包:在一个共享构建通道中打包插件 SDK 子路径条目,使发布的包停止复制共享区块并避免最近的插件 SDK 内存爆炸。(#45426) 感谢 @TarasShyn。 - Cron/隔离会话:将嵌套 cron 触发的嵌入式运行器工作路由到嵌套通道,使隔离 cron 作业在压缩或其他排队内部工作运行时不再死锁。感谢 @vincentkoc。 - 代理/OpenAI 兼容兼容覆盖:尊重非原生 `openai-completions` 端点的显式用户 `models[].compat` 选择加入,使使用中流能力覆盖不再在端点实际支持时被强制关闭。(#44432) 感谢 @cheapestinference。 - 代理/Azure OpenAI 启动提示:重新表述内置的 `/new`、`/reset` 和压缩后启动指令,使 Azure OpenAI 部署不再因内容过滤器触发 HTTP 400 误报。(#43403) 感谢 @xingsy97。 - 代理/内存引导:仅加载一个根内存文件,优先使用 `MEMORY.md` 并以 `memory.md` 作为回退,使不区分大小写的 Docker 挂载不再注入重复的内存上下文。(#26054) 感谢 @Lanfei。 - 代理/压缩:将压缩后令牌健全性检查与完整会话压缩前总量比较,并在令牌估算失败时跳过检查,使具有大型引导上下文的会话保持真实令牌计数,而非回退到未知。(#28347) 感谢 @efe-arv。 - 代理/压缩:通过默认和可配置的自定义指令保留安全压缩摘要语言连续性,使自动压缩后角色漂移减少。(#10456) 感谢 @keepitmello。 - 代理/工具警告:在 `tools.profile` 警告中区分像 `apply_patch` 这样的门控核心工具与仅插件的未知条目,使不可用的核心工具现在报告当前运行时/提供商/模型/配置门控,而非建议缺失插件。 - 配置/验证:在严格配置验证中接受文档化的 `agents.list[].params` 每代理覆盖,使 `openclaw config validate` 不再拒绝运行时支持的 `cacheRetention`、`temperature` 和 `maxTokens` 设置。(#41171) 感谢 @atian8179。 - 配置/Web 获取:恢复文档化的 `tools.web.fetch.readability` 和 `tools.web.fetch.firecrawl` 设置的运行时验证,使有效的 Web 获取配置不再因无法识别的键错误而失败。(#42583) 感谢 @stim64045-spec。 - 信号/配置验证:添加 `channels.signal.groups` 架构支持,使每组的 `requireMention`、`tools` 和 `toolsBySender` 覆盖在配置验证期间不再被拒绝。(#27199) 感谢 @unisone。 - 配置/发现:在严格配置验证中接受 `discovery.wideArea.domain`,使单播 DNS-SD 网关配置不再因无法识别的键错误而失败。(#35615) 感谢 @ingyukoh。 - Telegram/媒体错误:在构建媒体获取错误前编辑 Telegram 文件 URL,使失败的入站下载不再将机器人令牌泄露到日志中。感谢 @space08。