OpenClawには3つの公開リリースレーンがあります:Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
- stable: デフォルトでは npm
betaに公開され、明示的に要求された場合は npmlatestに公開されるタグ付きリリース - beta: npm
betaに公開されるプレリリースタグ - dev:
mainの移動し続ける先頭
バージョン命名
- 安定版リリースバージョン:
YYYY.M.D- Git タグ:
vYYYY.M.D
- Git タグ:
- 安定版修正リリースバージョン:
YYYY.M.D-N- Git タグ:
vYYYY.M.D-N
- Git タグ:
- Beta プレリリースバージョン:
YYYY.M.D-beta.N- Git タグ:
vYYYY.M.D-beta.N
- Git タグ:
- 月または日をゼロ埋めしない
latestは現在昇格済みの安定版 npm リリースを意味するbetaは現在の beta インストール対象を意味する- 安定版および安定版修正リリースは、デフォルトでは npm
betaに公開される。リリース担当者は明示的にlatestを対象にすることも、検証済みの beta ビルドを後で昇格することもできる - すべての安定版 OpenClaw リリースでは、npm パッケージと macOS アプリを一緒に出荷する。 beta リリースでは通常、まず npm/パッケージ経路を検証して公開し、 mac アプリのビルド/署名/公証は明示的に要求されない限り安定版用に予約する
リリース周期
- リリースは beta 優先で進む
- 安定版は最新の beta が検証された後にのみ続く
- メンテナーは通常、現在の
mainから作成したrelease/YYYY.M.Dブランチからリリースを切る。 これにより、リリース検証と修正がmain上の新規開発をブロックしない - beta タグがすでにプッシュまたは公開されていて修正が必要な場合、メンテナーは古い beta タグを削除または再作成するのではなく、
次の
-beta.Nタグを切る - 詳細なリリース手順、承認、認証情報、リカバリメモは メンテナー専用
リリース担当者チェックリスト
このチェックリストは、リリースフローの公開される形です。非公開の認証情報、 署名、公証、dist-tag リカバリ、緊急ロールバックの詳細は、 メンテナー専用のリリース runbook に残します。- 現在の
mainから開始する: 最新を pull し、対象コミットがプッシュ済みであることを確認し、 現在のmainCI がブランチ作成に十分な程度に green であることを確認する。 - 実際のコミット履歴から
/changelogでCHANGELOG.mdの先頭セクションを書き直し、 エントリをユーザー向けに保ち、コミットしてプッシュし、ブランチ作成前にもう一度 rebase/pull する。 src/plugins/compat/registry.tsとsrc/commands/doctor/shared/deprecation-compat.tsのリリース互換性レコードを確認する。期限切れの 互換性は、アップグレード経路が引き続きカバーされる場合にのみ削除する。そうでない場合は、意図的に 継続する理由を記録する。- 現在の
mainからrelease/YYYY.M.Dを作成する。通常のリリース作業をmainで直接行わない。 - 予定しているタグに必要なすべてのバージョン箇所を bump し、その後
pnpm release:prepを実行する。これは Plugin バージョン、Plugin インベントリ、config schema、バンドル channel config メタデータ、config docs baseline、Plugin SDK exports、Plugin SDK API baseline を正しい順序で更新する。タグ付け前に生成された 差分をコミットする。その後、ローカルの決定的 preflight を実行する:pnpm check:test-types,pnpm check:architecture,pnpm build && pnpm ui:build,pnpm release:check。 preflight_only=trueでOpenClaw NPM Releaseを実行する。タグが存在する前は、 validation-only preflight 用に完全な40文字のリリースブランチ SHA を使用できる。 成功したpreflight_run_idを保存する。- リリースブランチ、タグ、または完全なコミット SHA に対して
Full Release Validationで すべてのプレリリーステストを開始する。これは4つの大きなリリーステストボックスである Vitest、Docker、QA Lab、Package の単一の手動エントリポイントである。 - 検証に失敗した場合は、リリースブランチ上で修正し、その修正を証明する最小の失敗ファイル、 レーン、workflow job、package profile、provider、または model allowlist を再実行する。 変更された表面によって以前の証拠が古くなる場合にのみ、umbrella 全体を再実行する。
- beta の場合は
vYYYY.M.D-beta.Nをタグ付けし、その後一致するrelease/YYYY.M.DブランチからOpenClaw Release Publishを実行する。これはpnpm plugins:sync:checkを検証し、 公開可能なすべての Plugin パッケージを npm に、同じセットを ClawHub に並列で dispatch し、 Plugin npm publish が成功したらすぐに、準備済みの OpenClaw npm preflight artifact を一致する dist-tag で昇格する。OpenClaw npm publish child が成功した後、 完全に一致するCHANGELOG.mdセクションから、対応する GitHub release/prerelease ページを作成または更新する。npmlatestに公開された安定版リリースは GitHub latest release になる。 npmbetaに維持される安定版メンテナンスリリースは GitHublatest=falseで作成される。 OpenClaw npm の公開中も ClawHub 公開はまだ実行中の場合があるが、 release publish workflow は child run ID を即座に出力する。デフォルトでは、 dispatch 後に ClawHub を待たないため、OpenClaw npm の可用性は、より遅い ClawHub 承認や registry 作業によってブロックされない。ClawHub が workflow completion をブロックする必要がある場合はwait_for_clawhub=trueを設定する。 ClawHub 経路は一時的な CLI dependency install 失敗を再試行し、1つの preview cell が flaky でも preview に通った Plugin を公開し、最後に期待されるすべての Plugin バージョンの registry 検証を行うため、部分的な公開は可視で再試行可能なままになる。公開後、pnpm release:verify-beta -- YYYY.M.D-beta.N --openclaw-npm-run <run-id> --plugin-npm-run <run-id> --plugin-clawhub-run <run-id>を実行し、GitHub prerelease、npmbetadist-tags、npm integrity、 公開済みインストール経路、ClawHub の正確なバージョン、ClawHub artifacts、child workflow conclusions を1つのコマンドで検証する。 ClawHub sidecar が再試行可能な jobs でのみ失敗し、その場で再実行すべき場合は--rerun-failed-clawhubを追加する。 その後、公開されたopenclaw@YYYY.M.D-beta.Nまたはopenclaw@betaパッケージに対して、公開後の package acceptance を実行する。プッシュ済みまたは公開済みのプレリリースに修正が必要な場合は、 次に一致するプレリリース番号を切る。古いプレリリースを削除または書き換えない。 - 安定版の場合は、検証済みの beta または release candidate に必要な検証証拠がある場合にのみ続行する。
安定版 npm publish も
OpenClaw Release Publishを通り、preflight_run_id経由で成功した preflight artifact を再利用する。安定版 macOS リリース準備完了には、 package 済みの.zip、.dmg、.dSYM.zip、およびmain上の更新済みappcast.xmlも必要である。 非公開の macOS publish workflow は、release assets の検証後、署名済み appcast を公開mainに 自動で公開する。branch protection が直接 push をブロックする場合は、 appcast PR を開くか更新する。 - 公開後、npm post-publish verifier、公開後 channel proof が必要な場合は任意の standalone published-npm Telegram E2E、必要な場合は dist-tag promotion を実行し、 生成された GitHub release ページを検証し、 リリース告知手順を実行する。
リリース preflight
- リリース前のプリフライト前に
pnpm check:test-typesを実行し、テスト TypeScript が高速なローカルpnpm checkゲートの外でもカバーされるようにする - リリース前のプリフライト前に
pnpm check:architectureを実行し、より広範なインポートサイクルとアーキテクチャ境界チェックが高速なローカルゲートの外でもグリーンになるようにする pnpm release:checkの前にpnpm build && pnpm ui:buildを実行し、pack 検証ステップで期待されるdist/*リリース成果物と Control UI バンドルが存在するようにする- ルートのバージョン更新後、タグ付け前に
pnpm release:prepを実行する。これは、バージョン/config/API 変更後にずれやすいすべての決定的なリリース生成処理を実行する: plugin バージョン、plugin インベントリ、ベース config スキーマ、同梱 channel config メタデータ、config docs ベースライン、plugin SDK exports、plugin SDK API ベースライン。pnpm release:checkはこれらのガードをチェックモードで再実行し、検出したすべての生成物のずれ失敗を 1 回のパスで報告してから、package release checks を実行する。 - リリース承認前に手動の
Full Release Validationworkflow を実行し、すべてのリリース前 test box を 1 つの入口から開始する。これは branch、tag、または完全な commit SHA を受け取り、手動CIを dispatch し、install smoke、package acceptance、cross-OS package checks、QA Lab parity、Matrix、Telegram lanes のためにOpenClaw Release Checksを dispatch する。stable/default 実行では、網羅的な live/E2E と Docker release-path soak はrun_release_soak=trueの背後に置かれる。release_profile=fullは soak を強制的にオンにする。release_profile=fullとrerun_group=allの場合、release checks のrelease-package-under-testartifact に対して package Telegram E2E も実行する。beta 公開後にrelease_package_specを指定すると、release tarball を再ビルドせずに、出荷済み npm package を release checks、Package Acceptance、package Telegram E2E 全体で再利用できる。Telegram がリリース検証の残りとは異なる公開済み package を使う必要がある場合にのみnpm_telegram_package_specを指定する。Package Acceptance が release package spec とは異なる公開済み package を使う必要がある場合はpackage_acceptance_package_specを指定する。private evidence report で、Telegram E2E を強制せずに検証が公開済み npm package と一致することを証明する必要がある場合はevidence_package_specを指定する。 例:gh workflow run full-release-validation.yml --ref main -f ref=release/YYYY.M.D - リリース作業を継続しながら package candidate のサイドチャネル証拠が必要な場合は、手動の
Package Acceptanceworkflow を実行する。openclaw@beta、openclaw@latest、または正確なリリースバージョンにはsource=npmを使う。現在のworkflow_refharness で信頼済みのpackage_refbranch/tag/SHA を pack するにはsource=refを使う。必須の SHA-256 を持つ HTTPS tarball にはsource=urlを使う。別の GitHub Actions 実行によってアップロードされた tarball にはsource=artifactを使う。workflow は candidate をpackage-under-testに解決し、その tarball に対して Docker E2E release scheduler を再利用し、telegram_mode=mock-openaiまたはtelegram_mode=live-frontierで同じ tarball に対する Telegram QA を実行できる。選択された Docker lanes にpublished-upgrade-survivorが含まれる場合、package artifact が candidate になり、published_upgrade_survivor_baselineが公開済み baseline を選択する。update-restart-authは candidate package を installed CLI と package-under-test の両方として使うため、candidate update command の managed restart path を実行する。 例:gh workflow run package-acceptance.yml --ref main -f workflow_ref=main -f source=npm -f package_spec=openclaw@beta -f suite_profile=product -f published_upgrade_survivor_baseline=openclaw@2026.4.26 -f telegram_mode=mock-openai一般的なプロファイル:smoke: install/channel/agent、gateway network、config reload lanespackage: OpenWebUI や live ClawHub を含まない、artifact-native package/update/restart/plugin lanesproduct: package profile に加えて MCP channels、cron/subagent cleanup、OpenAI web search、OpenWebUIfull: OpenWebUI を含む Docker release-path chunkscustom: focused rerun のための正確なdocker_lanes選択
- リリース候補に対する通常のフル CI カバレッジだけが必要な場合は、手動の
CIworkflow を直接実行する。手動 CI dispatch は changed scoping をバイパスし、Linux Node shards、bundled-plugin shards、channel contracts、Node 22 compatibility、check、check-additional、build smoke、docs checks、Python skills、Windows、macOS、Android、Control UI i18n lanes を強制する。 例:gh workflow run ci.yml --ref release/YYYY.M.D - リリース telemetry を検証する場合は
pnpm qa:otel:smokeを実行する。これはローカル OTLP/HTTP receiver を通じて QA-lab を実行し、Opik、Langfuse、またはその他の外部 collector を必要とせずに、エクスポートされた trace span 名、境界付き attributes、content/identifier redaction を検証する。 - すべてのタグ付きリリース前に
pnpm release:checkを実行する - tag が存在した後、変更を伴う publish sequence のために
OpenClaw Release Publishを実行する。release/YYYY.M.Dから dispatch する(main から到達可能な tag を公開する場合はmainから)。release tag と成功した OpenClaw npmpreflight_run_idを渡し、意図的に focused repair を実行しているのでない限り、default plugin publish scope はall-publishableのままにする。この workflow は plugin npm publish、plugin ClawHub publish、OpenClaw npm publish を順序付け、外部化された plugins より前に core package が公開されないようにする。 - Release checks は別の手動 workflow で実行されるようになった:
OpenClaw Release Checks OpenClaw Release Checksは、リリース承認前に QA Lab mock parity lane に加えて、高速な live Matrix profile と Telegram QA lane も実行する。live lanes はqa-live-sharedenvironment を使う。Telegram は Convex CI credential leases も使う。Matrix transport、media、E2EE inventory 全体を並列で実行したい場合は、matrix_profile=allとmatrix_shards=trueで手動のQA-Lab - All Lanesworkflow を実行する。- Cross-OS install and upgrade runtime validation は public
OpenClaw Release ChecksとFull Release Validationの一部であり、これらは reusable workflow.github/workflows/openclaw-cross-os-release-checks-reusable.ymlを直接呼び出す - この分割は意図的なもの: 実際の npm release path を短く、決定的で、artifact に集中したものに保ち、遅い live checks は独自の lane に置くことで、publish を停滞させたりブロックしたりしないようにする
- secret を含む release checks は
Full Release Validation経由、またはmain/release workflow ref から dispatch し、workflow logic と secrets が管理された状態を保つべきである OpenClaw Release Checksは、解決された commit が OpenClaw branch または release tag から到達可能である限り、branch、tag、または完全な commit SHA を受け付けるOpenClaw NPM Releaseの validation-only preflight も、push 済み tag を要求せずに、現在の完全な 40 文字の workflow-branch commit SHA を受け付ける- その SHA path は validation-only であり、実際の publish に昇格できない
- SHA mode では、workflow は package metadata check のためだけに
v<package.json version>を合成する。実際の publish には引き続き実際の release tag が必要である - どちらの workflow も実際の publish と promotion path は GitHub-hosted runners 上に保ち、変更を伴わない validation path はより大きな Blacksmith Linux runners を使える
- その workflow は
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 pnpm test:live:cacheをOPENAI_API_KEYとANTHROPIC_API_KEYの両方の workflow secrets を使って実行する - npm release preflight は、別個の release checks lane を待たなくなった
- リリース候補にローカルでタグ付けする前に、
RELEASE_TAG=vYYYY.M.D-beta.N pnpm release:fast-pretag-checkを実行する。この helper は、GitHub publish workflow が開始する前に承認をブロックしがちなミスを捕捉する順序で、fast release guardrails、plugin npm/ClawHub release checks、build、UI build、release:openclaw:npm:checkを実行する。 - 承認前に
RELEASE_TAG=vYYYY.M.D node --import tsx scripts/openclaw-npm-release-check.ts(または対応する beta/correction tag)を実行する - npm publish 後に
node --import tsx scripts/openclaw-npm-postpublish-verify.ts YYYY.M.D(または対応する beta/correction version)を実行し、新しい一時 prefix で公開済み registry install path を検証する - beta publish 後に、共有 leased Telegram credential pool を使って、公開済み npm package に対する installed-package onboarding、Telegram setup、実際の Telegram E2E を検証するため、
OPENCLAW_NPM_TELEGRAM_PACKAGE_SPEC=openclaw@YYYY.M.D-beta.N OPENCLAW_NPM_TELEGRAM_CREDENTIAL_SOURCE=convex OPENCLAW_NPM_TELEGRAM_CREDENTIAL_ROLE=ci pnpm test:docker:npm-telegram-liveを実行する。maintainer のローカル単発実行では Convex vars を省略し、3 つのOPENCLAW_QA_TELEGRAM_*env credentials を直接渡してもよい。 - maintainer machine から完全な post-publish beta smoke を実行するには、
pnpm release:beta-smoke -- --beta betaNを使う。この helper は Parallels npm update/fresh-target validation を実行し、NPM Telegram Beta E2Eを dispatch し、正確な workflow run を poll し、artifact をダウンロードし、Telegram report を出力する。 - Maintainers は GitHub Actions から手動の
NPM Telegram Beta E2Eworkflow を通じて同じ post-publish check を実行できる。これは意図的に manual-only であり、すべての merge で実行されるわけではない。 - Maintainer release automation は preflight-then-promote を使うようになった:
- 実際の npm publish には、成功した npm
preflight_run_idが必要である - 実際の npm publish は、成功した preflight run と同じ
mainまたはrelease/YYYY.M.Dbranch から dispatch する必要がある - stable npm releases はデフォルトで
betaになる - stable npm publish は workflow input によって明示的に
latestを target にできる - token-based npm dist-tag mutation は現在、security のために
openclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.ymlにある。npm dist-tag addは引き続きNPM_TOKENを必要とする一方、public repo は OIDC-only publish を保つためである - public
macOS Releaseは validation-only である。tag が release branch 上にのみ存在し、workflow がmainから dispatch される場合は、public_release_branch=release/YYYY.M.Dを設定する - 実際の private mac publish には、成功した private mac
preflight_run_idとvalidate_run_idが必要である - 実際の publish paths は、準備済み artifacts を再ビルドするのではなく promote する
- 実際の npm publish には、成功した npm
YYYY.M.D-Nのような stable correction releases では、post-publish verifier は同じ temp-prefix upgrade path でYYYY.M.DからYYYY.M.D-Nへのアップグレードもチェックするため、release corrections が古い global installs を base stable payload のまま静かに残すことはできない- npm release preflight は、tarball に
dist/control-ui/index.htmlと空でないdist/control-ui/assets/payload の両方が含まれていない限り fail closed するため、空の browser dashboard を再び出荷しない - Post-publish verification は、公開済み plugin entrypoints と package metadata が installed registry layout に存在することもチェックする。plugin runtime payloads が欠落した release は postpublish verifier に失敗し、
latestに昇格できない。 pnpm test:install:smokeは candidate update tarball に対する npm packunpackedSizebudget も強制するため、installer e2e は release publish path の前に偶発的な pack bloat を検出する- リリース作業が CI planning、extension timing manifests、または extension test matrices に触れた場合は、承認前に
.github/workflows/plugin-prerelease.ymlから planner-ownedplugin-prerelease-extension-shardmatrix outputs を再生成してレビューし、release notes が古い CI layout を説明しないようにする - Stable macOS release readiness には updater surfaces も含まれる:
- GitHub release には、packaged
.zip、.dmg、.dSYM.zipが最終的に含まれている必要がある - publish 後、
main上のappcast.xmlは新しい stable zip を指している必要がある。private macOS publish workflow はそれを自動的に commit するか、direct push がブロックされている場合は appcast PR を開く - packaged app は、その release version に対する canonical Sparkle build floor 以上の non-debug bundle id、空でない Sparkle feed URL、
CFBundleVersionを維持する必要がある
- GitHub release には、packaged
リリーステストボックス
Full Release Validation は、オペレーターが 1 つのエントリポイントからすべてのプレリリーステストを開始する方法です。動きの速いブランチ上で固定コミットの証明を行う場合は、ヘルパーを使用して、すべての子ワークフローが対象 SHA に固定された一時ブランチから実行されるようにします。
release-ci/<sha>-... をプッシュし、そのブランチから ref=<sha> で Full Release Validation をディスパッチし、すべての子ワークフローの headSha が対象と一致することを検証してから、一時ブランチを削除します。これにより、誤って新しい main の子実行を証明してしまうことを避けられます。
リリースブランチまたはタグの検証では、信頼済みの main ワークフロー ref から実行し、リリースブランチまたはタグを ref として渡します。
target_ref=<release-ref> で手動 CI をディスパッチし、OpenClaw Release Checks をディスパッチし、パッケージ向けチェック用の親 release-package-under-test アーティファクトを準備します。また、release_profile=full かつ rerun_group=all の場合、または release_package_spec か npm_telegram_package_spec が設定されている場合に、スタンドアロンのパッケージ Telegram E2E をディスパッチします。その後 OpenClaw Release Checks は、インストールスモーク、クロス OS リリースチェック、soak が有効な場合の live/E2E Docker リリースパスカバレッジ、Telegram パッケージ QA を含む Package Acceptance、QA Lab パリティ、live Matrix、live Telegram に展開されます。完全な実行が受け入れ可能なのは、Full Release Validation サマリーで normal_ci と release_checks が成功している場合だけです。full/all モードでは、npm_telegram 子も成功している必要があります。full/all 以外では、公開済みの release_package_spec または npm_telegram_package_spec が提供されていない限りスキップされます。最終検証サマリーには各子実行の最遅ジョブテーブルが含まれるため、リリースマネージャーはログをダウンロードせずに現在のクリティカルパスを確認できます。完全なステージマトリクス、正確なワークフロージョブ名、stable と full プロファイルの違い、アーティファクト、焦点を絞った再実行ハンドルについては、完全なリリース検証 を参照してください。子ワークフローは、対象 ref が古いリリースブランチやタグを指している場合でも、Full Release Validation を実行する信頼済み ref、通常は --ref main からディスパッチされます。個別の Full Release Validation ワークフロー ref 入力はありません。ワークフロー実行 ref を選ぶことで、信頼済みハーネスを選択してください。動いている main 上で正確なコミット証明を行うために --ref main -f ref=<sha> を使用しないでください。生のコミット SHA はワークフローディスパッチ ref にできないため、pnpm ci:full-release --sha <sha> を使って固定済みの一時ブランチを作成します。
live/プロバイダーの範囲を選ぶには release_profile を使用します。
minimum: 最速のリリースクリティカルな OpenAI/core live と Docker パスstable: minimum に加えて、リリース承認用の安定プロバイダー/バックエンドカバレッジfull: stable に加えて、広範な助言的プロバイダー/メディアカバレッジ
stable とともに run_release_soak=true を使用します。その sweep は、最新 4 つの stable パッケージに加えて、固定済みの 2026.4.23 と 2026.5.2 ベースライン、さらに古い 2026.4.15 カバレッジを対象にし、重複ベースラインを削除したうえで、各ベースラインを個別の Docker ランナージョブにシャード化します。full は run_release_soak=true を含意します。
OpenClaw Release Checks は、信頼済みワークフロー ref を使って対象 ref を一度 release-package-under-test として解決し、soak 実行時にクロス OS、Package Acceptance、リリースパス Docker チェックでそのアーティファクトを再利用します。これにより、すべてのパッケージ向けボックスが同じバイト列を使い、パッケージビルドの繰り返しを避けられます。beta がすでに npm に公開されている場合は、release_package_spec=openclaw@YYYY.M.D-beta.N を設定して、リリースチェックが出荷済みパッケージを一度だけダウンロードし、dist/build-info.json からビルド元 SHA を抽出し、そのアーティファクトをクロス OS、Package Acceptance、リリースパス Docker、パッケージ Telegram レーンで再利用するようにします。クロス OS OpenAI インストールスモークは、repo/org 変数が設定されている場合は OPENCLAW_CROSS_OS_OPENAI_MODEL を使用し、それ以外の場合は openai/gpt-5.4 を使用します。このレーンは、最も遅いデフォルトモデルをベンチマークするのではなく、パッケージインストール、オンボーディング、Gateway 起動、live agent の 1 ターンを証明するためです。より広い live プロバイダーマトリクスは、モデル固有のカバレッジの場所として残ります。
リリース段階に応じて、これらのバリアントを使用します。
Verify full validation だけを再実行します。
境界付きのリカバリーには、umbrella に rerun_group を渡します。all は実際のリリース候補実行、ci は通常 CI 子のみを実行し、plugin-prerelease はリリース専用 Plugin 子のみを実行し、release-checks はすべてのリリースボックスを実行します。より狭いリリースグループは install-smoke、cross-os、live-e2e、package、qa、qa-parity、qa-live、npm-telegram です。焦点を絞った npm-telegram 再実行には release_package_spec または npm_telegram_package_spec が必要です。release_profile=full の full/all 実行は、release-checks パッケージアーティファクトを使用します。焦点を絞ったクロス OS 再実行では、cross_os_suite_filter=windows/packaged-upgrade または別の OS/スイートフィルターを追加できます。QA release-check の失敗は助言的です。QA のみの失敗はリリース検証をブロックしません。
Vitest
Vitest ボックスは手動CI 子ワークフローです。手動 CI は意図的に changed スコープをバイパスし、リリース候補に対して通常のテストグラフを強制します。Linux Node シャード、バンドル済み Plugin シャード、チャネル契約、Node 22 互換性、check、check-additional、ビルドスモーク、ドキュメントチェック、Python Skills、Windows、macOS、Android、Control UI i18n です。
このボックスは「ソースツリーが完全な通常テストスイートに合格したか」に答えるために使用します。これはリリースパスのプロダクト検証とは同じではありません。保持する証拠:
- ディスパッチされた
CI実行 URL を示すFull Release Validationサマリー - 正確な対象 SHA 上で green の
CI実行 - 回帰調査時の CI ジョブからの失敗または遅いシャード名
- 実行のパフォーマンス分析が必要な場合の
.artifacts/vitest-shard-timings.jsonなどの Vitest タイミングアーティファクト
Docker
Docker ボックスは、openclaw-live-and-e2e-checks-reusable.yml を通じた OpenClaw Release Checks と、リリースモードの install-smoke ワークフロー内にあります。これは、ソースレベルのテストだけでなく、パッケージ化された Docker 環境を通じてリリース候補を検証します。
リリース Docker カバレッジには以下が含まれます。
- 遅い Bun グローバルインストールスモークを有効にした完全なインストールスモーク
- 対象 SHA によるルート Dockerfile スモークイメージの準備/再利用。QR、root/gateway、installer/Bun スモークジョブは個別の install-smoke シャードとして実行
- リポジトリ E2E レーン
- リリースパス Docker チャンク:
core、package-update-openai、package-update-anthropic、package-update-core、plugins-runtime-plugins、plugins-runtime-services、plugins-runtime-install-a、plugins-runtime-install-b、plugins-runtime-install-c、plugins-runtime-install-d、plugins-runtime-install-e、plugins-runtime-install-f、plugins-runtime-install-g、plugins-runtime-install-h - 要求された場合の
plugins-runtime-servicesチャンク内の OpenWebUI カバレッジ - 分割されたバンドル済み Plugin インストール/アンインストールレーン
bundled-plugin-install-uninstall-0からbundled-plugin-install-uninstall-23 - リリースチェックに live スイートが含まれる場合の live/E2E プロバイダースイートと Docker live モデルカバレッジ
summary.json、failures.json、フェーズタイミング、スケジューラープラン JSON、再実行コマンドを含む .artifacts/docker-tests/ をアップロードします。焦点を絞ったリカバリーには、すべてのリリースチャンクを再実行する代わりに、再利用可能な live/E2E ワークフローで docker_lanes=<lane[,lane]> を使用します。生成された再実行コマンドには、利用可能な場合、以前の package_artifact_run_id と準備済み Docker イメージ入力が含まれるため、失敗したレーンは同じ tarball と GHCR イメージを再利用できます。
QA Lab
QA Lab ボックスもOpenClaw Release Checks の一部です。これはエージェント的な動作とチャネルレベルのリリースゲートであり、Vitest や Docker パッケージ機構とは別です。
リリース QA Lab カバレッジには以下が含まれます。
- agentic parity pack を使用して OpenAI 候補レーンを Opus 4.6 ベースラインと比較する mock パリティレーン
qa-live-shared環境を使用する高速 live Matrix QA プロファイル- Convex CI 認証情報リースを使用する live Telegram QA レーン
- リリーステレメトリーに明示的なローカル証明が必要な場合の
pnpm qa:otel:smoke
パッケージ
パッケージボックスは、インストール可能プロダクトのゲートです。これはPackage Acceptance とリゾルバー scripts/resolve-openclaw-package-candidate.mjs によって支えられています。このリゾルバーは、候補を Docker E2E が消費する package-under-test tarball に正規化し、パッケージインベントリを検証し、パッケージバージョンと SHA-256 を記録し、ワークフローハーネス ref をパッケージソース ref とは別に保持します。
サポートされる候補ソース:
source=npm:openclaw@beta、openclaw@latest、または正確な OpenClaw リリースバージョンsource=ref: 信頼済みのpackage_refブランチ、タグ、または完全なコミット SHA を、選択されたworkflow_refハーネスで packsource=url: 必須のpackage_sha256を指定して HTTPS.tgzをダウンロードsource=artifact: 別の GitHub Actions 実行によってアップロードされた.tgzを再利用
OpenClaw Release Checks は、source=artifact、準備済みリリースパッケージアーティファクト、suite_profile=custom、docker_lanes=doctor-switch update-channel-switch skill-install update-corrupt-plugin upgrade-survivor published-upgrade-survivor update-restart-auth plugins-offline plugin-update、telegram_mode=mock-openai で Package Acceptance を実行します。Package Acceptance は、移行、更新、設定済み認証の更新再起動、ライブ ClawHub skill インストール、古い Plugin 依存関係のクリーンアップ、オフライン Plugin フィクスチャ、Plugin 更新、Telegram パッケージ QA を、同じ解決済み tarball に対して維持します。ブロッキングリリースチェックは、デフォルトで公開済み最新パッケージのベースラインを使用します。run_release_soak=true または release_profile=full は、2026.4.23 から latest までのすべての安定版 npm 公開済みベースラインに、報告済み issue フィクスチャを加えたものへ拡張します。すでに出荷済みの候補には source=npm で Package Acceptance を使用し、公開前の SHA に裏付けられたローカル npm tarball には source=ref/source=artifact を使用します。これは、以前は Parallels が必要だったパッケージ/更新カバレッジの大半を置き換える GitHub ネイティブな手段です。OS 固有のオンボーディング、インストーラー、プラットフォーム挙動には Cross-OS リリースチェックが引き続き重要ですが、パッケージ/更新のプロダクト検証では Package Acceptance を優先してください。
更新と Plugin 検証の正規チェックリストは 更新と Plugin のテスト です。Plugin のインストール/更新、doctor クリーンアップ、公開済みパッケージ移行の変更を、どのローカル、Docker、Package Acceptance、またはリリースチェックレーンで証明するかを判断するときに使用してください。すべての安定版 2026.4.23+ パッケージからの包括的な公開済み更新移行は、Full Release CI の一部ではなく、別個の手動 Update Migration ワークフローです。
従来の package-acceptance の寛容さは、意図的に期限付きです。2026.4.25 までのパッケージでは、すでに npm に公開済みのメタデータ不足に対して互換性パスを使用できます。tarball に含まれない非公開 QA インベントリエントリ、欠落した gateway install --wrapper、tarball 由来の git フィクスチャ内の欠落したパッチファイル、永続化されていない update.channel、従来の Plugin インストール記録場所、マーケットプレイスのインストール記録永続化の欠落、plugins update 中の config メタデータ移行が対象です。公開済みの 2026.4.26 パッケージでは、すでに出荷されたローカルビルドメタデータのスタンプファイルについて警告が出る場合があります。それ以降のパッケージは、現代的なパッケージ契約を満たす必要があります。同じ不足はリリース検証で失敗になります。
リリース上の問いが実際にインストール可能なパッケージに関するものなら、より広い Package Acceptance プロファイルを使用してください。
smoke: パッケージのインストール/チャンネル/エージェント、Gateway ネットワーク、config 再読み込みレーンのクイックチェックpackage: インストール/更新/再起動/Plugin パッケージ契約に加え、ライブ ClawHub skill インストール証明。これはリリースチェックのデフォルトproduct:packageに MCP チャンネル、cron/サブエージェントのクリーンアップ、OpenAI web search、OpenWebUI を追加full: OpenWebUI を含む Docker リリースパスチャンクcustom: 集中再実行用の正確なdocker_lanesリスト
telegram_mode=mock-openai または telegram_mode=live-frontier を有効にしてください。ワークフローは、解決済みの package-under-test tarball を Telegram レーンへ渡します。単独の Telegram ワークフローは、公開後チェック用に公開済み npm spec を引き続き受け付けます。
リリース公開自動化
OpenClaw Release Publish は、通常の変更を伴う公開エントリポイントです。リリースに必要な順序で trusted-publisher ワークフローをオーケストレーションします。
- リリースタグをチェックアウトし、そのコミット SHA を解決します。
- タグが
mainまたはrelease/*から到達可能であることを検証します。 pnpm plugins:sync:checkを実行します。publish_scope=all-publishableとref=<release-sha>でPlugin NPM Releaseをディスパッチします。- 同じ scope と SHA で
Plugin ClawHub Releaseをディスパッチします。 - リリースタグ、npm dist-tag、保存済みの
preflight_run_idでOpenClaw NPM Releaseをディスパッチします。
latest への直接の安定版プロモーションは明示的です。
Plugin NPM Release と Plugin ClawHub Release ワークフローは、集中修復または再公開作業にのみ使用してください。選択した Plugin 修復では、plugin_publish_scope=selected と plugins=@openclaw/name を OpenClaw Release Publish に渡すか、OpenClaw パッケージを公開してはならない場合は子ワークフローを直接ディスパッチしてください。
NPM ワークフロー入力
OpenClaw NPM Release は、オペレーターが制御する次の入力を受け付けます。
tag: 必須のリリースタグ。例:v2026.4.2、v2026.4.2-1、v2026.4.2-beta.1。preflight_only=trueの場合は、検証専用 preflight 用に現在の完全な 40 文字のワークフローブランチコミット SHA も使用できますpreflight_only: 検証/ビルド/パッケージのみならtrue、実際の公開パスならfalsepreflight_run_id: 実際の公開パスで必須。ワークフローが成功した preflight 実行から準備済み tarball を再利用するために使いますnpm_dist_tag: 公開パス用の npm ターゲットタグ。デフォルトはbeta
OpenClaw Release Publish は、オペレーターが制御する次の入力を受け付けます。
tag: 必須のリリースタグ。すでに存在している必要がありますpreflight_run_id: 成功したOpenClaw NPM Releasepreflight 実行 ID。publish_openclaw_npm=trueの場合に必須npm_dist_tag: OpenClaw パッケージ用の npm ターゲットタグplugin_publish_scope: デフォルトはall-publishable。selectedは集中修復作業にのみ使用してくださいplugins:plugin_publish_scope=selectedの場合の、カンマ区切りの@openclaw/*パッケージ名publish_openclaw_npm: デフォルトはtrue。ワークフローを Plugin のみの修復オーケストレーターとして使用する場合にのみfalseを設定してくださいwait_for_clawhub: デフォルトはfalse。npm の利用可能性が ClawHub サイドカーによってブロックされないようにします。ワークフロー完了に ClawHub 完了を含める必要がある場合にのみtrueを設定してください
OpenClaw Release Checks は、オペレーターが制御する次の入力を受け付けます。
ref: 検証するブランチ、タグ、または完全なコミット SHA。シークレットを伴うチェックでは、解決済みコミットが OpenClaw ブランチまたはリリースタグから到達可能である必要があります。run_release_soak: 安定版/デフォルトのリリースチェックで、包括的なライブ/E2E、Docker リリースパス、すべての以降バージョンの upgrade-survivor soak を有効にします。release_profile=fullによって強制的に有効になります。
- 安定版タグと修正タグは、
betaまたはlatestのいずれにも公開できます - ベータプレリリースタグは、
betaにのみ公開できます OpenClaw NPM Releaseでは、完全なコミット SHA 入力はpreflight_only=trueの場合にのみ許可されますOpenClaw Release ChecksとFull Release Validationは常に検証専用です- 実際の公開パスは、preflight 中に使用したものと同じ
npm_dist_tagを使用する必要があります。ワークフローは、公開前にそのメタデータが継続していることを検証します
安定版 npm リリース手順
安定版 npm リリースを切るとき:preflight_only=trueでOpenClaw NPM Releaseを実行します- タグが存在する前は、preflight ワークフローの検証専用ドライランに、現在の完全なワークフローブランチコミット SHA を使用できます
- 通常の beta-first フローでは
npm_dist_tag=betaを選択し、意図的に直接安定版公開を行う場合にのみlatestを選択します - 1 つの手動ワークフローで通常の CI に加え、ライブプロンプトキャッシュ、Docker、QA Lab、Matrix、Telegram カバレッジが必要な場合は、リリースブランチ、リリースタグ、または完全なコミット SHA で
Full Release Validationを実行します - 意図的に決定論的な通常のテストグラフのみが必要な場合は、代わりにリリース ref で手動
CIワークフローを実行します - 成功した
preflight_run_idを保存します - 同じ
tag、同じnpm_dist_tag、保存済みのpreflight_run_idでOpenClaw Release Publishを実行します。これは、OpenClaw npm パッケージをプロモートする前に、外部化された Plugin を npm と ClawHub に公開します - リリースが
betaに着地した場合は、非公開のopenclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.ymlワークフローを使用して、その安定版をbetaからlatestにプロモートします - リリースを意図的に直接
latestに公開し、betaも同じ安定版ビルドをすぐに追従させる必要がある場合は、同じ非公開ワークフローを使用して両方の dist-tag を安定版に向けるか、そのスケジュール済み自己修復同期が後でbetaを移動するのを待ちます
NPM_TOKEN が必要なため、セキュリティ上の理由から非公開 repo にあります。一方、公開 repo では OIDC のみの公開を維持します。
これにより、直接公開パスと beta-first プロモーションパスの両方が文書化され、オペレーターから見える状態に保たれます。
メンテナーがローカル npm 認証にフォールバックする必要がある場合は、1Password CLI (op) コマンドを必ず専用の tmux セッション内で実行してください。メインエージェントシェルから op を直接呼び出さないでください。tmux 内に閉じ込めることで、プロンプト、アラート、OTP 処理を観測可能にし、ホストアラートの繰り返しを防げます。
公開リファレンス
.github/workflows/full-release-validation.yml.github/workflows/package-acceptance.yml.github/workflows/openclaw-npm-release.yml.github/workflows/openclaw-release-checks.yml.github/workflows/openclaw-cross-os-release-checks-reusable.ymlscripts/resolve-openclaw-package-candidate.mjsscripts/openclaw-npm-release-check.tsscripts/package-mac-dist.shscripts/make_appcast.sh
openclaw/maintainers/release/README.md を使用します。