openclaw/scripts/github
Peter Steinberger de2f83e271
refactor(scripts): deslop CI and release tooling (#164009)
## What Problem This Solves

CI and release tooling still carries retired selection paths, duplicate evidence projections, and single-use command factories that make its current behavior harder to follow.

## User Impact

No user-visible change. CI keeps the same jobs and gates; release receipts, manifest digests, CLI output, packaging contracts, and generated Gateway protocol bytes stay compatible. No SDK API, config, wire, or persisted-data changes.

## Why This Change Was Made

This batch removes **1,235 net production/tooling lines** (890 added, 2,125 deleted; tests excluded).

- Remove the unused extension fallback and core-impact classifier after their production caller was retired in `6a50179657`. The current planner consumes explicit targets; meaningful coverage now exercises that path. Remove unused current-planner options while retaining arguments needed by September frozen targets.
- Use the existing grouping helper and direct descriptors for CI shards; let the Docker lane constructor own its default command and remove one-use factories. Selection, lane ordering, prerequisites, and commands remain identical.
- Reuse release-policy child topology, evidence projections, and canonical JSON sorting; remove always-empty advisory machinery. Share the existing postpublication diagnostic schema while retaining the observer's `startup_failure` extension and historical receipt validation.
- Cross-OS packaging now uses the canonical package helper directly instead of maintaining a second pack/inventory implementation. That helper predates July 2026 and exists in all 36 available July-or-later release tags. Remove npm-runner forwarding and test-only APIs.
- Simplify docs translation fence/link processing and remove unused route, cursor, and split-depth state. Replace hand-written ZIP CRC with Node's implementation; remove an unreachable Swift fallback, retired cancellation adapter, and redundant timing/tarball branches.
- Keep the actual core consumer of the shared package metadata helper in Knip's graph, rather than suppressing a dead-export warning.

## Evidence

Remote proof uses [Blacksmith Testbox run 37090710184](https://github.com/openclaw/openclaw/actions/runs/37090710184), lease `tbx_01m3zt7sykcrdm1fq4m8zf4bz4`, with dependencies installed. Final source tree `3b3f07ba57325ab7da7335fd125dec0fd43216ac` matches commit `8c147759f7a8047189daf2ac0bacd4ae4f5b88d9`. After full-sync timeouts, targeted transfer plus whole-tree verification completed the proof.

- Focused TypeScript selection: **1,988 tests passed across 30 files**, about 398 seconds including the wrapper. Changed-test single-worker proof: **629 passed**; tooling shard 308.96 seconds. The root retention test passed all four cases. An additional eight-file selection passed **255 tests**, 30.16 seconds including the wrapper.
- `cd scripts/docs-i18n && go test ./...`: passed, package time 0.179 seconds.
- Base/candidate comparisons: **393 release output/error/digest comparisons**, **1,234 Docker comparisons across 727 plans**, **24 extension selection/packing comparisons**, and four Node shard-inventory profiles passed. Generated Swift protocol output is byte-identical.
- `pnpm test <changed files> --maxWorkers=1` retains the expensive real-repository ownership assertions: source-owner file 87.778 seconds; cross-OS release checks 0.971 seconds; workflow control 0.486 seconds; extension preparation 0.272 seconds. No new CI job or added test budget.
- Independent autoreview found no actionable P0/P1 regression. Final `check-changed` passed, including types, lint, package boundaries, ratchets, and all three unused-export scans. Both import-cycle checks reported **0**. Final single-worker replay of npm locks, cross-OS packaging, and release summaries: **306 tests passed**, 30.82 seconds including the wrapper.

Fixes found along the way: no separate product bug was established. Gate findings were corrected in the owning changes; tests were not weakened to conceal failures.
2026-10-03 04:04:39 +00:00
..
barnacle-auto-response.mjs refactor(scripts): deslop tooling scripts third pass (#161354) 2026-09-29 17:00:46 -07:00
dated-todo-upsert.mjs refactor(scripts): deslop tooling scripts third pass (#161354) 2026-09-29 17:00:46 -07:00
dependency-guard.mjs fix(ci): stop obsolete security reviews after PR lifecycle changes (#160890) 2026-09-28 21:34:29 -05:00
find-reusable-release-validation.sh
guard-review.mjs fix(ci): stop obsolete security reviews after PR lifecycle changes (#160890) 2026-09-28 21:34:29 -05:00
guard-shared.mjs fix(ci): recover interrupted Security Review response bodies (#157651) 2026-09-24 20:11:01 -05:00
labeler-label-cap.mjs
pr-ci-sweeper.mjs fix(ci): stop reviving canceled test workflows 2026-09-23 18:27:19 -07:00
real-behavior-proof-check.mjs
real-behavior-proof-policy.mjs refactor(scripts): deslop shared tooling flows (#162824) 2026-10-01 21:30:19 +00:00
release-validation-campaign.d.mts
release-validation-campaign.mjs refactor(scripts): deslop CI and release tooling (#164009) 2026-10-03 04:04:39 +00:00
resolve-openclaw-ref.sh
resolve-release-check-artifacts.sh
run-openclaw-cross-os-release-checks.sh
security-review-event.mjs ci(security-review): reconcile ci-gate statuses when CI completion delivery is lost (#155392) 2026-09-27 14:08:14 -07:00
security-review-policy.mjs
security-review-rollout.mjs
security-review.mjs fix(ci): stop obsolete security reviews after PR lifecycle changes (#160890) 2026-09-28 21:34:29 -05:00
security-sensitive-guard.mjs fix(ci): stop obsolete security reviews after PR lifecycle changes (#160890) 2026-09-28 21:34:29 -05:00
validate-release-suite-filters.sh fix(release): require Gateway and Telegram validation (#156811) 2026-09-23 19:04:50 -07:00