これは更新と Plugin 検証専用のチェックリストです。目標は単純です。インストール可能なパッケージが実際のユーザー状態を更新でき、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.
doctor を通じて古いレガシー状態を修復でき、さらにサポート対象のソースから Plugin をインストール、読み込み、更新、アンインストールできることを証明します。
より広範なテストランナーの対応表については テスト を参照してください。ライブプロバイダーキーとネットワークに触れるスイートについては ライブテスト を参照してください。
保護するもの
更新テストと Plugin テストは、次の契約を保護します。- パッケージ tarball が完全で、有効な
dist/postinstall-inventory.jsonを持ち、展開されていないリポジトリファイルに依存しない。 - ユーザーが古い公開済みパッケージから候補パッケージへ移行しても、config、agent、session、workspace、Plugin allowlist、channel config を失わない。
openclaw doctor --fix --non-interactiveがレガシーのクリーンアップと修復パスを担う。起動処理は、古い Plugin 状態のための隠れた互換性 migration を増やすべきではない。- Plugin のインストールは、ローカルディレクトリ、git リポジトリ、npm パッケージ、ClawHub レジストリパスから機能する。
- Plugin の npm 依存関係は managed npm root にインストールされ、信頼前にスキャンされ、アンインストール時に npm 経由で削除されるため、hoist された依存関係が残らない。
- 何も変更されていない場合、Plugin の更新は安定している。インストールレコード、解決済みソース、インストール済み依存関係レイアウト、有効化状態が維持される。
開発中のローカル証明
狭い範囲から開始します。release:check は config/docs/API drift check を実行し、package dist inventory を書き込み、npm pack --dry-run を実行し、禁止された packed file を拒否し、tarball を一時 prefix にインストールし、postinstall を実行し、バンドルされた channel entrypoint を smoke します。
Docker lane
Docker lane は product レベルの証明です。Linux コンテナ内で実際のパッケージをインストールまたは更新し、CLI コマンド、Gateway 起動、HTTP probe、RPC status、ファイルシステム状態を通じて挙動を検証します。 反復中は焦点を絞った lane を使用します。test:docker:pluginsは、Plugin install smoke、local folder install、local folder update skip behavior、preinstall 済み依存関係を含む local folder、file:package install、CLI 実行を伴う git install、git moving-ref update、hoist された transitive dependency を伴う npm registry install、npm update no-op、ローカル ClawHub fixture install と update no-op、marketplace update behavior、Claude-bundle enable/inspect を検証します。ClawHub ブロックを hermetic/offline に保つにはOPENCLAW_PLUGINS_E2E_CLAWHUB=0を設定します。test:docker:plugin-updateは、変更されていないインストール済み Plugin がopenclaw plugins update中に再インストールされたり、インストールメタデータを失ったりしないことを検証します。test:docker:upgrade-survivorは、汚れた old-user fixture の上に候補 tarball をインストールし、package update と non-interactive doctor を実行してから、loopback Gateway を起動し、状態保持を確認します。test:docker:published-upgrade-survivorは、まず公開済み baseline をインストールし、焼き込まれたopenclaw config setrecipe を通じて設定し、候補 tarball へ更新し、doctor を実行し、レガシークリーンアップを確認し、Gateway を起動して/healthz、/readyz、RPC status を probe します。test:docker:update-migrationは、クリーンアップ重視の published-update lane です。設定済みの Discord/Telegram 風ユーザー状態から開始し、configured plugin dependencies が具現化する機会を得られるよう baseline doctor を実行し、configured packaged plugin のために legacy plugin dependency debris を seed し、候補 tarball へ更新し、post-update doctor が legacy dependency roots を削除することを要求します。
base、feishu-channel、bootstrap-persona、plugin-deps-cleanup、tilde-log-path、versioned-runtime-deps です。集約実行では、OPENCLAW_UPGRADE_SURVIVOR_SCENARIOS=reported-issues が、報告された issue 形状のすべての scenario に展開されます。
完全な update migration は、意図的に Full Release CI から分離されています。release の問いが「2026.4.23 以降のすべての公開済み安定版リリースがこの候補に更新でき、plugin dependency debris をクリーンアップできるか」である場合は、手動の Update Migration workflow を使用します。
Package Acceptance
Package Acceptance は GitHub ネイティブの package gate です。1 つの候補 package をpackage-under-test tarball に解決し、version と SHA-256 を記録してから、その正確な tarball に対して再利用可能な Docker E2E lane を実行します。workflow harness ref は package source ref とは分離されているため、現在のテストロジックで古い信頼済みリリースを検証できます。
候補ソース:
source=npm:openclaw@beta、openclaw@latest、または正確な公開済み version を検証します。source=ref: 選択された現在の harness を使用して、信頼済み branch、tag、または commit を pack します。source=url: 必須のpackage_sha256を伴う HTTPS tarball を検証します。source=artifact: 別の Actions run によってアップロードされた tarball を再利用します。
release-history は、境界付きの release-check sample です。最新 6 件の安定版リリース、2026.4.23、およびそれ以前の日付 anchor 1 件を含みます。公開済み update migration の網羅的な coverage には、Full Release CI ではなく、分離された Update Migration workflow で all-since-2026.4.23 を使用します。
release 前に候補を検証するときは、package profile を手動で実行します。
suite_profile=product を使用します。完全な Docker release-path coverage が必要な場合にのみ suite_profile=full を使用します。
リリースのデフォルト
release candidate では、デフォルトの proof stack は次のとおりです。- source レベルの regression に対する
pnpm check:changedとpnpm test:changed。 - package artifact integrity に対する
pnpm release:check。 - install/update/plugin contract に対する Package Acceptance
packageprofile、または release-check custom package lane。 - OS 固有の installer、オンボーディング、platform behavior に対する Cross-OS release check。
- 変更面が provider または hosted-service behavior に触れる場合のみ live suite。
レガシー互換性
互換性の許容は狭く、期限付きです。2026.4.25までの package(2026.4.25-beta.*を含む)は、Package Acceptance で既に出荷済みの package metadata gap を許容する場合があります。- 公開済みの
2026.4.26package は、既に出荷済みの local build metadata stamp file に対して warn する場合があります。 - それ以降の package は、現代の契約を満たさなければなりません。同じ gap は warning や skipping ではなく fail します。
upgrade-survivor または published-upgrade-survivor で証明します。
coverage の追加
update または plugin behavior を変更するときは、正しい理由で fail できる最も低い layer に coverage を追加します。- Pure path または metadata logic: source の隣の unit test。
- Package inventory または packed-file behavior:
package-dist-inventoryまたは tarball checker test。 - CLI install/update behavior: Docker lane assertion または fixture。
- Published-release migration behavior:
published-upgrade-survivorscenario。 - Registry/package source behavior:
test:docker:pluginsfixture または ClawHub fixture server。 - Dependency layout または cleanup behavior: runtime execution と filesystem boundary の両方を assert します。npm dependencies は managed npm root の下に hoist される場合があるため、tests は package-local な
node_modulestree を仮定するのではなく、root が scanned/cleaned されることを証明するべきです。
failure triage
artifact identity から開始します。- Package Acceptance
resolve_packagesummary: source、version、SHA-256、artifact name。 - Docker artifact:
.artifacts/docker-tests/**/summary.json、failures.json、lane log、rerun command。 - Upgrade survivor summary:
.artifacts/upgrade-survivor/summary.json。baseline version、candidate version、scenario、phase timing、recipe step を含みます。