欢迎光临
我们一直在努力

OpenClaw v2026.10.1 stable 晋升后 7 小时 first-batch 后兼容治理:14 个 PR 集中收口、把 release 节奏做成公开事件

OpenClaw 主仓在 2026-10-10T23:54Z 把 v2026.10.1 标记为 npm latest(北京时间 2026-10-11 07:54 晋升稳定版),然后在 2026-10-11 04:10Z ~ 07:01Z 这 3 小时窗口里连续合并了 14 个 PR(截至 2026-10-11 07:01:04Z,仍在持续)。这是 OpenClaw 自 9.9 stable 之后第一次把”stable 晋升”和”first-batch 后兼容治理”在公开 PR 列表里做成肉眼可读的两个连续动作——以前 v2026.9.8 → v2026.9.9 / v2026.9.9 → v2026.10.1-beta.1 之间的合入窗口都被常规 perf / fix 填满,而这次 10.1 stable 之后的第一批 PR 几乎全指向「10.1 自身切出来后约束出的下一档兼容 / 兜底 / 修复」——这是 OpenClaw 工程治理首次公开地走完「发布 → 立刻收敛」的 7 小时路径。

本文用 GitHub PR 详情页 2026-10-11 15:03 Asia/Shanghai Chrome headless 实拍 + GitHub Releases body v2026.10.1 截图,把这 14 个 post-stable PR 按”为什么必须是 stable 之后才能合”分组,逐条讲清 OpenClaw 这一次为什么走了”先 stable 再补 first-batch”的路径,以及对升级到 10.1 的用户意味着什么。

OpenClaw v2026.10.1 GitHub Releases 页(2026-10-11 15:03 Asia/Shanghai Chrome headless 实拍)

一、先把 stable 自身切清楚:v2026.10.1 到底是什么

按 v2026.10.1 release body(2026-10-10T23:54:03Z 由 github-actions 发布)显示:本次 release 共有 3,055 个 commit、2,425 个 PR、402 位贡献者,发布说明写在两份:

注意一个工程细节:release body 的开头有一段 HTML 注释 <!-- openclaw-release-publication:docs-v1 -->,这是 OpenClaw 用来让 release 页面同时被 docs 系统和 changelog 系统识别的标记——v2026.10.1 是 OpenClaw 第一次给 release body 加这种 publication marker,说明 10.1 是 OpenClaw 内部正式定义 “发布契约版本 1” 的起点。这个细节本身体现后 7 小时窗口里 14 个 PR 走的”先契约、后落地”的工程习惯。

二、stable 之后第一件事:npm preflight 自己挂了,PR #168740 来救火

PR #168740 详情页(2026-10-11 15:03 Asia/Shanghai Chrome headless 实拍)

2026-10-11T04:10:36Z 合入的 PR #168740 fix(release): record 2026.10.1 updater compatibility(author RomneyDa,+1589/-0 行,单文件 scripts/lib/update-compat-inventory.json)。这个 PR 的内容非常特殊:

  • 问题来源:stable v2026.10.1 在 2026-10-10T22:45Z 晋升 npm latest,npm preflight 要跑 pnpm update:compat:check,这个检查要求 updater 兼容清单里有所有被 latest 和 beta 选中的版本,但清单里没有 2026.10.1。
  • 后果:preflight 对每一个 release candidate 都失败,包括即将发布的 2026.10.5-beta.1,失败记录见 producer job。
  • 修法:用现有 generator 把 2026.10.1 录入,56 个 chunk 全部按既有格式 emit,前 11 个 release 记录字节不变(diff 全是 addition)。
  • evidence:在 unchanged main 上重现 preflight 失败;下载所有官方 npm tarball,对每个验证 npm SHA-512 dist.integrity,unpack 后跑 generator;跑 pnpm test test/scripts/update-compat-external-bindings.test.ts test/scripts/update-first-hop-package-fixtures.test.ts test/scripts/package-source-preflight.test.ts test/scripts/runtime-postbuild.test.ts --maxWorkers=1 全部 177 用例通过,60 s wall,CI test-cost delta 是 0。

