
OpenClaw 24h 更新快报(2026-05-28):Codex 内存路由、会话锁重构、网关安全加固
过去 24 小时,openclaw/openclaw 仓库迎来多个值得关注的合并。其中 Codex 内存工具路由经历了一次重要回归修复,同时 Agent 会话层面的写锁被移至自有运行时;网关在 TailScale 暴露面上补上了一枚 P0 级别的认证绕过漏洞,Slack 消息投递清理逻辑也得到了纠正。
模型与 AI 能力
Codex 扩展的 MEMORY.md 路由逻辑在两个 PR 中被修复。PR #87403 backport 了一个已验证的修复,将配置好的工作区 MEMORY.md 改为通过 memory_search/memory_get 指针按需读取,而非在每次对话轮次中将完整文件塞入上下文——这在大型 MEMORY.md 场景下可显著节省 token 消耗,同时保留嵌套 MEMORY.md 文件的引导逻辑。PR #87386 则进一步收紧了遗留 hook 生成策略,减少 Codex 生成冗余或错误 hook 的概率。两个修复的目标一致:让 Codex 在有 memory 工具可用时优先调用工具,而非直接塞原始文本。
与此同时,PR #87280([AI] 辅助)解决了浏览器设备令牌与网关 auth 轮换之间的生命周期问题:当共享网关认证发生轮换时,此前自动生成的浏览器设备令牌未能被正确标记为失效,可能导致旧令牌在新认证周期内仍被接受。该 PR 为令牌引入了 issuer generation 元数据,并对 Control UI/WebChat 相关的旧令牌实施清理。
安全与稳定性
本次窗口内合并了多个高优先级安全类修复。PR #87286 是本次唯一的 P0 项:网关此前允许无认证的 TailScale 节点暴露接口,该 PR 彻底堵住了这一路径,阻止了未授权访问风险。
PR #87292([AI] 辅助)拦截了具有副作用的命令包装器被滥用的情况;PR #87305([AI] 辅助)则修复了尾部点号规范化问题,防止解析器对形如 "example.com." 的尾部多 dots 场景产生不一致行为;PR #87308([AI] 辅助)则阻止不安全的 Node 运行时环境变量覆盖。这三个 [AI] 辅助变更的共性在于:修复覆盖面精确,风险等级评估为 P1,测试通过后方合并。
渠道集成与通知
Slack 频道在消息投递稳定性上迎来一次关键修复。PR #87364 解决了同一轮对话中后期错误恢复载荷重复使用 draftStream.clear() 导致已投递最终回复被意外删除的问题。根本原因在于 Slack 的 draftStream.clear() 会删除草稿消息,而 dispatch 路径虽然在原地最终化的预览上保护了 draftPreviewCommitted,但未覆盖通过正常或流式投递触达的最终回复场景。该修复在正常投递后锁定 draft 流,确保后续同轮次载荷不会复用清理逻辑。
Agent / 会话调度
PR #87409 对 Agent 会话写锁进行了一次重要重构:将原本嵌入在废弃私有字段中的 session write-lock 边界移至自有的 createAgentSession / AgentSession 运行时代码中。此前的实现在嵌入式尝试(embedded attempts)期间会在 provider 流式回调中释放粗粒度会话锁,导致陈旧尝试在重新获取锁并写入 session 文件或执行有副作用的工具前就完成了回调。重构后写锁栅栏更精确地覆盖消息持久化、支持写入的扩展/提供者钩子、压缩和工具前执行等关键路径。
控制台与开发者体验
CLI 子命令版本选项解析在 PR #87398 中得到修正:此前 openclaw skills verify discrawl --version 1.0.0 这类调用会被 Commander 的快速路径吞掉 --version 参数,导致子命令级别的版本选项被错误处理。新增了针对此类调用的回归测试。
Web-Search 也在本次窗口内得到一处精准修复。PR #87432 解决了 Brave 插件 webSearch 合并逻辑中运行时注入的 legacy 配置未正确保留为 runtime-only 的问题——Object.keys 验证此前会错误地暴露 tools.web.search.brave 等形状,导致配置校验失败。同时修复了 Gemini fallback 代码对注入配置的重复枚举问题。
本次更新整体基调偏向内核安全与可靠性修复,安全类 PR 占比显著,渠道侧 Slack 的投递稳定性改进也值得关注。


评论