OPENCLAW 2026
FAKE_
UPGRADE_
PID_PROOF.
メンテナンス窓で openclaw update が成功しても、プラグインが requires OpenClaw ≥ … で落ちたり、openclaw status と openclaw gateway status の実行中ビルドが食い違うことがあります。これは偽アップグレード(バージョン skew)です。パッケージは新しくても 常駐 Gateway プロセスが新しいバイナリに切り替わっていない、またはリロードが途中で中止された典型です。本稿では症状—証拠—対処の表、五手順の揃え込み Runbook、三道のゲート、数値閾値、FAQ を示します。関連:インストール後 Gateway 未登録、v2026.5.x 運用、breaking と doctor、systemd/launchd。クリーンな対照環境として MACGPU リモート Mac に同じ手順を複写してください。
1. なぜ「update OK」でもホストが古いのか
CLI と Gateway は別の真実を持ちます。グローバル npm は新タグへ向いても、launchd が指す openclaw-gateway の実パスが古いまま、という分岐が起きます。設定検証でホットリロードが abort した場合も同様です。nvm の Node 22 で更新したのに plist が別 Node を指す、SSH ログインシェルと launchd の最小環境が違う、といった遠隔 Mac 特有の罠もあります。モデル API のレートリミットへ飛びつく前に、必ずホスト版と PID を固定してください。
2. 症状—証拠マトリクス
| 症状 | 第一疑い | 証拠 |
|---|---|---|
| CLI 新/gateway status 旧 | 再起動不足・実体パス違い | PID 生成時刻、status --all |
| requires エラー | ホスト閾値未達 | ログの host 版行 |
| メンテ直後のみ | リロード中止 | launchctl print |
| リモート Mac のみ | PATH/plist | EnvironmentVariables |
3. 五手順 Runbook
Step 1 証拠の三点固定
同一シェルで openclaw --version、openclaw status、openclaw gateway status を連続実行し、スクショを添付します。
Step 2 PID と実バイナリの対応
PID を実ファイルへマップし、更新したプレフィックス配下か確認します。
Step 3 Gateway の冷再起動
停止→ポート解放→起動。旧版のままなら openclaw gateway install --force を検討します。
Step 4 requires の実地確認
閾値を宣言するプラグインでプローブします。
Step 5 ログインなし launchd 冷起動
Unload/Load 後、無人状態で Step 1 を繰り返します。
4. 三道のゲート
status と gateway status の版が一致するまで本番復帰を禁止。requires が赤のまま本番チャネルへ戻さない。無人冷起動を通すまでノート PCトンネルのみに依存しない。
5. ケーススタディ
「update Result: OK だが Feishu プラグインが requires で全滅。PID は 3 日前のまま。」
リモート Mac mini で nvm の Node 22 により更新したが plist は別プレフィックスを参照し、リロードが検証で abort。API 鍵を疑う前に PID と実パスを揃え、plist の Node 絶対パス統一と gateway install --force で収束しました。v2026.5.x 稿とも整合し、まずホスト bump を証明してから上層を議論します。
6. 産業観点
週次パッチでは「プロセスが本当に上がったか」をリリース成果物に含めるべきです。Metal と統合メモリを活かす macOS 対照面は、Windows/Linux だけの検証より変因が少ない場面もあります。黄金テンプレとして MACGPU リモート Mac を借り、五手順をそのまま複写するのが早いです。
Windows や Linux でも Gateway は動きますが、ブラウザ周辺ツールとセッションの組み合わせで変数が増えます。Apple Silicon でホスト版を揃えたうえで異種ノードへ拡張するのが現実的です。
7. 数値閾値
旧 Gateway 停止から新 PID 待ちが 180 秒超なら設計レビュー。同一窓で gateway install --force を 2 回超えたら人手 diff。requires とホストが 2 パッチ以上離れたまま本番はインシデント扱い。冷起動後も三点不一致ならトラフィック復帰禁止。
停止前後 10 分の openclaw logs スライスを必ず添付。同一 UID で衝突する並列 npm グローバル更新は避けます。
8. FAQ
doctor が緑でも PID は?必要です。token_mismatch との違い?トークンは認証、skew は版行と requires。reload aborted?冷再起動が先です。