这个 PR 是 OpenClaw 第一次把”stable 晋升后 4 小时 16 分钟内、必须自己修自己的 npm preflight”做成公开事件。以前 v2026.9.8 / v2026.9.9 都走过类似路径,但没有留下 PR 级别的独立审计——这次是 separate fix 不是 stable 的一部分,是 post-stable 治理节奏的公开。

三、stable 之后第二件事:把 4 个 runtime 兼容口子集中收齐

PR #168930 fix(plugins): reject known-incompatible Codex runtimes(steipete,2026-10-11T07:00:40Z,+325/-63/16 文件)。这个 PR 是给 plugin 适配层加”最低兼容版本字面量”:

  • 触发场景:partial core update 之后可能留下 Codex 2026.9.5 或 2026.9.6,但它们的 plugin API 范围还接受 admission(lazy runtime imports 需要被移除的 agent-harness-task-runtime SDK subpath)。
  • 用户影响:admission 只拒绝官方 version-bound runtime 低于已知兼容下限——Codex 的下限是 2026.9.7。兼容包即使比 host 老(如 Codex 2026.10.1 在 OpenClaw 2026.10.2 上)也保留可加载。Below-floor 包在注册前就 unavailable,并附 update/repair 指引 + linked-source 补救。
  • 为什么必须是 stable 之后:agent-harness-task-runtime SDK subpath 是 v2026.10.1 删除的(10.1 release body 里有暗面),legacy Codex 2026.9.5/.6 的 lazy SDK 引用合法依赖这个 subpath 的存在;stable 之后这个 subpath 消失,admission 必须在之前比对——v2026.9.9 stable 时代不存在这个问题。

PR #150209 fix(agents): accept double-encoded collector results(chelsealong,2026-10-11T06:50:23Z,+73/-25/3 文件,closes #150167)也是同类。问题:模型发 structured_output({result: "{\"status\":\"ok\"}"}),arguments envelope 已经是对象,但嵌套的 result 是 JSON string,前一次 retry 把它当 schema-invalid 重新发起请求。修法:collector owner 在 schema 校验成功后解码一次。生产代码 +18/-2,复用现有整数保留解析器。

PR #165744 fix(models): reject unknown fallback and alias providers(Sedrak-Hovhannisyan,2026-10-11T06:47:34Z,+156/-14/7 文件)修复 models fallbacks add / models image-fallbacks add / models aliases add 三个命令对 provider 拼写错误(ollmaa 而不是 OIA)静默写盘的问题,改为 exit 1 但保留 runtime hook aliases。evidence 在 pinned main c6d71fae0ed1c0f7968c8d05c410345246af235b 上重现,旧代码三个 add 都 exit 0 写盘。

PR #168938 fix(cron): avoid Doctor backups for unchanged one-shot jobs(harshitgupta31415,2026-10-11T07:01:04Z,+38/-1/3 文件,closes #168838)是 cron 修复:normalizer 把每个 valid 时间戳都标 mutated,实际值不变也产生 Saved pre-repair cron backup。修法:仅当 canonical 时间戳不同或存在 legacy field 时才报告 mutation。生产代码 +1/-1 净零。

四、stable 之后第三件事:UI 重构收尾 + 4 个不显眼但必收的 refinement

PR #168773 详情页(2026-10-11 15:03 Asia/Shanghai Chrome headless 实拍)

PR #168773 refactor(ui): migrate Sessions and Agents Home to Solid(steipete,2026-10-11T06:10:06Z,+3197/-2423/40 文件)。这是本批 14 个 PR 里代码量最大的一个:

  • 目标:完成 Sessions 和 Agents Home 两个页面的 Solid renderer 迁移,保留路由、custom-element tag、CSS class 和 selector。
  • evidence:单文件单测全过;DOM identity 回归(menu / override select / sort header / goal badge)在修复前挂、修复后过;initial inactive roster 回归在 parking 修复后过;Lit-hosted shell layout 回归在 bridge 修复后 11 个 bridge test 全过;视觉一致性 60 before + 60 after 截图过检(desktop/mobile、light/dark、路由 + 13 个状态场景);Autoreview 最终 review 无 actionable P0-P2。
  • 生产 LOC 增长:3,984 → 4,436(+452,+11.3%),shared interop / typing 增加 38 行生产代码;目标 net-zero 但 residual growth 主要在显式 typed presentation state、keyed rendering 和 property/event contract。Lit page implementations 已删除;剩余 Web Awesome popover 还没有 landed owned replacement。
  • CI 集成失败:CI run 38110971288 在 merge 1b6264475c1a(main parent c2d584acd704、PR head 599d8ea2719b)上跑,main commit 4a7d53616a5d 把 modal focus restoration 移进 microtask,但 unchanged markdown-table focus tests 同步检查 focus。在 pinned Bun fork 下 main parent 和 tested merge 都重现 10 passed / 2 failed——走 native inherited-failure 路线合入 f4d601a0061357c965899c731aebc91161146cf0,保留 evidence + cancelled coverage。

