
OpenClaw 24h 更新快报(2026-10-17):插件元数据重建、Codex 启动诊断、媒体合并限制
过去 24 小时,OpenClaw 主线连续合并了三个关注质量的修复:插件包在切换源码/编译入口时不再导致安装失败,Codex 启动失败场景终于能报出真实错误原因,流媒体字幕在与其他内容合并时不再因超出限制而丢失。这三项改动均属窄定向修复,覆盖插件开发者、AI 能力调试和消息处理三条不同用户路径。
插件系统:元数据重建时保持入口对完整一致
PR #174732 修复了一个长期存在的插件构建陷阱:当开发者使用 plugins build --entry 在源码入口和编译后产物之间切换时,元数据写入会错误地追加而非替换对应条目,导致生成的插件包包含重复插件,安装时被包管理器拒绝。
根本原因在于旧逻辑以 base name 为粒度做去重,在存在同文件名不同路径的插件时会错误地追加。新方案改用完整路径精确匹配,直接在原位置替换对应的源码/运行时入口对,同时保留了显式配置的运行时映射顺序和已有的同basename不同路径条目不受影响。
影响范围:所有使用 plugins build --entry 切换入口的插件作者。无需任何迁移或配置变更。生产代码净增 +39 行 / -6 行,测试新增 93 行覆盖四种失败场景,包括元数据写入→持久化→安装的全链路验证。
Codex:启动失败终于能报出真实原因
PR #174706 修复了引入自 PR #173716(Codex 共享启动超时变更)的两个边界情况。
第一类问题发生在 Codex app-server 子进程注册超过启动截止时间后失败:此前用户看到的是通用超时提示 codex app-server initialize timed out,而真实原因是"进程检查超过了截止时间"——两者相差甚远,调试体验极差。修复后具体错误被保留并正确报告。第二类问题涉及共享客户端通知机制:一个 early turn 在尚未持有 lease 时就占用了 cleanup slot,随后放弃会导致其他仍在启动的 turn 依赖的共享启动被意外拆除。
受影响用户:所有使用 Codex AI 扩展、且在启动阶段遭遇进程检查超时的场景。新增回归测试覆盖"保留超时后注册失败的具体错误"和"独占等待者场景下共享启动不被提前拆除"两个边界,6 个新测试用例在未修复的主线分支上均失败,应用修复后全部通过。
消息处理:流媒体字幕合并不再超出 coalescing 上限
PR #174737 修复了当缓冲文本与后续媒体回复合并时,字幕内容可能超出配置的 coalescing 限制的问题。触发条件是:流式缓冲文本先于原始媒体载荷发送,而两者组合字幕超过了 coalescing 上限。
修复在合并前先计算 joiner 和字幕的长度,而非在已合并后再截断。精确等于上限的情况和不含字幕的媒体仍然正常合并;回复路由和来源元数据保持不变。
影响对象:使用流式媒体回复能力、且配置了 coalescing 限制的部署。
Agent 会话层:小范围重构
提交 12e3cfa 对 agents 模块进行了直接引用执行错误和 cleanup owner 的重构,属于内部清理,外部行为不变。
同期还有 提交 b3d49eb 移除了已退役的 Mantis consumer 测试 fixture(PR #174720),同样为内部清理。
本次更新以质量修复为主基调,三个 PR 均针对特定失败场景给出精确修复方案,无破坏性变更,测试覆盖充分。


评论