Release process

Release profiles and focused reruns

Release profiles

release_profile controls live/provider breadth inside release checks. The bounded canonical beta gate described in Extended-stable and changelog-only validation also selects npm-focused CI and defers performance and Telegram confidence. Plugin Prerelease, install smoke, package acceptance, and QA parity remain selected. Stable and full profiles always run exhaustive repo/live E2E, Docker release-path, and QA-live soak coverage. The beta profile adds those lanes only with run_release_soak=true, an explicit qa-live controller retry, or the direct child's manual qa aggregate. Package Acceptance supplies the canonical package Telegram E2E when selected; beta all without soak defers it to confidence work.

Profile Intended use Included live/provider coverage
beta Fastest release-critical smoke. OpenAI/core live path, Docker live models for OpenAI, native gateway core, native OpenAI gateway profile, native OpenAI plugin, and Docker live gateway OpenAI.
stable Default release approval profile. beta plus Anthropic smoke, Google, MiniMax, backend, native live test harness, Docker live CLI backend, Docker ACP bind, Docker Codex harness, Docker subagent-announce, and an OpenCode Go smoke shard.
full Broad advisory sweep. stable plus advisory providers, plugin live shards, and media live shards.

Full-only additions

These suites are skipped by stable and included by full:

Area Full-only coverage
Docker live models OpenCode Go, OpenRouter, xAI, Z.ai, and Fireworks.
Docker live gateway Advisory providers split into DeepSeek/Fireworks, OpenCode Go/OpenRouter, and xAI/Z.ai shards.
Native gateway provider profiles Full Anthropic Opus and Sonnet/Haiku shards, Fireworks, DeepSeek, full OpenCode Go model shards, OpenRouter, xAI, and Z.ai.
Native plugin live shards Plugins A-K, L-N, O-Z other, Moonshot, and xAI.
Native media live shards Audio, Google music, MiniMax music, and video groups A-D.

stable includes native-live-src-gateway-profiles-anthropic-smoke and native-live-src-gateway-profiles-opencode-go-smoke; full uses the broader Anthropic and OpenCode Go model shards instead. Focused reruns can still use the aggregate native-live-src-gateway-profiles-anthropic or native-live-src-gateway-profiles-opencode-go handles.

Focused reruns

Use rerun_group to avoid repeating unrelated release boxes:

Handle Scope
all Profile-selected qualification; canonical beta without soak uses npm-beta-v1; regular stable uses npm-stable-v1, which defers native apps only.
ci Manual full CI child only.
plugin-prerelease Plugin Prerelease child only.
install-smoke Install Smoke through release checks.
cross-os Cross-OS release checks.
live-e2e Repo/live E2E and Docker release-path validation.
package Package Acceptance.
qa-parity QA parity, runtime-pair/restart, and runtime tool coverage.
qa-live QA live Matrix, Buzz, and Telegram plus gated Discord, WhatsApp, and Slack lanes when enabled.
npm-telegram Published-package Telegram E2E; requires release_package_spec or npm_telegram_package_spec.
performance Product performance evidence only.

Use live_suite_filter with rerun_group=live-e2e when one live suite failed. The former release-checks aggregate retry handle is invalid. It silently expanded to every release-check lane, including package and Docker setup. Pick one concrete group after classifying the failed surface. The umbrella/controller also rejects qa; direct OpenClaw Release Checks dispatches may use it only as a deliberate manual aggregate of qa-parity and qa-live. Live and QA-live filters must match their owning group; cross-OS filters are also accepted for all. Mismatches fail before scheduling and never widen to an unfiltered run. Valid filter ids are defined in the reusable live/E2E workflow, including docker-live-models, live-gateway-docker, live-gateway-anthropic-docker, live-gateway-google-docker, live-gateway-minimax-docker, live-gateway-advisory-docker, live-cli-backend-docker, live-cli-cache-docker, live-acp-bind-docker, and live-codex-harness-docker.

For a focused QA transport rerun, set rerun_group=qa-live and use the canonical selector qa-live-matrix, qa-live-buzz, qa-live-telegram, qa-live-discord, qa-live-whatsapp, or qa-live-slack.

The live-gateway-advisory-docker handle is an aggregate rerun handle for its three provider shards, so it still fans out to all advisory Docker gateway jobs.

Use cross_os_suite_filter with rerun_group=cross-os when one cross-OS lane failed. The filter accepts comma-separated OS ids, suite ids, or OS/suite pairs, for example windows/packaged-upgrade, windows, or packaged-fresh. All-group runs accept the same selections: -f cross_os_suite_filter=ubuntu,macos excludes Windows while retaining every Linux suite. npm-stable-v1 and npm-beta-v1 still qualify when advisory OS lanes are omitted, provided all three Linux suites (packaged-fresh, installer-fresh, and packaged-upgrade) remain selected and the other policy requirements hold. Omitted lanes are not run, never passed. Focused reruns remain focused evidence, not publication authorization. Cross-OS summaries include per-phase timings for packaged upgrade lanes, and long-running commands print heartbeat lines so a stuck update is visible before the job timeout.

QA release-check failures block normal release validation, including selected parity, runtime-pair/restart, Matrix, and runtime tool coverage. Some QA jobs use continue-on-error to preserve diagnostics, but the release verifier checks their recorded status; that setting does not remove the gate. Source and package Telegram outcomes are advisory; failed, skipped, or deferred attempts are never reported as passed. Tideclaw alpha runs may still treat non-package-safety release-check lanes as advisory. With release_profile=beta, the Run repo/live E2E validation live-provider suites are advisory: third-party model deployments change underneath a release, so beta surfaces their failures as warnings while stable and full profiles keep them blocking. When live_suite_filter explicitly requests a gated QA live lane such as Discord, WhatsApp, or Slack, the matching OPENCLAW_RELEASE_QA_*_LIVE_CI_ENABLED repo variable must be enabled; otherwise input capture fails instead of silently skipping the lane. Use controller groups qa-parity or qa-live for fresh QA evidence. A direct manual OpenClaw Release Checks dispatch may use qa to aggregate both.

Was this useful?
On this page

On this page