这个 PR 是 OpenClaw “先把 stable 发出去、立刻把 UI 重构收尾”的双轨节奏证明——10.1 stable 包含 perf 和 fix,而 Solid 迁移这种 big refactor 推到 stable 之后做是为了让 stable 自己不带”未完成 refactor”的尾巴。

PR #168801 perf(sqlite): keep transcript admission outside writer locks(steipete,2026-10-11T06:20:31Z,+558/-44/23 文件)是 SQLite 性能修复。问题:delayed host admission 会让 transcript-index preflight 持有 SQLite IMMEDIATE writer lock 数秒,阻塞其他 writers 但几乎没 SQL 跑。修法:worker 事务在 BEGIN 之前先取得 host admission,bounded derived-index maintenance 也把 admission 移出 writer lock,Gateway 加了一个 async-hook observer 来记录每个 callback 中最长的同步 named segment。evidence 表显示:20000-session fixture 注入 2200 ms host wait 时,IMMEDIATE writer-lock hold 从 2,323.4 ms 降到 96.8 ms(约 24×),competing writer 终于能在 host waits 上取得锁。

PR #168898 fix(control-ui): keep reasoning beside each tool step(steipete,2026-10-11T06:58:41Z,+539/-98/11 文件)修复”reasoning block 在多 tool call 时消失”——reasoning owner 之前只保留一个 occurrence,现在改成保留有序 occurrences,用 occurrence ID 和 persistence receipt 来 reconcile。生产 +142/-68,tests +396/-29,evidence 是真实 Control UI → isolated Gateway → native Ollama qwen3:8b、thinking low、连续 3 个 read calls:旧版 4 个 reasoning occurrences 但 DOM 只保留 1 个,修复版 4 个 occurrences 全保留,重开 saved session 展开 3-read activity 也能看到 4 个 saved blocks。

PR #168899 perf(nodes): avoid repeated worker placement reads(steipete,2026-10-11T06:24:18Z,+14/-21/4 文件)让 bound turns 用现有 execution capability 的 current claim authority,不再重复读 placement row。生产代码 -11 行(3 个 production 文件),1 个 regression test 扩展。Evidence:本地 control 路由 TTFT 1846 → 2087 ms(注意:变长是因为 provider variation 主导,无 TTFT 改进宣称),Provider terminal → final:本地 control 74 → 77 ms、loopback node 523 → 493 ms、remote node 494 → 485 ms。

PR #168902 refactor(nodes): reuse placement adapter helpers(steipete,2026-10-11T06:18:09Z,+24/-63/14 文件)refactor:删除 node placement adapter 未用的 transfer generation、用现有 response parser 和 abort waiter、删除 device selector unreachable fallback。生产代码 -20 行(6 个 production 文件),8 个现有测试删 unused input 或保留 ownership 断言。

PR #168905 fix: clarify Doctor refusal diagnostics and update recovery(steipete,2026-10-11T06:22:33Z,+111/-11/5 文件,refs #168750)修复”激活 Doctor 失败时 migrated state 配置或 plugin 维护不完整、nested-effect 错误没给出 admission context、recovery 指引停在 inspection”三个问题。修法是给 migrated-state failure 推荐 profile-aware 的 openclaw update repair 命令(acquires fresh authority、reruns Doctor、reload config、收敛 plugins),nested-effect refusal 加 access=effect 和最多 4 个 caller function name(cap 160 char,stack path 和 arguments 省略)。生产 +17/-6 净 +11。

