← 返回更新日志

OpenClaw v2026.5.22-beta.1 预发布

2026-05-23 · GitHub 原文
## 2026.5.22 ### 变更 - 文档:澄清README入门指南和Gateway启动路径、WhatsApp QR码/408恢复、cron输出语言提示、技能高级功能、gateway上游403故障排除,以及插件回退覆盖指导。感谢 @deepujain、@Zacxxx、@Jah-yee、@neyric、@usimic、@Renu-Cybe、@BigUncle 和 @SeashoreShi。 - 文档:澄清上下文修剪比率边界、本地仪表板恢复、CLI环境标记、远程入门令牌行为,以及用于子进程代理的Peekaboo Bridge权限。感谢 @ayesha-aziz123、@dishraters、@hougangdev 和 @brandonlipman。 - 文档:澄清浏览器CDP诊断、Plugin SDK允许列表导入、状态反应定时默认值、队列导向行为、受限工具故障排除、cron心跳处理、Telegram多智能体组、Bitwarden SecretRef设置以及EasyRunner部署。感谢 @Quratulain-bilal、@mbelinky、@Mickey-、@vancece、@xenouzik、@posigit、@surlymochan、@janaka 和 @choiking。 - Crabbox/Testbox:从临时完整检出中运行干净的稀疏检出Testbox同步,并通过Corepack pnpm路由远程变更的gate。 - 文档:澄清仅IPv4 Gateway BYOH绑定、受信任代理范围清除、Android配对批准、macOS辅助功能授予、Zalo配置文件环境变量、密码存储SecretRef设置以及中文记忆导航。感谢 @itskai-dev、@gwh7078、@longstoryscott、@MoeJaberr 和 @yuaiccc。 - 文档:将GLM整合到Z.AI下,添加Upstash Box安装指南和Gateway暴露运行手册,澄清MEDIA指令、Copilot和Voyage设置、配置路径引用、真实行为证明以及记忆文件写入指导。感谢 @BobDu、@alitariksahin、@Jefsky、@musaabhasan、@OmerZeyveli、@leno23、@WuKongAI-CMU、@luoyanglang 和 @majin1102。 - 文档:澄清媒体提供者凭证、Codex/OpenClaw代码模式边界、Slack和Telegram确认反应、飞书动态代理、密钥明文边界、记忆指导以及中文词汇表术语。感谢 @nielskaspers、@cosmopolitan033、@drclaw-iq、@alexgduarte、@zccyman、@chengoak 和 @cassthebandit。 - 打包:从npm tarball中排除文档图片和资源,减少发布的包大小,不影响运行时文档搜索或CLI行为。感谢 @SebTardif。 - 媒体理解:停止自动探测Gemini CLI,仅将Antigravity CLI用作配置的提供者API之后的低优先级图片/视频后备方案。 - 代理/子代理:将默认子代理引导上下文限制为`AGENTS.md`和`TOOLS.md`,默认将角色、身份、用户、记忆、心跳和设置文件排除在委托工作进程之外。(#85283)感谢 @100yenadmin。 - 维护者技能:将插件SDK/API边界工作排除在`openclaw-landable-bug-sweep`之外,以便bugbash扫描专注于小的修修补补修复。 - QA-Lab/诊断:扩展OpenTelemetry冒烟测试工具以验证追踪、指标和日志导出,并添加一流的Prometheus和可观测性冒烟别名。 - 插件SDK:添加通用频道消息轮询发送器,以便频道插件可以不依赖特定频道SDK外观来提供轮询投递。 - Crabbox:保持本地包装器的提供者验证与已安装的Crabbox二进制文件同步,同时保留支持的别名如`docker`和`blacksmith`。(#85302)感谢 @hxy91819。 - 维护者技能:添加`openclaw-landable-bug-sweep`,用于从问题/PR扫描中生成五个小的、经过审查的、CI绿色的OpenClaw bug修复PR。 - 控制UI/聊天:在聊天会话选择器中添加搜索和“加载更多”分页,使初始会话加载有界,同时使更早的对话可访问。(#85237)感谢 @amknight。 - CLI/入门:当裸`openclaw`在存在创作配置之前运行时启动经典入门,同时将已配置的安装保留在Crestodian上。(#72343)感谢 @fuller-stack-dev。 - Discord:允许为长时间运行组件工作流配置有界`agentComponents.ttlMs`回调注册表生命周期,支持每账户覆盖和24小时上限。(#84189)感谢 @100menotu001。 - xAI/Grok:为Grok的`web_search`重复使用xAI OAuth认证配置文件,通过web搜索线程传递活动代理认证,添加Grok模型别名,并让媒体提供者声明默认操作超时。(#85182)感谢 @fuller-stack-dev。 - 插件SDK:添加行级会话工作流助手,并弃用`loadSessionStore`,以便插件可以读取和修补会话而不依赖于旧的整体存储结构。(#84693)感谢 @efpiva。 - Gateway/插件:在调度期间重用兼容的Gateway启动插件注册表,以便安全的插件调度避免重复的注册表加载。(#84324)感谢 @ai-hpc。 - 插件/SDK:添加通用的`embeddingProviders`能力契约和注册API,使嵌入成为内存特定适配器之外的可重用提供者表面。 - 依赖:刷新提供者、插件、UI和工具包,将`protobufjs`更新到8.4.0以清除当前的npm公告,并将Claude ACP完成补丁前移到`@agentclientprotocol/claude-agent-acp` 0.36.1。 - 代理/工具:移除旧的发送者-所有者工具门控路径,以便已配置的工具对受信任的会话保持可见,而命令和频道操作认证仍然携带真实的发送者身份。 - QA-Lab:为运行时一致性审计添加精心策划的模拟JSONL重放夹具和首次漂移报告。(#80323,引用#80176)感谢 @100yenadmin。 - QA-Lab:为经过清理的工具调用断言添加QA总线工具追踪可见性场景。 - QA-Lab:用具体的观察到的QA行为替换种子场景提示中的通用证据框架。 - QA-Lab:在覆盖率报告中列出命名的场景包,以便个人代理隐私覆盖率在审计中保持可见。 - QA-Lab:在覆盖率报告中列出实时传输通道成员资格,以便真实传输检查与种子qa-channel场景保持分离。 - 发布/打包:在包验收通道之前运行包完整性检查,以便公共安装/更新验证在私有QA资产泄漏到包之前失败。 - QA-Lab:将可选的100轮运行时一致性浸泡包含在发布浸泡工件中,以便长时间运行的Codex/Pi转录漂移在默认gate之外保持可见。(#80395)感谢 @100yenadmin。 - QA-Lab:为Codex应用服务器超时和停滞运行哨兵添加仅实时的长上下文进度看门狗场景。(#80323)感谢 @100yenadmin。 - QA-Lab:将gateway重启恢复和流式最终完整性场景标记为仅实时运行时一致性通道。(#80323)感谢 @100yenadmin。 - QA-Lab:添加个人代理故障恢复场景,检查诚实的部分状态、重试边界和本地恢复工件。(#83872)感谢 @iFiras-Max1。 - QA-Lab:包含可选的`update.run`包自我升级哨兵,用于破坏性的最新包恢复检查。 - QA-Lab:为缺失安装、固定版本漂移、首轮安装排序和doctor迁移安全性添加Codex插件生命周期和认证配置文件夹具覆盖。(#80323,引用#80174)感谢 @100yenadmin。 - 模型/性能:在gateway启动时预热提供者认证状态映射,以便`/models`和每个模型列表调用在热路径上短路每个提供者的插件/外部CLI发现。每次调用成本从约20秒降至约5毫秒(约4100倍);一次性启动预热在热重载后重置并重新预热。(#84816)感谢 @sjf。 - 发布/安全:使用生成的shrinkwrap发布根npm包和OpenClaw拥有的npm插件,为合适的插件tarball支持捆绑插件运行时依赖项,并要求审查锁文件/shrinkwrap更改,以便发布的安装使用锁定的依赖图。 - 测试/性能:将doctor核心健康检查单元覆盖与实际技能/工作空间发现隔离,使`doctor-core-checks`不再主导单元性能,同时保留一个真实的技能就绪性冒烟测试。(#84493)感谢 @frankekn。 ### 修复 - 代理/工具:在决定媒体、图像生成、视频生成、音乐生成和PDF工具是否可用时,遵循配置的自定义提供者API密钥。(#85570) - StepFun:停止广告过时的通用API密钥认证选择,以便入门仅提供运行时支持的Standard和Step Plan选择。 - 诊断:将OpenTelemetry日志体保持在显式内容捕获之后,并从OpenTelemetry和Prometheus标签中清除限定的代理会话密钥,同时保留有界队列通道前缀。 - Windows安装程序:当`pnpm install`或`pnpm build`失败时,使Git检出安装失败,而不是为缺失的CLI构建写入包装器。 - 会话:在`/new`轮换期间显示上一份转录存档失败,以便磁盘重命名错误被记录而不是静默隐藏遗留的转录文件。修复 #81984。(#85586,来自 #82081)感谢 @0xghost42。 - TUI/代理:将内部UI消息工具回复镜像到最终聊天输出中,使仅消息工具的代理在`openclaw tui`中保持可见。修复 #85538。感谢 @danpolasek。 - 代理:将并行的OpenAI兼容工具调用增量保持在单独的参数缓冲区中,以便交错工具调用不再损坏流式参数。(#82263)感谢 @luna-system。 - 记忆/doctor:将缺失或不可用的QMD工作空间目录报告为工作空间失败,而不是通用二进制失败。(#63167)感谢 @sercada。 - 调试代理:记录CONNECT客户端套接字错误并销毁配对的上游套接字,以便突然的客户端断开不再泄漏隧道资源。(#82444)感谢 @SebTardif。 - 差异:当某个差异卡片失败时继续水化后续差异卡片,以便单个损坏的卡片不再使整个差异查看器空白。(#84775)感谢 @cosmopolitan033。 - Mac应用:使用原生设置侧边栏窗口铬,以便侧边栏切换保持在左侧,内容不再在过大的标题栏填充下裁剪。 - QA-Lab/Codex:为流场景捆绑认证/插件夹具导入,并让终端异步媒体工具结束Codex应用服务器轮次而不超时。(#80397,引用 #80323)感谢 @100yenadmin。 - Gateway/代理:当陈旧的缓存代理会话条目与存储更新竞争时,保留新的会话覆盖和元数据,以便子代理模型/提供者覆盖和路由策略在并发写入中幸存。(#19328)感谢 @CodeReclaimers。 - 控制UI/聊天:保持聊天会话搜索与会话选择器内联,以便标题不再显示重复的独立搜索行。 - 控制UI/聊天:折叠聚焦模式标题铬并抑制隐藏标题滚动更新,以便聚焦模式在滚动时不再跳跃。感谢 @amknight。 - Codex应用服务器:当服务器端压缩超时时,重启原生应用服务器并重试一次,以便预检压缩停滞恢复而不是每次调度都失败。(#85500) - 恢复控制UI gateway令牌配对 [AI]。(#85459)感谢 @pgondhi987。 - OpenAI视频:为本地/自定义视频端点遵循配置的提供者请求私有网络选择加入,以便显式受信任的模拟和自托管提供者不被阻止。感谢 @shakkernerd。 - OpenAI视频:将上传的视频编辑请求发送到文档化的`/videos/edits`端点,使用`video`文件,而不是将MP4引用发布到`/videos`。感谢 @shakkernerd。 - 代理/频道:通过gateway代理完成交接保留消息工具投递证据,以便成功的生成媒体发送不会跟随虚假失败消息。感谢 @shakkernerd。 - CLI/更新:在后核心收敛期间修复托管npm插件`openclaw`的对等链接,并在重启前拒绝陈旧或错误目标的对等链接。(#83794)感谢 @fuller-stack-dev。 - CLI/代理:当频道有多个配置账户时,默认将新省略的账户绑定设置为所有账户,并澄清账户范围文档。(#49769)感谢 @Gcaufy。 - Codex应用服务器:让授权的`/codex`控制命令(如`/codex detach`)逃逸插件拥有的对话绑定,同时将未知或未授权的斜杠文本路由到绑定插件。修复 #85157。(#85188)感谢 @TurboTheTurtle。 - 自动回复/模型:通过共享有界只读目录路径与Gateway模型列表,保持`/models`浏览回复快速。(#84735)感谢 @safrano9999。 - Codex应用服务器:当有效执行主机是`node`时禁用原生代码模式,并保持OpenClaw的`exec`/`process`可用,以便`/exec host=node`通过选定的节点而不是gateway路由shell命令。修复 #85012。(#85090)感谢 @sahilsatralkar。 - 代理:将嵌入式自动压缩会话写锁看门狗绑定到压缩超时而不是完整运行超时,以便卡住的压缩不能在整个运行窗口内持有活动会话锁。(#84949)感谢 @luoyanglang。 - Gateway/代理:返回阶段感知的`agent.wait`超时归属,并仅在提供者启动的超时上冷却认证配置文件。引用 #65504。感谢 @100yenadmin。 - Gateway:将提供者认证状态预热推迟到启动就绪之后,以便早期gateway工具/会话请求不会被提供者认证发现阻塞。(#85272)感谢 @dutifulbob。 - Gateway/模型:在认证配置文件失败后合并提供者认证状态重新预热,并记录事件循环延迟以进行预热/重预热工作,以便提供者认证突发不再在频道回复后堆叠完整的认证扫描。 - Gateway/模型:停止已取消的提供者认证状态预热继续完整的提供者扫描,以便重新加载和认证失败突发不再使启动保持忙碌。 - 代理/Codex:将第一个计划更新显示为临时聊天状态通知,而不将其计为最终助手内容。 - CLI/更新:遍历macOS进程祖先,并在包更新停止托管Gateway服务之前继承Gateway运行时PID,以便嵌套的带内更新子节点可以拒绝而不是杀死拥有它们的LaunchAgent监督的Gateway。修复 #85120。 - Gateway/LaunchAgent:等待launchd重新加载引导退出完成,并在bootstrap竞争时回退到kickstart,以便重新加载交接不会使服务注销。修复 #84630。(#84641)感谢 @NianJiuZst。 - Gateway/LaunchAgent:当服务已加载时,将并发的launchd bootstrap视为成功重启,避免虚假的macOS Gateway重启失败。修复 #84721。(#84722)感谢 @googlerest。 - Gateway/服务:将活动的`openclaw`命令bin目录包含在托管服务PATH生成和doctor审计期望中,适用于npm全局macOS安装。修复 #84201。(#84475)感谢 @jbetala7。 - 控制UI/聊天:为已知非推理模型禁用思考选择器,而不是显示重复的Off选项。修复 #84069。感谢 @DrippingMellow。 - 记忆:在解析之前展开配置的额外记忆路径中的`~`,以便相对于主目录的文件夹不会被当作相对于工作空间。修复 #58026。感谢 @stadman。 - 技能:将`openclaw.os: macos`视为Darwin,以便在检查技能要求时macOS专用技能不再在macOS主机上报告为缺失。修复 #61338。感谢 @Jessecq1995。 - 控制UI/日志:从显示的Gateway日志消息中剥离ANSI转义序列,以便颜色代码不再显示为原始文本。修复 #64399。感谢 @guguangxin-eng。 - Docker:使用`node`所有权预先创建工作空间和认证配置文件配置挂载点,以便首次运行的命名卷不会以root所有权开始。修复 #85076。感谢 @Noerr。 - Telegram:通过出站Markdown分块传递配置的Markdown表格模式,以便分块发送一致地渲染表格。修复 #85085。感谢 @ShuaiHui。 - CLI/更新:在包切换期间保留托管Gateway服务环境,以便macOS LaunchAgent修复/重启读取更新前的服务状态而不是调用者shell状态。(#83026) - 代理/提供者:在自定义提供者认证钩子和传输选择中遵循每个模型的`api`和`baseUrl`覆盖。修复 #80487。(#80488)感谢 @huveewomg。 - Gateway/重启:在内置升级信号处理之前急切加载生命周期运行时,以便包替换不会死锁重启导入。(#84890)感谢 @myps6415。 - CLI/更新:从稳定的现有目录启动托管Gateway更新交接助手,并在macOS LaunchAgent交接期间容忍已删除的cwd/包根目录。修复 #83808。(#83875)感谢 @jason-allen-oneal。 - 技能:跨代理工作空间每个共享技能目录只监视一次,而不是每个代理一次,防止文件描述符耗尽(`EMFILE`)导致已处理的bundle-mcp进程和多代理gateway上的会话停滞。修复 #84968。(#85130)感谢 @openperf。 - 发布/安全:将生成的npm shrinkwrap包版本保持在pnpm锁图内,以便发布的包锁不能绕过pnpm依赖年龄和覆盖策略。 - Cron:为常见网络错误代码(如`EAI_AGAIN`、`EHOSTUNREACH`和`ENETUNREACH`)遵循`cron.retry.retryOn: ["network"]`。 - Gateway聊天:在代理启动后广播返回的代理运行错误负载,以便ACP/WebChat客户端接收终端空闲超时错误。修复 #84945。 - Gateway聊天显示:在清理后的聊天历史中保留OpenAI兼容的`prompt_tokens`、`completion_tokens`和`total_tokens`使用字段,以便llama.cpp会话保持上下文计数。修复 #77992。感谢 @MarTT79。 - Dashboard/CLI:即使在存在SSH环境变量的情况下也允许通过`open`在macOS上启动浏览器,同时保留Linux SSH无显示保护。修复 #67088。感谢 @theglove44。 - Codex应用服务器:将原生web搜索结果排除在镜像聊天转录之外,同时保留工具进度遥测。修复 #85109。感谢 @ugitmebaby。 - OpenCode Go:在提供者请求之前剥离不支持的Kimi推理重放字段,以便重复的`kimi-k2.6`轮次不会使模式验证失败。修复 #83812。感谢 @Sleeck。 - 浏览器/CDP:当Chrome DevTools端点接受连接但返回空HTTP回复时,添加WSL2端口代理自循环提示。修复 #59209。感谢 @Owlock。 - 代理/OpenAI:在边界感知的传输失败上保留结构化提供者错误代码、类型和清理后的主体元数据。 - Doctor/Codex:将原生Codex资源警告指向规范的`openclaw migrate plan codex`预览命令。修复 #84948。感谢 @markoa。 - CLI/模型:使`capability model auth logout --agent`从选定的非默认代理存储中移除认证配置文件。修复 #85092。感谢 @islandpreneur007。 - Gateway/模型:在模型列表认证检查期间重用准备好的提供者认证元数据,以便重复查找避免广泛插件发现,同时保留合成的本地认证。 - CLI/状态:当`openclaw status --deep`已经可以到达正在运行的Gateway RPC服务时,抑制systemd用户服务设置提示。修复 #85094。感谢 @islandpreneur007。 - CLI/设备:当同一设备修复请求替换正在批准的请求ID时,恢复本地批准。 - CLI/代理:在回退到嵌入的`openclaw agent`执行之前,重试瞬态正常关闭Gateway握手。 - CLI/更新:将托管Gateway服务停止/重启状态行排除在`openclaw update --json`的stdout之外,以便包更新自动化可以解析JSON负载。 - 插件:为原生外部插件运行时解析OpenClaw插件SDK子路径,而不改变包安装或扩大进程级模块解析。 - 代理/OpenAI:保留Responses和Chat Completions的`reasoning_tokens`使用元数据,而不将其重复计入聚合输出令牌。(#85319) - 控制UI/聊天:将粘贴的`data:image/...;base64,...`剪贴板文本转换为图片附件,而不是将负载转储到编辑器。修复 #62604。感谢 @cpwilhelmi。 - 提供者/Gemini:从web搜索时间范围过滤器中剥离分数秒,以便Gemini接受新鲜度受限的搜索请求。(#85071)感谢 @Noerr。 - OpenAI Codex:为稀疏的`openai-codex/gpt-5.5`目录行保留图片输入支持。(#85095)感谢 @sercada。 - CLI/模型:为OpenAI Codex认证添加管道或粘贴的API密钥路径,并在API密钥粘贴到令牌模式认证时发出警告。(#85533)感谢 @joshavant。 - Telegram:死信缺失框架的孤立入站失败,以便中毒的spooled更新不再阻塞后续同一通道的消息。修复 #85470。(#85605)感谢 @joshavant。 - 插件/发现:在派生存插件id提示时剥离`-plugin`包后缀,以便包名称与清单id对齐。(#85170)感谢 @JulyanXu。 - Tlon:停止在插件清单中广告不存在的代理工具契约。 - Telegram:通过Markdown渲染保留栅栏代码块语言,以便Telegram接收`language-*`代码类。(#85209)感谢 @leno23。 - Windows安装程序:从Windows本地目录运行npm和Corepack命令填充程序,以便从WSL2 UNC路径启动的安装在安装OpenClaw之前不会失败。 - Windows更新:当依赖安装、构建、UI构建或doctor修复失败时,将git支持的更新回滚到先前的检出。 - Windows安装程序:将用户本地便携式Git持久化到PATH,并为git支持的安装和更新激活仓库固定的pnpm版本。 - Windows安装程序:当原生Windows没有Node且没有winget、Chocolatey或Scoop时,引导用户本地便携式Node.js,以便首次运行安装可以在原始主机上继续。 - Windows安装程序:使用原生`tar`解压下载的便携式Node.js目录,然后回退到.NET zip解压,避免PowerShell 5.1存档和路径长度失败。 - fix(integrations):强制频道读取目标允许列表 [AI]。(#84982)感谢 @pgondhi987。 - 代理/心跳:将单所有者`session.dmScope=main`直接消息执行和cron事件唤醒路由回代理主会话,以便异步完成不再在孤儿直接DM队列中滞留上下文。修复 #71581。(#83743)感谢 @Kaspre。 - 代理/代码模式:通过`command`钩子别名暴露外部代码模式`exec`源,带有`toolKind`/`toolInputKind`区分器,以便exec形状的策略可以区分代码模式单元格。(#83483)感谢 @Kaspre。 - 代理/代码模式:为已知工作进程失败返回结构化超时和运行时不可用错误代码。修复 #83389。(#83444)感谢 @Kaspre。 - QA-Lab:当场景需要启动配置补丁时隔离多场景套件工作进程,防止消息路由配置泄漏到无关场景中。 - QA-Lab:使commitments心跳目标无场景请求立即心跳,而不是等待下一个计划的心跳。 - Codex/插件SDK:通过通用框架任务运行时交付Codex原生子代理完成,以便框架支持的插件可以镜像持久任务生命周期和完成交付,而不需要Codex特定SDK导入。(#83445)感谢 @bryanpearson。 - Gateway CLI:立即显示本地后挑战连接组装失败,而不是等待包装器超时。修复 #68944。(#85253)感谢 @samzong。 - 消息:在到达WebChat或外部频道之前,从出站回复中剥离不支持的web搜索引用控制标记。修复 #85193。(#85204)感谢 @neeravmakwana。 - 代理/exec:将拒绝的exec批准视为终端状态,而不是将其反馈给代理后续工作,并在中止处理中识别中文停止短语。修复 #69386。(#85194)感谢 @samzong。 - CLI/代理:在SIGINT/SIGTERM上中止接受的Gateway支持的`openclaw agent`运行,以便cron和supervisor超时不会使远程代理工作保持存活。修复 #71710。(#84381)感谢 @Kaspre。 - Codex应用服务器:使用结构化失败元数据重试一次重放安全的标准io客户端关闭轮次,同时显示空闲`turn/completed`超时,而不是盲目重放活动的共享服务器轮次。感谢 @VACInc。 - Codex应用服务器:拒绝嵌入Node或包管理器参数的命令覆盖,并引导用户使用`appServer.args`,以便Windows启动避免shell解析失败。(#84417)感谢 @TurboTheTurtle。 - 代理/Copilot:在发送前删除不安全的GitHub Copilot Responses推理重放项,以便Telegram直接会话不再因超长重放ID而失败。修复 #85197。(#85198)感谢 @galiniliev。 - UI:为顶部栏颜色模式按钮添加可访问的工具提示,以便System、Light和Dark选项在悬停和聚焦时被标记。(#85227)感谢 @amknight。 - fix:约束Windows任务脚本名称 [AI]。(#85064)感谢 @pgondhi987。 - 控制UI:保持聊天会话选择器不隐藏更早或跨代理配置的对话,同时保留有界的已配置代理刷新。(#85211)感谢 @amknight。 - 代理/Anthropic:在流式Anthropic工具使用JSON中保留不安全的整数工具调用输入值,防止Discord风格的ID在调度前被四舍五入。修复 #47229。(#83063)感谢 @leno23。 - 代理/Codex:在提供者提交之前在LLM边界估计工具密集型提示压力,以便持久会话在上下文窗口溢出前进行压缩。(#85541)感谢 @fuller-stack-dev 和 @joshavant。 - 代理/钩子:在进程清理前等待本地一次性CLI和Codex的`agent_end`插件钩子,以便终端可观测性可靠地刷新。(#85007) - 提供者/Google:当过时的目录元数据声明`reasoning:false`时,保留Gemini 3 cron的`thinkingDefault: "low"`,以便计划运行保持提供者支持的思考而不是降级为关闭。(#85185)感谢 @neeravmakwana。 - CLI/代理:允许`openclaw agent --session-key`针对显式会话密钥,包括代理范围的旧密钥。(#85121)感谢 @Kaspre。 - 自动回复/ACP:在开始工具工作之前等待同一频道块回复投递,同时仍然遵循ACP调度中止,以便停止的轮次不会等待慢速频道发送。(#83722)感谢 @IWhatsskill。 - Codex/ACP:标记仅报告进度、缺少最终可交付物或请求者投递失败的必要子运行完成为阻塞状态,同时保留真实的最终报告。(#85110)感谢 @IWhatsskill。 - 频道:在入站防抖路径中将裸中止消息(如`stop`、`abort`和`wait`)视为立即控制命令,以便停止请求不会因待处理消息合并而延迟。(#83348)感谢 @IWhatsskill。 - 频道/消息工具:在代理内频道选择期间解析已配置的外部频道插件,以便`openclaw agent --local`消息工具发送不再将可用频道报告为不可用。(#85022)感谢 @Kaspre。 - 代理/心跳:为计划的心跳运行遵循组/频道`message_tool`可见回复策略和模型特定的Codex运行时配置,以便失败的内置工具输出保持私有。修复 #85310。(#85357)感谢 @neeravmakwana。 - Gateway/ACP:关闭通过`sessions_spawn`派生的子ACP会话,当它们的父会话被重置或删除时,而不是留下孤立的`claude-agent-acp`进程积累并耗尽内存。修复 #68916。(#85190)感谢 @openperf。 - Codex应用服务器:当OpenClaw exec解析为node主机时阻止原生执行路径,同时保留第一方CLI节点绑定路径。修复 #85012。(#85534)感谢 @joshavant。 - 诊断:限制清理超时详细日志,当异步诊断突发超过队列容量时发出丢弃摘要,并通过诊断遥测显示异步队列丢弃。 - 代理/子代理:将受阻的子运行完成显示为错误,而不是成功的子代理完成。(#80886)感谢 @TurboTheTurtle。 - 上下文引擎:当选定的代理运行时无法满足声明的上下文引擎主机要求时,失败关闭并带有描述性错误。 - 代理/Pi:将接受的嵌入式`sessions_spawn`子会话交接视为终端进度,以便父轮次不再报告虚假的不可交付失败。(#85054)感谢 @samzong。 - CLI/模型:从运行时配置解析`openclaw models set`别名,同时将创作别名保持在运行时默认值之前。(#83262)感谢 @IWhatsskill。 - Doctor:将个人Codex CLI资源通知显示为信息而不是警告。修复 #84859。 - WhatsApp:将Baileys更新到`7.0.0-rc13`并移除过时的记录器类型补丁。 - CLI/更新:在暂存npm安装之前预打包GitHub/git包更新目标,恢复`openclaw update --tag main`用于一次性包更新。(#81296)感谢 @fuller-stack-dev。 - Gateway:将成功的同源消息工具发送镜像到会话转录中,以便已投递的回复保留在后续历史/上下文中。(#84837)感谢 @iFiras-Max1。 - 媒体生成:当生成的媒体通过活动会话回复完成时,防止图像、音乐和视频完成投递重复或丢失任务所有权。(#84006)感谢 @fuller-stack-dev。 - 基础设施/json:在加载JSON状态时重试瞬态`File changed during read`竞争,以便配置和状态读取恢复而不是使轮次失败。(#84285) - 插件/提供者:在设置模式发现中,除非显式信任,否则对工作空间提供者插件失败关闭,防止不受信任的工作空间插件代码在提供者设置期间运行。(#81069)感谢 @mmaps。 - 提供者/Ollama:将配置的Ollama Cloud的`OLLAMA_API_KEY`标记解析为真实的发现密钥,以便云提供者条目保持经过身份验证的模型目录访问。(#85037) - Discord:通过运行时记录器转发结构化错误和原因元数据,使持久组件注册表回退警告可操作。修复 #84185。(#84190)感谢 @100menotu001。 - Gateway/会话:在相同提供者内切换模型时保留兼容的会话认证配置文件覆盖,包括提供者认证别名。修复 #81837。(#81886)感谢 @TurboTheTurtle。 - Gateway/状态:在`openclaw status --all`中显示入站投递遥测计数器和传输活跃性警告。修复 #49577。(#72724) - Docker:修剪包排除的插件源工作空间和依赖闭包,以便运行时镜像不为未选择加入的插件保留包。 - 提供者/Ollama:将Docker/OrbStack主机别名视为本地Ollama端点,以便当OpenClaw在VM/容器内运行且Ollama在主机上运行时,`ollama-local`标记认证有效。修复 #84875。 - QA-Lab:默认保持显式可搜索/延迟的OpenClaw动态工具行仅报告,以便工具覆盖gate不会将模拟发现间隙视为硬产品失败。(#80319)感谢 @100yenadmin。 - 代理/配置:防止非Google提供者模型引用被Google Gemini预览ID规范化重写。(#84762)感谢 @zhangguiping-xydt。 - 安装程序:在启动入门之前需要真正的控制终端,以便无头`curl | bash`安装完成后在安装CLI后干净退出。 - 代理/Codex:当提示超时与Codex应用服务器完成竞争时,提升已完成的最终助手响应,而不是返回空超时信封。引用 #84516。 - Codex应用服务器:防止中断的轮次状态被单独视为OpenClaw中止,以便仅工具轮次仍然符合无可见答案恢复的条件。修复 #84492。 - 代理:当运行时模型元数据不可用时,通过存储的会话窗口限制心跳模型泄露上下文提示,以便溢出恢复建议不会建议比活动会话实际拥有的更大的窗口。 - 控制UI/Web推送:使用`https://openclaw.ai`作为生成的默认VAPID主题,而不是旧的localhost邮箱,以便iOS PWA推送设置在`OPENCLAW_VAPID_SUBJECT`未设置时使用Apple可接受的主题。修复 #83134。(#83317)感谢 @IWhatsskill。 - 控制UI:区分继承的思考关闭设置与显式Off选择,以便思考选择器不再显示两个相同的Off行。(#85223)感谢 @amknight。 - 代理/Pi:防止嵌入式会话转录写入在打包的npm入门代理轮次后触发虚假的接管检测。 - Codex/TUI:显示Codex原生轮次后压缩失败,而不是继续未压缩,并在本地空闲/下一轮处理之前序列化成功的原生压缩。修复 #84305。(#85160)感谢 @joshavant。 - 记忆/搜索:当`dreaming.enabled=false`时,停止回顾追踪写入梦境副作用工件,同时保留正常搜索结果。修复 #84436。(#84444)感谢 @NianJiuZst。 - 差异:从封闭的图标名称映射渲染查看器工具栏图标,而不是HTML字符串,移除工具栏图标XSS注入点。(#83955)感谢 @tanshanshan。 - QA:即使继承的shell环境禁用了捆绑插件,也将`pnpm qa:e2e`自检运行保持在私有QA运行时信封内。 - fix(config):验证浏览器沙箱绑定源 [AI]。(#84799)感谢 @pgondhi987。 - doctor:约束旧插件清理路径 [AI]。(#84801)感谢 @pgondhi987。 - 更新/doctor:修剪指向旧编译捆绑输出的过时本地捆绑插件安装记录,以便当前捆绑插件模式在升级后获胜。(#84863)感谢 @fuller-stack-dev。 - 提供者/Ollama:在助手重放中保留原生Ollama工具调用ID,以便Gemini over Ollama Cloud可以保持其隐藏的函数调用思维签名句柄。 - Discord:将会话恢复和`/stop`中止所有权保留在源调度通道上,同时绑定的ACP轮次继续路由到其目标会话,以便停滞的预运行工作和延迟回复被清除而不是在停止后泄漏。修复 #84477。(#85100)感谢 @joshavant。 - Codex应用服务器:将观察到的执行后缺失轮次完成标记为重放不安全并释放会话,以便后续轮次可以运行。修复 #84076。(#85107)感谢 @joshavant。 - Codex应用服务器:为可见的`message`动态工具发送提供更长的超时预算,以便慢速频道投递可以返回其自身结果或错误,而不是达到30秒的Codex包装器。(#85216)感谢 @amknight。 - Codex应用服务器:添加专用的工具后原始助手完成空闲超时配置,以便受信任的重型轮次可以在工具交接后等待更长时间,而不削弱最终助手释放。 - Matrix:在过时的`m.direct`或严格双成员DM回退可能绕过提及门控之前,将显式配置的双人房间保持在房间路由上。修复 #85017。(#85137)感谢 @joshavant。 - 代理/子代理:要求显式子代理允许列表目标为已配置的代理,以便过时的已删除代理ID从`agents_list`中省略并被`sessions_spawn`拒绝。修复 #84811。(#85154)感谢 @joshavant。 - PDF工具:在120秒后超时空闲远程PDF主体读取,以便停滞的远程文档返回错误而不是卡住会话。修复 #68649。(#84768)感谢 @luoyanglang。 - 诊断/OpenTelemetry插件:抑制已处理的OTLP导出器promise拒绝,以便收集器关闭不再崩溃Gateway。(#81085)感谢 @luoyanglang。 - 代理/exec:从拒绝的exec失败日志中省略原始命令文本和环境值,同时保留安全的相关元数据。修复 #85049。(#85140)感谢 @joshavant。 - 媒体/音频:跳过空的结构化sherpa-onnx转录,而不是将原始JSON负载视为口语文本。(#84667)感谢 @TurboTheTurtle。 - 代理/exec:为子进程保留继承的XDG基础目录环境值,同时仍然拒绝代理提供的XDG覆盖。修复 #84854。(#85139)感谢 @joshavant。 - Node/Linux:通过将节点服务令牌值写入特定节点的env文件,将`OPENCLAW_GATEWAY_TOKEN`排除在生成的systemd单元文件之外。(#84408) - 记忆核心/梦境:按工作空间和阶段重用稳定的叙述性子代理会话密钥,同时保持每次运行的幂等性和有界清理,以便过时的`dreaming-narrative-*`会话不会累积。修复 #68252、#69187 和 #70402。(#70464)感谢 @chiyouYCH。 - 轨迹/支持:在构建支持元数据时容忍部分技能快照条目,以便被拒绝的技能路径扫描不再中止轨迹捕获。(#71185)感谢 @lukeboyett。 - TUI:将重复的空闲Esc中止通知合并为单个`no active run xN`系统行,而不是追加重复行。 - Telegram:在默认隔离轮询路径中遵循`channels.telegram.pollingStallThresholdMs`,重启静默工作进程而不是让入站更新卡住。修复 #83950。(#84861)感谢 @joshavant。 - Telegram:通过Telegram聊天/消息身份去重重新播放的消息调度,以便隔离入口重放不会触发重复的模型调度。修复 #84886。(#85208)感谢 @joshavant。 - Slack:在回复投递和调度统计之前抑制推理负载,以便Slack监控、斜杠命令、回退和直接回复路径不会泄露模型推理。修复 #84319。(#84322)感谢 @ffluk3 和 @joshavant。 - Slack:当Slack原生批准启用时投递原生插件批准提示和更新,同时保持插件批准授权与exec审批人分离。 - Slack:当实时Slack轮次来源是`D...`对话时,将原生插件批准提示保留在发起应用的对话线程中。 - 代理/Pi:禁用嵌入式pi-coding-agent运行时自动重试,以便OpenClaw自己的重试和故障转移循环不会通过嵌套的SDK重试重放失败的工具调用。修复 #73781。(#74434)感谢 @yelog。 - CLI/性能:将`setup --help`、`onboard --help`和`configure --help`排除在完整向导运行时之外,同时保留现有的帮助输出。(#84488)感谢 @frankekn。 - CLI/性能:将`agents --help`排除在代理操作/运行时导入之外,以便帮助、完成和命令发现路径避免加载完整的代理运行时。(#84483)感谢 @frankekn。 - CLI/性能:将`secrets --help`和`nodes --help`保留在预计算帮助路径上,以便父帮助避免加载操作密集型命令运行时模块。(#84818)感谢 @frankekn。 - CLI/性能:从启动元数据提供`doctor`、`gateway`、`models`和`plugins`父帮助,以便常见子命令帮助避免完整的CLI程序构建。(#84786)感谢 @frankekn。 - Codex/无损:当Telegram DM使用对等运行时策略键时,将上下文引擎历史保留在规范运行会话上。修复 #84936。(#84954)感谢 @neeravmakwana。 - Codex:使心跳响应工具模式持久化,而不暴露由轮次策略禁用的动态工具,以便心跳唤醒可以重用线程,同时保持范围工具允许列表生效。(#84681)感谢 @jalehman。 - 认证/OAuth:当存储的OAuth凭证没有刷新令牌时跳过刷新适配器,以便代理轮次在缺失密钥时快速失败,而不是等待120秒刷新超时。感谢 @romneyda。 - 认证/Codex:在嵌入式运行器的秘密运行时认证加载器中加载旧版OAuth sidecar凭证,以便Telegram回复、cron触发轮次和其他隔离子代理通道可以访问现有的#83312刷新和重写迁移,而不是失败并显示`No API key found for provider "openai-codex"`,直到用户运行`openclaw doctor`。感谢 @Totalsolutionsync 和 @romneyda。 - Codex/故障转移:将`deactivated_workspace`归类为永久认证失败,以便配置的回退模型可以在Codex工作空间停用时前进。(#55893)感谢 @litang9。 - Exec:在POSIX gateway运行时,将配置的`tools.exec.pathPrepend`条目保持在用户shell启动PATH更改之前。(#81403)感谢 @medns。 - Gateway/会话:允许共享密钥bearer调用者读取和流式传输会话历史,而无需显式范围头。(#81815)感谢 @medns。 - 代理/嵌入式运行器:将HTML认证提供者响应归类为`auth_html`并返回重新认证提示,而不是`upstream_html`返回的CDN阻塞副本。Cloudflare Access登录页面、nginx基本认证挑战和gateway登录墙都会产生HTML认证主体,之前被误诊为瞬态CDN阻塞。(#79900)感谢 @martingarramon。 - TUI/流式看门狗:一旦同一运行到达聊天事件,立即取消`This response is taking longer than expected`通知,以便当运行仅短暂静默时,该消息不再位于恢复的响应旁边。引用 #67052、#69081(已关闭),先前尝试 #69026。感谢 @jpruit20 和 @romneyda。 - 代理/Pi:在嵌入式提示释放用于模型I/O时容忍OpenClaw拥有的转录写入,使长时间运行的飞书、Slack、Telegram和cron轮次不会因虚假的会话接管错误而失败。修复 #84059。(#84250)感谢 @tianxiaochannel-oss88。 ### 发布验证 - npm包:https://www.npmjs.com/package/openclaw/v/2026.5.22-beta.1 - 注册表tarball:https://registry.npmjs.org/openclaw/-/openclaw-2026.5.22-beta.1.tgz - 完整性校验:sha512-xSSTpkaHz0eMcaBxsrR+ySFg8LwSjM31ImP1y28twNMnCuvfqjU3cuyfnwHgM/25HbKXgRWKrXD448erm6RcvQ== - npm预检查:https://github.com/openclaw/openclaw/actions/runs/26328338829 - npm发布:https://github.com/openclaw/openclaw/actions/runs/26329772865 - npm Telegram beta E2E:https://github.com/openclaw/openclaw/actions/runs/26329878304 - 完整发布验证:待定;在稳定版/最新版升级前需要