ユーザー LaunchAgent · 18789 プリフライト · プラグインパスの決定性 · 混合ノードの爆発半径圧縮
v2026.5.3-beta.2は、デモ向けの派手な差分より、月曜の朝に黙って立ち上がるべきクラウド Macのための中間リリースです。launchd はプロセスの親であり、Gateway はその子のなかでも外向きの顔です。順序が逆転すると、ヘルスエンドポイントだけが先に緑になり、プラグインローダが半端なままチャネルに触れる「中身のない green」が出ます。beta.2 では ユーザー LaunchAgent の再読み込み規律を厳格化し、短時間に繰り返す launchctl kickstart と手動 openclaw gateway が競わないように Throttle と退出コードの扱いを揃えます。続けて Gateway のウォームアップ順序を固定し、18789 を BIND した直後に走るプラグインマニフェスト読込とサンドボックス境界の宣言が毎回同じログ行に落ちるようにしました。三番目の柱は プラグイン解決の決定性です。チームで OPENCLAW_PLUGIN_DIR を刺しながら、ホーム配下の従来パスも温存していると、同名 skill が二通りに見えることがあります。beta.2 は優先規則をコードと起動時サマリの両方で点検できるようにします。背景として混合 Gateway や冷えたレジストリ問題は 4.25 のプラグインレジストリ修復稿、移行手順は migrate と OPENCLAW_PLUGIN_DIR 査収稿 が有用です。launchd 全般は launchd 安定運用チェックリスト を土台に、外向き通信は 4.27 の外向きプロキシ稿 と整合させてください。OAuth と fetch の方で痛むチームは 5.6 リカバリ稿 を先に当て、beta.2 は常駐とプラグイン階層の衛生化として位置づけると版の物語が通ります。
観測上は「たまに応答が遅い」「プラグインがロードされた気がしない」「再起動したら直る」に見えますが、根はほぼ順序かパスです。
LaunchAgent のレース:ベータ通道では開発者が短い周期で kickstart -k します。Throttle を無視した見かけの再起動が続くと、子プロセスの PID がログ追跡を困惑させます。
Gateway プリフライトの飛び級:マニフェストを読む前にヘルスだけ応答している隙に、外向きチャネルが初期化済みに見えることがあります。
プラグインパスの二重露見:レジストリがまだ温まっていないタイミングで skill を二つ拾うと、重複実行や無言のフォールバックが出ます。
混合ノードのラベル貼り:同じ Mac に canary と stable を同居させていると、plist の Label を人が読み違えるコストが跳ねます。
beta.2 はそれらを「人格」ではなく手順で抑え込みます。
「常に最新ベータ」は気持ちいいが、顧客デモ直前の単一ノードではリスキーです。
| 戦略 | 向く編成 | 利点 | 注意 |
|---|---|---|---|
| A. beta.2 へ全ノード | スナップショット運用が軽い | LaunchAgent と Gateway のログが揃う | OAuth 方面は 5.6 側の優先度要確認 |
| B. canary 1 台だけ beta.2 | メッセージング本番を同居 | プラグイン解決の差分を先に見える | plist Label の命名規律が要る |
| C. beta.1 ピン+夜間だけ試す | 変更審査が重い | 審査ボードへ説明しやすい | レース症状を抱えたままになる |
| D. Docker と launchd の役割分離 | コンテナ検証が併走 | 境界が明確 | ボリュームマウントとパスの二重化に注意 |
常駐の正しさはヘルス JSON ではなく、起動から初回チャネル応答までのログ列で決まる。
VNC を開いたまま作業してください。コンソールとブラウザの両方を見る局面があります。
現行 plist のエクスポート:Label、ProgramArguments、環境変数注入を丸ごと控え、 diff 可能な形でチケットに貼る。
スナップショット:クラウド Mac はボリューム単位。rollback の説明責任を満たす。
beta.2 バイナリと揃える:CLI と Gateway を同一変更窓で上げる。片側だけ新しいとログが矛盾する。
環境変数の単一化:OPENCLAW_PLUGIN_DIR を一箇所に決め、shell プロファイルと plist の二重定義を解く。
launchctl の現実確認:print と error を見てから kickstart。感情ではなく状態で再起動。
Gateway ログの三段検査:BIND、マニフェスト、最初のチャネルハンドシェイクまでの行番号を記録。
プラグイン演習:代表的 skill を二つだけ有効にし、重複ロード警告が出ないかを確認。
# 変更票用(適用直後) openclaw --version launchctl print gui/$(id -u)/com.example.openclaw.gateway | head -n 40 openclaw doctor --verbose | tee /tmp/openclaw-doctor-beta2.txt curl -sS -D - https://127.0.0.1:18789/health -o /dev/null
注:stderr をまとめて見る場合はターミナルで 2>&1 を付けてください。ターミナルと VNC の両方で同じユーザーにいることを一度確認。
警告:beta 通道はセマンティクスが動く可能性があります。本番と同じトークンを直結しないでください。
| 工程 | SSH | VNC |
|---|---|---|
| ブラウザ同意と端末ログの突合 | ログ断片のみ | 推奨 |
| 複数デスクトップに散らばった Console | 不便 | Mission Control で一発 |
| TCC の再プロンプト | 不可視 | クリック順序が再現手順 |
| launchd の GUI 付随メッセージ | 遅延表示 | 同時把握 |
| プラグインダッシュの視覚確認 | テキストのみ | バージョン列のスクショが証拠 |
18789 はループバックでも、ブラウザはループバック上の人間の操作が要る局面が残ります。
Label の名前空間:com.team.env.service のように三段で固定。口頭の「あの plist」禁止。
二台の Mac:canary と stable を同一デスクトップに混ぜない。混ぜるならポートと WorkingDirectory を完全分離。
doctor の保存:beta 適用の前後で tee したログを添付。5.6 の Doctor とは別枠のチケットにして混線を防ぐ。
プロキシの再確認:enterprise 出口が変わる日は Gateway だけでなく launchd 環境にも反映されているかを見る(4.27 稿)。
ロールバックの二段階:バイナリを戻す/plist を戻す/プラグインディレクトリを戻すを分けて記録。
OAuth・fetch・Dispatcher 方面の痛み。
読む →plist・ログ・権限の基礎。
読む →ディレクトリの決定性の土台。
読む →launchd がプロセス境界を先に作るためです。kickstart の癖と Gateway の起動順がずれると、ログ上は green でも中身が空振りすることがあります。
複数ルートに同名があっても最終パスが一本に決まり、起動サマリで確認できる状態です。
ブラウザ同意、TCC、複数窓でのログ突合です。
5.6 は OAuth/fetch の回復、beta.2 は常駐とプラグイン階層の先行整理です。混在ノードは適用順を文書化してください。
v2026.5.3-beta.2 は、チャンネルの幅を広げるより、ノードが長く生きるための席次表です。LaunchAgent、Gateway、プラグインの三つを同じログ列で読めるようにしておけば、次のベータでも調査コストは跳ねません。
検証用の Apple Silicon リモート Mac が必要なら VNCMac のレンタルを活用し、契約は クラウド Mac 購入・契約ページ、接続手順は ヘルプセンター を先に確認してください。