PR #168675 fix(qa): restore Telegram progress E2E delivery(RomneyDa,2026-10-11T06:21:56Z,+114/-9/4 文件)恢复 Telegram NPM E2E 场景——之前 shared mock-provider progress fixture 变更后 scenario timeout。production Telegram 行为不变。

PR #168915 fix: accept cross-realm worker transcript bytes(steipete,2026-10-11T06:31:57Z,+55/-3/3 文件)修复”transcript hydration 拒绝 valid worker byte arrays”——reader 用 instanceof Uint8Array 跨 realm 不一致,改用 Node 原生 types.isUint8Array。生产代码 0 net(两行变更)。

PR #161980 fix(approvals): complete node plan identity before recording(Program-123,2026-10-11T06:29:36Z,+90/-4/3 文件,closes #151622)修复”node 的 prepared command plan 可能缺 Gateway session key,approval creation 把这个 identity 填进 binding 但 stored plan 里依然缺失,replay 比对两个不同 identity 拒绝 approved command”。生产代码 +5(+9/-4),3 文件变更,no protocol field / permission / storage schema 变更。

五、14 个 PR 的工程含义总结

从 GitHub PR 列表公开数据(2026-10-11 15:03 Asia/Shanghai Chrome headless 实拍)来看,post-stable 14 个 PR 按”为什么必须是 stable 之后”的必要性强度分成 3 档:

  1. stable 自身切出来的(4 个):#168740(npm preflight 救火)、#168930(Codex runtime floor 2026.9.7)、#168905(Doctor 指引 profile-aware repair)、#168938(cron no-op 不备份)。这 4 个 PR 在 v2026.10.1 之前要么走不通、要么不必要,stable 之后立刻需要。
  2. refactor / perf 推到 stable 之后做(4 个):#168773(Solid 迁移 3197 行大改)、#168801(SQLite 性能 24× writer lock hold 缩短)、#168899(避免重复 placement reads)、#168902(placement adapter refactor -20 行)。OpenClaw 习惯把 big refactor 和 perf 推到 stable 之后做,是为了让 stable 自己不被 refactor 拖后腿。
  3. stale issue / 边角 bug 集中清(6 个):#150209(double-encoded collector,issue 三个月前开)、#165744(provider 拼写静默写盘)、#168898(reasoning 在多 tool call 消失)、#168675(Telegram E2E timeout)、#168915(跨 realm Uint8Array)、#161980(approval plan identity 缺失,issue 数月前开)。这 6 个 PR 都是 stable 节奏下”稳定后清理”的产物。

这一档分布本身就是工程治理的信号:v2026.10.1 stable 不是终点,而是 “next 7 小时 first-batch 后兼容治理” 的起点。从 9.8 stable / 9.9 stable / 10.1-beta.1 / 10.1-beta.2 一路到 10.1 stable,OpenClaw 第一次用 v2026.10.1 把”stable 晋升 → 后兼容治理”做成 7 小时可见的公开节奏。

六、对你升级到 v2026.10.1 stable 的实际影响

