diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index 45b343efe..fb50f261b 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "ed97cc72100bc24023eb4fd99cc7f0b01d863571", - "syncedAt": "2026-04-22T14:53:20.799Z" + "sha": "fb70d3ac67c1436c59d3f13f7c021eb0acddde94", + "syncedAt": "2026-04-22T14:54:34.307Z" } diff --git a/docs/ci.md b/docs/ci.md index bd9854607..19c13cc2b 100644 --- a/docs/ci.md +++ b/docs/ci.md @@ -54,6 +54,7 @@ On pushes, the `checks` matrix adds the push-only `compat-node22` lane. On pull The slowest Node test families are split into include-file shards so each job stays small: channel contracts split registry and core coverage into eight weighted shards each, auto-reply reply command tests split into four include-pattern shards, and the other large auto-reply reply prefix groups split into two shards each. `check-additional` also separates package-boundary compile/canary work from runtime topology gateway/architecture work. GitHub may mark superseded jobs as `cancelled` when a newer push lands on the same PR or `main` ref. Treat that as CI noise unless the newest run for the same ref is also failing. Aggregate shard checks use `!cancelled() && always()` so they still report normal shard failures but do not queue after the whole workflow has already been superseded. +The CI concurrency key is versioned (`CI-v2-*`) so a GitHub-side zombie in an old queue group cannot indefinitely block newer main runs. ## Runners