openclaw/docs/ci.md
Peter Steinberger ac7c393385
fix(ci): lint CommonJS CLI diagnostics with type-aware checks (#151385)
Extend the existing type-aware core lint checks to CommonJS CLI test support through a bounded discovery project. Preserve TypeScript coverage and exclude unrelated JavaScript, with installed-linter regression coverage and CI documentation.

Main already contains the diagnostic dispatcher binding; this change closes the remaining lint discovery gap. No user-visible runtime behavior changes.

Related: #151161, #150959.

Validation: exact-head CI run 35354844001 was green with zero pending jobs; scoped Codex review and the latest ClawSweeper review found no actionable correctness issues.
2026-09-18 08:08:07 -07:00

9.1 KiB

summary title read_when
CI job graph, scope gates, release umbrellas, and local command equivalents CI pipeline
You need to understand why a CI job did or did not run
You are debugging a failing GitHub Actions check
You are coordinating a release validation run or rerun
You are changing ClawSweeper dispatch or GitHub activity forwarding

This page is an index. CI is documented on nine pages, one per reader job. Open the page that matches your task.

For the published-upgrade regression gate, see selection and routing, runner budgets, and Package Acceptance baselines. Weekly validation is listed under Update Migration.

Docs-only main pushes skip CI. Docker seed and QA Smoke use the same owner-path selection on pull requests and main; manual CI and Full Release Validation retain their coverage. Control UI performance uses its own UI/build/import scope. See scope selection for the coverage trade-off.

Core-test-only PRs use targeted type checks only when every selected test exists in the checkout. Deleting a core test keeps the full type-check plan, including the existing core stripes on GitHub and hybrid profiles.

Core lint includes src/**/*.test-support.cjs in type-aware checks through the bounded src/tsconfig.json discovery project. Other source files retain the root TypeScript project; unrelated JavaScript files are not added to this test-support project.

Android native resource preparation uses the Mermaid renderer's filtered dependency install, including optional build tooling. Pnpm retains root dependencies but omits unrelated plugin packages; Gradle still builds the assets and runs the selected native tests and lint. Historical targets keep their compatibility path.

Short hybrid jobs use a 40-row base threshold and 45-row hosted admission limit, with unchanged coverage and Blacksmith fallback when optional work does not fit.

Real-Gateway browser checks use job budgets matched to their selected runner.

In-process Gateway test configs use exclusive plan admission within existing packed jobs.

Page Read it when
CI pipeline jobs The job table, the fail-fast order, and the Control UI size budgets.
Watch a CI run Wait on one pull request head, recover a stuck run, and pass the evidence gate.
CI checkout ownership Shared checkout anchors, fetch retry budgets, and trusted action policy.
CI scope and routing Why a job did or did not run: changed-scope detection and manual dispatch.
CI runner classes Trust-based runner routing, preflight queue recovery, Blacksmith classes, and runner backend modes.
CI capacity and shard weights The runner registration budget and the measured timings behind shard packing.
Release validation workflows Full Release Validation, live and E2E shards, Package Acceptance, install smoke, Docker E2E, and Plugin Prerelease.
Scheduled and maintenance workflows OpenClaw Performance, QA Lab, CodeQL, the maintenance jobs, and ClawSweeper activity forwarding.
Local checks and Testbox Reproduce a lane locally, keep the shrink-only ratchets, and run Crabbox or Testbox proof.

Where each section moved

Every section heading from the previous single-page version keeps its anchor here, so an existing link such as /ci#pipeline-overview still resolves. Each entry points at the page that now holds the content.