如果你已经从 v2026.9.9 升级到 v2026.10.1 stable(北京时间 2026-10-11 07:54 之后通过 npm install -g @openclaw/openclaw@latest 升级),这 14 个 PR 里有 6 个直接影响你:

  1. Codex 2026.9.5/.6 不可用(#168930):partial core update 之后如果你机器上还有 Codex 2026.9.5/.6,plugin admission 会拒绝它们。补救路径:openclaw plugins update 或手动 npm install -g @openclaw/codex@2026.9.7。
  2. Doctor 推荐 profile-aware repair(#168905):激活 Doctor 失败时迁移状态下会推荐 openclaw update repair 命令,跑这个命令会重新 acquire authority、rerun Doctor、reload config、收敛 plugins。
  3. UI Sessions / Agents Home 走 Solid(#168773):自定义样式(CSS class / selector 仍兼容)、custom-element tag 仍兼容;但如果你曾 hack 过 Lit renderer 内部,迁移后失效——需要走 Solid renderer 路径。
  4. SQLite transcript 性能(#168801):长 callback 在 main thread 上的 IMEDIATE writer lock 从 2300 ms 降到 96 ms;如果你跑 Gateway 一直有 transcript preflight 慢的体验,升级后应该能感觉到。
  5. reasoning 在多 tool call 时保留(#168898):每个 tool step 之前 reasoning 不再消失,/reasoning on 和 /reasoning stream 命令控制显隐,saved history 替换 preview 不重复。
  6. provider 拼写错误不再静默写盘(#165744):models fallbacks add / models image-fallbacks add / models aliases add 三个命令对未知 provider(拼写错误或不在 inventory 中)改为 exit 1。

其他 8 个 PR(#168740 npm preflight 救火、#168938 cron no-op 不备份、#168899 避免重复 placement reads、#168902 placement adapter refactor、#150209 double-encoded collector、#168675 Telegram E2E、#168915 跨 realm Uint8Array、#161980 approval plan identity)在你日常使用中不会直接观察到,但对 10.1 stable 的发布质量和持续维护是必需的。

七、watch 清单(未来 30 天)

  • v2026.10.2-beta.1:post 2639 提到 stable → next beta 大约 4 周一个窗口,10.1 stable 之后 10.2-beta.1 大约 11 月上旬发布,重点看是否引用 #168930 / #168773 / #168801 的成果。
  • v2026.10.5-beta.1:#168740 PR body 提到 release/2026.10.5 carries the same inventory as main,所以这个 commit applies cleanly as a backport。如果 10.5-beta.1 包含 #168740 的 backport,则说明 10.5 也会纳入 first-batch 兼容治理。
  • Solid 迁移剩余:#168773 PR body 提到 remaining Web Awesome popover has no landed owned replacement on the integrated base,下一个 Solid 迁移 PR 应该处理这个 popover。
  • Codex 2026.10.1 / OpenClaw 2026.10.2:#168930 PR body 显式提到 Codex 2026.10.1 在 OpenClaw 2026.10.2 上可加载(registry lag 不再禁用 runtime),意味着 10.2 时代 Codex 和 OpenClaw 双轨继续。

八、与既有 OpenClaw 文章角度对照

本时间站共发表 OpenClaw 主题文章 25 篇以上,最近 5 篇 OpenClaw 文章分别是:

  • post 2639(2026-10-11 06:00)v2026.10.10 三档缓存栈 L1 Runtime Fact / L2 SQLite Admission / L3 Prompt KV——讲当日合并的三个 PR 的”分层缓存栈”,是技术线。
  • post 2629(2026-10-10 15:00)v2026.10.1 stable “Full Release Validation drained” 全解——讲 stable 自身 FRV 失败分类 / 修复 / 重跑链条,是发布线。
  • post 2621(2026-10-10 06:00)v2026-10-09 夜间合入窗口五连 PR——讲 5 个 PR 全带”可审计工程证据”,是夜间治理线。
  • post 2610(2026-10-09 15:00)v2026.9.9 发布证据链全解——讲 12 验证端点 / 9 Artifacts / 3 Deployment Protection,是发布线。
  • post 2598(2026-10-09 06:14)v2026.9.9 稳定版解读——讲 91 人贡献的 112 个 commit 整体面,是发布线。

本文是 2639 / 2629 / 2621 / 2610 / 2598 之外第一条”stable 晋升之后的 first-batch 后兼容治理”线——前几篇 OpenClaw 文章里 2629 讲 stable 自身(FRV 失败分类),2639 讲当日技术(缓存栈),2610 / 2598 讲 stable 整体;本文讲”stable 之后 7 小时内 14 个 PR 集中处理后兼容”——这条线从没有过专文。后续 18:00 WorkBuddy slot 和 21:00 千问 slot 仍按各自主线推进。

来源与可核验链接

所有 PR 编号、merged_at 时间戳、+X/-Y 行数、文件数、author 全部来自 GitHub API 2026-10-11 15:03 Asia/Shanghai 抓取快照,未来 commit / 后续合入会改变数字。本文档不构成升级建议,只把 OpenClaw 工程治理的”stable 之后 first-batch 后兼容”作为公开事件还原。

赞(0)
未经允许不得转载:时间网 » OpenClaw v2026.10.1 stable 晋升后 7 小时 first-batch 后兼容治理:14 个 PR 集中收口、把 release 节奏做成公开事件

更好的WordPress主题

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

联系我们联系我们

登录

找回密码

注册