变更
记忆/梦境:新增一个基于真实数据的 REM 回填通道,支持使用 --path 的历史 rem-harness,日记提交/重置流程,更干净的持久事实提取,以及实时短期记忆整合集成,使旧日记可以回放到梦境和持久记忆中,无需第二个记忆栈。感谢 @mbelinky。
控制界面/梦境:新增结构化日记视图,支持时间轴导航、回填/重置控制、可追溯的梦境摘要,以及带有提升提示的 Grounded 场景通道,外加一个安全的清除 grounded 操作,用于分段回填信号。(#63395)感谢 @mbelinky。
QA/实验室:新增角色气质评估报告,支持模型选择与并行运行,使实时 QA 能更快地比较候选行为。
插件/提供商认证:允许 provider 清单声明 providerAuthAliases,使 provider 变体可以共享环境变量、认证配置文件、基于配置的认证以及 API 密钥接入选项,无需核心代码进行特定接线。
iOS:将发布版本固定为 apps/ios/version.json 中的显式 CalVer,在同一个短版本下保持 TestFlight 迭代,直到维护者有意提升下一个网关版本;并添加文档化的 pnpm ios:version:pin -- --from-gateway 工作流用于发布列车。(#63001)感谢 @ngutman。
修复
浏览器/安全:在用户交互驱动的主框架导航(点击、评估、钩子触发的点击、批处理操作流)后重新运行被阻止目的地的安全检查,使得浏览器交互无法在落地到被禁止 URL 时绕过 SSRF 隔离区。(#63226)感谢 @eleqtrizit。
安全/dotenv:阻止来自不受信任工作区 .env 文件的运行时控制环境变量,以及浏览器控制覆盖和跳过服务器的环境变量;并在懒加载前拒绝不安全的 URL 样式浏览器控制覆盖说明符。(#62660, #62663)感谢 @eleqtrizit。
网关/node 执行事件:将远程 node 的 exec.started、exec.finished 和 exec.denied 摘要标记为不受信任的系统事件,并在入队前清理 node 提供的命令/输出/原因文本,防止远程 node 输出向后续对话回合注入受信任的 System: 内容。(#62659)感谢 @eleqtrizit。
插件/ onboarding 认证选项:防止不受信任的工作区插件在非交互式 onboarding 期间与捆绑的 provider 认证选项 ID 冲突,从而使捆绑 provider 的设置将操作员密钥排除在不受信任的工作区插件处理器之外,除非这些插件被显式信任。(#62368)感谢 @pgondhi987。
安全/依赖审计:强制将 basic-ftp 升级到 5.2.1 以修复 CRLF 命令注入漏洞,并在生产解析路径中升级 Hono 及 @hono/node-server。
Android/配对:在新二维码扫描时清除过期的设置码认证,从新配对中引导操作员和节点会话,在引导交接后优先使用存储的设备令牌,并在应用处于后台时暂停配对自动重试,使一次性扫描的 Android 配对再次可靠恢复。(#63199)感谢 @obviyus。
Matrix/网关:等待 Matrix 同步就绪后再标记启动成功,保持 Matrix 后台处理程序故障时被隔离,并将致命的 Matrix 同步停止路由到通道级别的重启处理,而不是使整个网关崩溃。(#62779)感谢 @gumadeiras。
Slack/媒体:在保持同源 files.slack.com 重定向时保留 bearer 认证,同时在跨域 Slack CDN 跳转时剥离认证信息,使 url_private_download 图片附件能够再次加载。(#62960)感谢 @vincentkoc。
回复/doctor:对排队的回复运行使用活动运行时快照,在预检助手接触配置前解析回复运行的 SecretRefs,向用户展示网关 OAuth 重新认证失败信息,并让 openclaw doctor 明确指出需要重新执行的认证命令。(#62693, #63217)感谢 @mbelinky。
控制界面:在快速切换会话期间,防止过时的会话历史重新加载,使选中的会话和呈现的对话记录保持同步。(#62975)感谢 @scoootscooob。
网关/聊天:在实时聊天更新和历史清理过程中,抑制确切的以及流式的 ANNOUNCE_SKIP / REPLY_SKIP 控制回复,防止内部 agent 到 agent 的控制令牌泄漏到面向用户的网关聊天界面。(#51739)感谢 @Pinghuachiu。
自动回复/NO_REPLY:在回复规范化和 ACP 可见流式输出之前,剥离粘附在前面的 NO_REPLY 令牌,防止静默哨兵文本泄漏到用户可见的回复中,同时保留有实质内容的 NO_REPLY ... 文本。感谢 @frankekn。
会话/路由:在跨会话的 announce 流量中保留已建立的外部路由,使 sessions_send 后续消息不会从 Telegram、Discord 或其他外部渠道窃取消息投递。(#58013)感谢 @duqaXxX。
网关/会话:在 /reset 和 /new 时清除自动回退固定的模型覆盖,同时仍然保留显式的用户模型选择,包括在覆盖源跟踪存在之前创建的旧会话。(#63155)感谢 @frankekn。
Slack/ACP:将 Slack ACP 块回复视为可见的已投递输出,使 OpenClaw 在 Slack 已经呈现回复后不再重新发送最终的回退文本。(#62858)感谢 @gumadeiras。
Slack/部分流式:按调度类型对单轮去重键进行区分,并在预览最终化失败时保持最终回退回复路径处于活动状态,防止过时的预览文本抑制实际最终答案。(#62859)感谢 @gumadeiras。
Matrix/doctor:在 openclaw doctor --fix 期间,将旧的 channels.matrix.dm.policy: "trusted" 配置迁移回兼容的 DM 策略,保留显式的 allowFrom 边界作为 allowlist,并将空的旧配置默认设为配对策略。(#62942)感谢 @lukeboyett。
npm 打包:镜像捆绑的 channel 运行时依赖,暂存 Nostr 运行时依赖,从清单和构建块中推导所需的根镜像,并在没有仓库 node_modules 的情况下测试打包后的发布 tarball,使全新安装能在缺少插件依赖时快速失败,而不是在运行时崩溃。(#63065)感谢 @scoootscooob。
QA/实时认证:当实时 QA 场景遇到归类为认证或运行时失败的回复(包括原始场景等待路径)时快速失败,并清理缺失密钥的提示,使网关认证问题表现为可操作的错误而不是超时。(#63333)感谢 @shakkernerd。
Providers/OpenAI:在 OpenAI Responses、WebSocket 及兼容的 completions 传输中,将缺失的推理力度默认设为 high,同时仍然尊重每个运行的显式推理级别。
Providers/Ollama:允许使用原生 api: "ollama" 路径的 Ollama 模型在 /think 设置为非关闭级别时可选地显示思考输出。(#62712)感谢 @hoyyeva。
Codex CLI:通过 Codex 的 model_instructions_file 配置覆盖传递 OpenClaw 的系统提示,使新的 Codex CLI 会话接收与 Claude CLI 会话相同的提示指导。
认证/配置文件:直接保留显式的认证配置文件更新,并跳过本地写入的外部 CLI 同步,使配置文件变更得以保存,而不会因为过时的外部凭据状态而丢失。
Agent/超时:使 LLM 空闲超时在配置了 agents.defaults.timeoutSeconds 时继承该值,为 cron 运行禁用未配置的空闲看门狗,并将空闲超时错误指向 agents.defaults.llm.idleTimeoutSeconds。感谢 @drvoss。
Agent/故障转移:将 Z.ai 厂商代码 1311 归类为计费错误,1113 归类为认证错误,包括长的被包装的 1311 负载,使这些错误不再落入通用故障转移处理逻辑。(#49552)感谢 @1bcMax。
QQBot/媒体标签:支持 HTML 实体编码的尖括号(</>)、属性中的 URL 斜杠以及自闭合媒体标签,使上游 <qqimg> 负载能被正确解析和规范化。(#60493)感谢 @ylc0919。
记忆/梦境:通过保留来源日期标签、干净地拒绝缺失或符号链接的目标、规范化网关回填中的日记标题、以及收紧声明拆分和日记来源元数据,加固了基于真实数据的回填输入、日记写入、状态负载和日记动作分类。感谢 @mbelinky。
记忆/梦境:接受嵌入的心跳触发令牌,使得当运行时包装器包含额外心跳文本时,轻量梦境和 REM 梦境仍然可以运行。
Android/手动连接:仅对 TLS 手动网关端点允许空白端口输入,使标准的 HTTPS Tailscale 主机默认为 443,而不会静默更改明文手动连接的端口。(#63134)感谢 @Tyler-RNG。
Windows/更新:在开发更新期间为 Windows pnpm 构建步骤增加堆内存余量,使更新预检构建不再因默认 Node 内存过低而失败。
插件 SDK:通过公共包导出 channel 插件基础和 Web 搜索配置合约,使插件无需私有导入即可使用它们。
插件/合约:将仅用于测试的辅助函数保留在生产合约导出之外,通过捆绑的测试表面加载共享的合约测试工具,并加强防护,使间接的再导出和规范的 *.test.ts 文件保持被阻止。(#63311)感谢 @altaywtf。
控制界面/模型:对 ID 中已包含斜杠的 OpenRouter 目录模型,保留带 provider 限定的引用,使选择器提交与 allowlist 兼容的模型引用,而不是丢弃 openrouter/ 前缀。(#63416)感谢 @sallyom。
插件 SDK/命令认证:将命令状态构建器拆分到轻量的 openclaw/plugin-sdk/command-status 子路径上,同时保留已废弃的 command-auth 兼容导出,使仅需认证的插件导入不会将状态/上下文预热引入 CLI onboarding 路径。(#63174)感谢 @hxy91819。


没有回复内容