これは更新と Plugin 検証専用のチェックリストです。目的は シンプルです。インストール可能なパッケージが実際のユーザー状態を更新でき、Documentation Index
Fetch the complete documentation index at: https://docs2.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 状態のために隠れた互換性マイグレーションを増やすべきではありません。- Plugin のインストールが、ローカルディレクトリ、git リポジトリ、npm パッケージ、そして ClawHub レジストリパスから機能すること。
- Plugin の npm 依存関係が、管理対象 npm ルートにインストールされ、信頼前にスキャンされ、 アンインストール時に npm 経由で削除されるため、hoist された依存関係が 残らないこと。
- 何も変更されていない場合、Plugin 更新が安定していること。インストール記録、解決済み ソース、インストール済み依存関係レイアウト、有効化状態がそのまま維持されること。
開発中のローカル証明
狭い範囲から始めます。release:check は config/docs/API の drift チェックを実行し、package dist
inventory を書き込み、npm pack --dry-run を実行し、禁止された packed file を拒否し、
tarball を一時 prefix にインストールし、postinstall を実行し、バンドルされた channel
entrypoint を smoke します。
Docker lane
Docker lane はプロダクトレベルの証明です。Linux コンテナ内で実際の パッケージをインストールまたは更新し、CLI コマンド、 Gateway 起動、HTTP probe、RPC status、filesystem 状態を通じて挙動を検証します。 反復中は集中 lane を使います。test:docker:pluginsは、Plugin インストール smoke、ローカルフォルダーインストール、 ローカルフォルダー更新の skip 挙動、事前インストール済み依存関係を持つローカルフォルダー、file:パッケージインストール、CLI 実行を伴う git インストール、git moving-ref 更新、hoist された推移的依存関係を持つ npm レジストリインストール、 npm 更新 no-op、ローカル ClawHub fixture インストールと更新 no-op、marketplace 更新挙動、Claude-bundle の enable/inspect を検証します。 ClawHub ブロックを hermetic/offline に保つにはOPENCLAW_PLUGINS_E2E_CLAWHUB=0を設定します。test:docker:plugin-lifecycle-matrixは、bare コンテナに候補パッケージをインストールし、npm Plugin を install、inspect、disable、enable、 explicit upgrade、explicit downgrade、Plugin code 削除後の uninstall まで実行します。各フェーズの RSS と CPU metrics をログします。test:docker:plugin-updateは、変更されていないインストール済み Plugin がopenclaw plugins update中に再インストールされたり、インストールメタデータを失ったりしないことを検証します。test:docker:upgrade-survivorは、汚れた old-user fixture の上に候補 tarball をインストールし、 パッケージ更新と 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-restart-authは、候補パッケージをインストールし、 管理対象の token-auth Gateway を起動し、openclaw update --yes --jsonのために 呼び出し元の gateway auth env を unset し、候補の update コマンドが 通常の probe の前に Gateway を restart することを要求します。test:docker:update-migrationは、クリーンアップが多い published-update lane です。 設定済みの Discord/Telegram 形式のユーザー状態から開始し、設定済み Plugin 依存関係が具現化する機会を得られるよう baseline doctor を実行し、設定済み packaged Plugin の legacy Plugin dependency debris を seed し、候補 tarball に更新し、 update 後の doctor が legacy dependency root を削除することを要求します。
base、feishu-channel、bootstrap-persona、
plugin-deps-cleanup、configured-plugin-installs、
stale-source-plugin-shadow、tilde-log-path、versioned-runtime-deps です。集約実行では、
OPENCLAW_UPGRADE_SURVIVOR_SCENARIOS=reported-issues は、configured-plugin install migration を含む、
報告 issue 形状のすべての scenario に展開されます。
Full update migration は、意図的に Full Release CI から分離されています。リリース上の問いが「2026.4.23 以降のすべての
公開済み stable release がこの候補へ更新でき、Plugin dependency debris をクリーンアップできるか」の場合は、
手動の Update Migration workflow を使います。
Package Acceptance
Package Acceptance は GitHub-native なパッケージ gate です。1 つの候補 パッケージをpackage-under-test tarball に解決し、version と SHA-256 を記録してから、
その正確な tarball に対して再利用可能な Docker E2E lane を実行します。workflow harness
ref はパッケージ source ref とは別なので、現在のテストロジックで
古い trusted release を検証できます。
候補ソース:
source=npm:openclaw@beta、openclaw@latest、または正確な 公開済み version を検証します。source=ref: 選択した現在の harness で trusted branch、tag、または commit を pack します。source=url: 必須のpackage_sha256を持つ HTTPS tarball を検証します。source=artifact: 別の Actions run によってアップロードされた tarball を再利用します。
source=artifact をデフォルトで使います。公開後の証明では、
同じ upgrade matrix が出荷済み npm パッケージを対象にするよう
package_acceptance_package_spec=openclaw@YYYY.M.D を渡します。
Release check は package/update/restart/plugin セットで Package Acceptance を呼び出します。
last-stable-4 は、npm に公開済みの最新 4 つの stable OpenClaw
release に解決されます。Release package acceptance は、2026.4.23 を最初の Plugin-update
互換性境界、2026.5.2 を Plugin architecture churn 境界、
2026.4.15 を古い 2026.4.1x published-update baseline として pin します。resolver は、
すでに最新 4 つに含まれている pin を dedupe します。網羅的な published
update migration coverage には、Full Release CI ではなく別の Update
Migration workflow で all-since-2026.4.23 を使います。legacy pre-date
anchor も含めたより広い手動 sampling が必要な場合は、release-history も引き続き利用できます。
複数の published-upgrade survivor baseline が選択された場合、再利用可能な
Docker workflow は各 baseline をそれぞれ独自の targeted runner job に shard します。各
baseline shard は選択された scenario set を引き続き実行しますが、log と artifact は
baseline ごとに分かれ、wall time は 1 つの大きな serial job ではなく最も遅い shard によって
制限されます。
リリース前に候補を検証する場合は、package profile を手動実行します。
suite_profile=product を使います。完全な Docker release-path coverage が必要な場合にのみ
suite_profile=full を使います。
リリースのデフォルト
release candidate のデフォルト証明スタックは次のとおりです。- source-level regression には
pnpm check:changedとpnpm test:changed。 - パッケージ成果物の整合性には
pnpm release:check。 - install/update/restart/plugin 契約には Package Acceptance の
packageprofile または release-check custom package lane。 - OS 固有の installer、オンボーディング、platform behavior には Cross-OS release check。
- 変更された surface が provider または hosted-service behavior に触れる場合のみ live suite。
レガシー互換性
互換性の leniency は狭く、期限付きです。2026.4.25までのパッケージ(2026.4.25-beta.*を含む)は、 Package Acceptance で、すでに出荷済みの package metadata gap を許容できます。- 公開済み
2026.4.26パッケージは、すでに出荷済みの local build metadata stamp file について warn する場合があります。 - それ以降のパッケージは modern contract を満たす必要があります。同じ gap は warning や skipping ではなく失敗になります。
upgrade-survivor、published-upgrade-survivor、または
update-restart-auth でそれを証明します。
coverage の追加
update または Plugin behavior を変更する場合は、正しい理由で失敗できる最も低い 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。 - update-owned restart behavior:
update-restart-auth。 - 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 される場合があるため、test は package-local な
node_modulestree を仮定するのではなく、root が scanned/cleaned されることを証明するべきです。
failure triage
artifact identity から始めます。- パッケージ受け入れ
resolve_packageの概要: ソース、バージョン、SHA-256、および アーティファクト名。 - Docker アーティファクト:
.artifacts/docker-tests/**/summary.json、failures.json、レーンログ、および再実行コマンド。 - アップグレードサバイバーの概要:
.artifacts/upgrade-survivor/summary.json、 ベースラインバージョン、候補バージョン、シナリオ、フェーズごとの所要時間、および レシピ手順を含む。