← 返回更新日志

OpenClaw v2026.3.8-beta.1 预发布

2026-03-09 · GitHub 原文
### 变更 - CLI/备份:新增 `openclaw backup create` 和 `openclaw backup verify` 命令,用于本地状态归档,支持 `--only-config`、`--no-include-workspace` 选项,包含清单/载荷验证,并在破坏性流程中提供备份指引。(#40163) 感谢 @shichangs。 - macOS/入门引导:远程模式新增远程网关令牌字段,保留现有非明文 `gateway.remote.token` 配置值直至被明确替换,并在加载的令牌形状无法直接从 macOS 应用使用时发出警告。(#40187,取代 #34614) 感谢 @cgdusek。 - 对话模式:新增顶层 `talk.silenceTimeoutMs` 配置,使 Talk 在可配置的静默时长后自动发送当前转录内容,同时保留各平台未设置时的现有默认暂停窗口。(#39607) 感谢 @danodoesdesign。修复 #17147。 - TUI:在已配置代理工作区内启动时,从当前工作区推断活跃代理,同时保留显式的 `agent:` 会话目标。(#39591) 感谢 @arceus77-7。 - 工具/Brave 网页搜索:新增可选 `tools.web.search.brave.mode: "llm-context"`,使 `web_search` 可调用 Brave 的 LLM Context 端点并返回带源元数据的提取摘要片段,同时完善配置/文档/测试覆盖。(#33383) 感谢 @thirumaleshp。 - CLI/安装:在元数据可用时,将简短 git 提交哈希包含进 `openclaw --version` 输出,并保持安装程序版本检查与装饰格式兼容。(#39712) 感谢 @sourman。 - CLI/备份:改进归档命名以支持日期排序,新增仅配置备份模式,并强化备份规划、发布和验证的边界情况处理。(#40163) 感谢 @gumadeiras。 - ACP/溯源:新增可选 ACP 入口溯源元数据和可见回执注入 (`openclaw acp --provenance off|meta|meta+receipt`),使 OpenClaw 代理可在会话追踪 ID 中保留并报告 ACP 来源上下文。(#40473) 感谢 @mbelinky。 - 工具/网页搜索:在运行时选择、入门引导/配置选择器及配置元数据中对提供商排序进行字母化,使提供商列表保持中立,且多键自动检测现优先选择 Grok 而非 Kimi。(#40259) 感谢 @kesku。 - 文档/网页搜索:恢复每月 5 美元免费额度详情,用当前“Search”计划替换已失效的“Data for Search”/“Data for AI”计划名称,并在 Brave 设置文档中注明旧订阅有效性。跟进 #26860。(#40111) 感谢 @remusao。 - 扩展/ACPX 测试:将共享运行时辅助工具从 `src/runtime-internals/` 移至 `src/test-utils/`,使该仅测试辅助工具不再看似已发布的运行时代码。 ### 修复 - macOS 应用/聊天界面:将浏览器代理通过本地节点浏览器服务路由,保留纯文本粘贴语义,从转录中剥离已完成助手追踪/调试包装噪音,从系统设置返回后刷新权限状态,并容忍 macOS 标签页中的格式错误 cron 行。(#39516) 感谢 @Imhermes1。 - Android/Play 分发:从 Android 应用中移除自更新、后台定位、`screen.record` 和后台麦克风捕获,将前台服务限制为仅 `dataSync`,并清理遗留 `location.enabledMode=always` 偏好迁移。(#39660) 感谢 @obviyus。 - Telegram/DM 路由:按代理而非会话密钥对入站 Telegram 直接消息去重,防止当 `agent:main:main` 和 `agent:main:telegram:direct:<id>` 同时解析同一代理时,同一 DM 触发重复回复。修复 #40005。取代 #40116。(#40519) 感谢 @obviyus。 - Cron/Telegram 公告投递:在最终确定衍生输出后,将纯文本公告作业通过真实出站适配器路由,使纯 Telegram 目标不再在消息未实际到达 Telegram 时报告 `delivered: true`。(#40575) 感谢 @obviyus。 - Matrix/DM 路由:为损坏的 `m.direct` homeserver 添加更安全的回退检测,尊重显式房间绑定而非 DM 分类,并为 Matrix DM 房间保留房间绑定代理选择。(#19736) 感谢 @derbronko。 - 飞书/插件入门引导:安装频道插件后清除短期插件发现缓存再重新加载注册表,使入门引导在成功安装后不再立即提示下载飞书。修复 #39642。(#39752) 感谢 @GazeKingNuWu。 - 插件/频道入门引导:在入门引导和发布频道同步期间,优先使用捆绑频道插件而非同插件 ID 的 npm 安装副本,防止捆绑插件被 npm 安装副本遮蔽。(#40092) - 配置/运行时快照:在配置写入后保持机密运行时解析的配置和身份配置文件快照完整,使后续读取仍能看到文件支持的机密值,同时获取持久化配置更新。(#37313) 感谢 @bbblending。 - 网关/控制界面:通过符号链接的全局包装器和自动检测的包根解析捆绑仪表板资源,同时将配置和自定义根保留在严格硬链接边界内。(#40385) 感谢 @LarytheLord。 - 浏览器/扩展中继:新增 `browser.relayBindHost` 使 Chrome 中继可绑定到显式非回环地址以支持 WSL2 及其他跨命名空间设置,同时保留仅回环默认值。(#39364) 感谢 @mvanhorn。 - 浏览器/CDP:将回环直连 WebSocket CDP URL 规范化为 `/json/*` 标签页操作的 HTTP(S),使本地 `ws://`/`wss://` 配置在新直连 WS 支持后仍能列出、聚焦、打开和关闭标签页。(#31085) 感谢 @shrey150。 - 浏览器/CDP:将来自远程 `/json/version` 响应的通配符 `ws://0.0.0.0` 和 `ws://[::]` 调试器 URL 重写回外部 CDP 主机/端口,修复 Browserless 风格容器端点。(#17760) 感谢 @joeharouni。 - 浏览器/扩展中继:在短暂等待先前附加的 Chrome 标签页在瞬时中继丢失后重新出现,再报 `tab not found` 错误,减少嘈杂重连波动。(#32461) 感谢 @AaronWander。 - macOS/Tailscale 网关发现:当其他远程网关已发现时保持 Tailscale Serve 探测活跃,对解析的 `.ts.net` 和 Tailscale Serve 网关优先使用直连传输,并为 GUI 启动的 Tailscale CLI 发现设置 `TERM=dumb`。(#40167) 感谢 @ngutman。 - TUI/主题:通过 `COLORFGBG` 检测浅色终端背景并选择 WCAG AA 合规浅色方案,提供 `OPENCLAW_THEME=light|dark` 覆盖以适配无法自动检测的终端。(#38636) 感谢 @ademczuk 和 @vincentkoc。 - 代理/openai-codex:当配置漂移至通用 OpenAI 响应端点时,将 `gpt-5.4` 回退传输规范回 `openai-codex-responses` 以匹配 `chatgpt.com/backend-api`。(#38736) 感谢 @0xsline。 - 模型/openai-codex GPT-5.4 前向兼容:对 `openai-codex/gpt-5.4` 使用 GPT-5.4 的 1,050,000 令牌上下文窗口和 128,000 最大令牌,而非在解析回退和模型列表中继承过时遗留 Codex 限制。(#37876) 感谢 @yuweuii。 - 工具/网页搜索:恢复 Perplexity OpenRouter/Sonar 对遗留 `OPENROUTER_API_KEY`、`sk-or-...` 及显式 `perplexity.baseUrl`/`model` 设置的兼容性,同时保持直接 Perplexity 密钥走原生 Search API 路径。(#39937) 感谢 @obviyus。 - 代理/故障转移:将 Amazon Bedrock `Too many tokens per day` 配额错误检测为跨故障转移、cron 重试和内存嵌入的速率限制,同时将上下文窗口 `too many tokens per request` 错误排除在速率限制通道外。(#39377) 感谢 @gambletan。 - Mattermost 回复:当代理在主题内回复时,将 `root_id` 固定到现有主题根,同时对顶层帖子仍使用回复目标主题设置。(#27744) 感谢 @hnykda。 - Telegram/DM 部分流式传输:DM 预览通道保持对真实消息编辑的响应而非原生草稿实体化,使最终回复不再在折叠回单条前闪现第二个重复副本。 - macOS 覆盖层:通过移除 `OverlayPanelFactory.present` 中的共享 `inout` 可见性突变,修复 VoiceWake、Talk 和 Notify 覆盖层独占性崩溃,并添加重复 Talk 覆盖层冒烟测试。(#39275, #39321) 感谢 @fellanH。 - macOS 对话模式:将语音识别请求 `taskHint` 设为 `.dictation` 以捕获麦克风输入,并为请求默认值添加回归覆盖。(#38445) 感谢 @dmiv。 - macOS 发布打包:将 `scripts/package-mac-app.sh` 默认设为 `BUILD_CONFIG=release` 的通用二进制,并澄清 `scripts/package-mac-dist.sh` 已生成发布 zip + DMG。(#33891) 感谢 @cgdusek。 - 钩子/会话内存:将 `/new` 和 `/reset` 内存产物保留在绑定代理工作区,并在陈旧主代理密钥泄漏到钩子路径时,使保存的重置会话键与该工作区对齐。(#39875) 感谢 @rbutera。 - 会话/模型切换:会话更改模型时清除陈旧缓存 `contextTokens`,使状态和运行时路径针对活动模型窗口重新计算。(#38044) 感谢 @yuweuii。 - ACP/会话历史:为成功的 ACP 子运行持久化转录,保留精确转录文本,记录 ACP 生成会话谱系,并以尽力方式保持生成时转录路径持久化,使历史存储失败不阻塞执行。(#40137) 感谢 @mbelinky。 - 文档/浏览器:添加分层 WSL2 + Windows 远程 Chrome CDP 故障排除指南,涵盖控制界面源陷阱和扩展中继绑定地址指引。(#39407) 感谢 @Owlock。 - 上下文引擎注册表/捆绑构建:通过 `globalThis` 单例共享注册表状态,使重复的捆绑模块副本能在运行时相互解析已注册的引擎,并为重复模块导入添加回归覆盖。(#40115) 感谢 @jalehman。 - Podman/设置:修复 `run_as_user` 中因 `setup-podman.sh` 从目标用户无法访问的目录调用而导致的 `cannot chdir: Permission denied`,方法是将用户切换调用包装在 `cd` 到 `/tmp`(`/` 作为回退)的子 shell 中。(#39435) 感谢 @langdon 和 @jlcbk。 - Podman/SELinux:自动检测 SELinux 强制/宽容模式,并在 `run-openclaw-podman.sh` 和 Quadlet 模板中为绑定挂载添加 `:Z` 重标签,修复 Fedora/RHEL 主机上的 `EACCES`。支持 `OPENCLAW_BIND_MOUNT_OPTIONS` 覆盖。(#39449) 感谢 @langdon 和 @githubbzxs。 - 代理/上下文引擎插件:在嵌入式运行、压缩和子代理边界处一次性引导运行时插件,使插件提供的上下文引擎和钩子在运行时解析前从活动工作区加载。(#40232) - 文档/更新日志:更正捆绑控制界面全局安装修复的贡献者署名给 @LarytheLord。(#40420) 感谢 @velvet-shark。 - Telegram/媒体下载:仅对停滞的主体读取超时,使轮询能从挂起的文件下载恢复,而不中止仍在流式传输数据的慢速下载。(#40098) 感谢 @tysoncung。 - Docker/运行时镜像:清理开发依赖,剥离仅构建发行元数据以减小 Docker 镜像体积。(#40307) 感谢 @vincentkoc。 - 网关/重启超时恢复:重启触发关闭超时时退出非零状态,使 launchd/systemd 重启网关而非将失败重启视为正常停止。源自贡献者 PR #40380 by @dsantoreis。感谢 @dsantoreis。 - 网关/配置重启保护:服务启动/重启前验证配置,并防止 SIGUSR1 后启动失败导致网关进程崩溃,减少无效配置重启循环和 macOS 权限丢失。源自贡献者 PR #38699 by @lml2468。感谢 @lml2468。 - 网关/launchd 重生检测:将 `XPC_SERVICE_NAME` 视为 launchd 监管提示,使 macOS 在 launchd 下干净退出而非尝试分离式自重生。源自贡献者 PR #20555 by @dimat。感谢 @dimat。 - Telegram/轮询重启清理:在关闭或强制轮询重启停止运行器时中止进行中的 Telegram API 获取,防止陈旧的 `getUpdates` 长轮询与替换运行器冲突。源自贡献者 PR #23950 by @Gkinthecodeland。感谢 @Gkinthecodeland。 - Cron/重启追赶交错:限制启动时立即重放错失作业,并在追赶后时钟重新调度延迟余量,防止重启突发导致网关饥饿或静默跳过逾期循环作业。源自贡献者 PR #18925 by @rexlunae。感谢 @rexlunae。 - Cron/仅所有者工具:将受信任的隔离 cron 运行传入嵌入式代理并附带所有者上下文,使 `cron`/`gateway` 工具在所有者认证硬化缩小直接消息所有权推断后仍可用。 - 浏览器/SSRF:在严格浏览器导航流程中阻止私有网络中间重定向跳转,当远程标签页打开路径无法检查重定向链时失败封闭。感谢 @zpbrent。 - MS Teams/授权:即使配置了团队/频道路由允许列表,仍保持 `groupPolicy: "allowlist"` 强制发件人允许列表,防止路由匹配不再将组访问扩展到该路由的每个发件人。感谢 @zpbrent。 - 安全/system.run:将批准的 `bun` 和 `deno run` 脚本操作数绑定到磁盘文件快照,使批准后脚本重写在执行前被拒绝。 - 技能/下载安装:在写入下载归档前固定验证的每技能工具根,防止重新绑定词法工具路径将下载写入重定向到预期工具目录外。感谢 @tdjackey。