痛みの分解:起動成功は挙動不変を意味しない
痛みその一:ゲートウェイが listen できた=合格、とみなす。プロセスは生きていても通道路由やプラグイン読み込みは版で変わり、ときどき返信が途切れます。層別の切り分けを飛ばすと、モデルやプロンプトを誤って疑います。
痛みその二:設定エイリアスのドリフト。4.x 系では正規の JSON パスが何度も締められ、古いキーは黙って無視されたり弱い互換に落ちます。doctor の出力と突き合わせなければ「ファイルは残っている」のに「実行時は読んでいない」状態が続きます。更新とロールバックの文脈で、キー変更表を変更チケットに添付してください。
痛みその三:Telegram と WhatsApp の責務境界が曖昧。ボットトークン、ペアリング、webhook、逆プロキシの allowedOrigins のいずれかが更新後にずれると、グループでは一様に沈黙に見えます。時系列とログ断片を層ごとに残す必要があります。
痛みその四:スナップショットを省略する。openclaw.json だけを記憶で戻すと、秘密ディレクトリやプラグインキャッシュを落としがちです。Skills ワークスペースと切り離すと、ロールバックしても以前の振る舞いは戻りません。
痛みその五:コールド再起動を省略する。stdio MCP の子プロセスや一部チャネルキャッシュは完全なプロセス入れ替えを要します。ホットリロードのあと「doctor は緑だがツールだけ古い」は典型例です。
4.x のリズムと、現実的な運用の立ち位置
急速な反復はセキュリティ修正とチャネル信頼性の改善をもたらしますが、ローカルの「未読リリースノート」の猶予は短くなります。週次の更新枠と凍結ラベルを固定し、本番は stable、実験は beta とし、チケットには目標版とロールバック用タグを書きましょう。
CLI とゲートウェイの版を同一ダッシュボードに載せ、「CLI だけ新しい」「逆にゲートウェイだけ古い」といった組み合わせによる schema 誤判定を避けます。launchd と systemd の常駐記事と揃え、更新後は再起動ポリシーとファイル記述子上限がピーク時をまだ満たすか確認してください。
外向きポリシー、webhook、メディア経路に触れる場合は workspaceAccess を含む本番最小権限と交差読みし、更新で新しいツール面が開いても権限が古い前提のまま動かないようにします。
更新前の最小スナップショット:ロールバック可能なら更新ボタンを押す
少なくとも次を束ねます。openclaw.json(または同等の主設定)、資格情報とトークンのディレクトリ、カスタムプラグインや Skills のパス一覧、systemd や launchd の unit 抜粋、逆プロキシの server ブロック内で OpenClaw に関わる数行。アーカイブ名には旧版番号と日付を含め、CI の成果物と同じ規律で扱います。
リモート Mac 上では、スナップショットの置き場をワークスペースと同じ SFTP や rsync の方針に載せ、オンコールが別マシンで展開して diff を取れるようにします。SSH に入って手書きコピーに頼ると、緊急時に抜け漏れが確実に出ます。
doctor と --fix:自動移行がカバーする範囲
まず引数なしで openclaw doctor を実行し、WARN と ERROR のカテゴリラベルを読みます。設定パス、プラグイン、チャネル、TLS、外向きなど、現行のリリースノートに挙がった破壊的変更と一対一で対応付けられてから、バックアップ済み環境で doctor --fix をメンテナンス枠に入れます。
fix が解くのは「キー名と構造の正規化」系であり、チャネルのオンオフやモデルルーティング、Skills の探索パスの業務的意味までは人間のレビュー表で確認する必要があります。
fix のあとは必ずゲートウェイをコールド再起動し、status からゲートウェイ、チャネルの順で合成プローブメッセージを送り、「設定は新しいがプロセスは古い」という偽陰性を潰します。
チャネル再接続:Telegram/WhatsApp とゲートウェイの層別対照
# 1) ローカル:期待ポートで listen しているか、新バイナリで再起動済みか
# openclaw gateway status # 実際のサブコマンドは導入ドキュメントに合わせる
# 2) doctor:チャネルとプラグインのエラー。必要なら --fix のあと再度フル再起動
# 3) チャット基盤:bot token/ペアリング/webhook URL が現行ドメインと一致するか
# 4) 逆プロキシ:WebSocket と Upgrade ヘッダ、allowedOrigins がコンソール起点と一致するか
グループで「配信はあるが返信がない」ときは、まずゲートウェイログのチャネル系エラーコードを検索し、続けて Nginx/Caddy の TLS とセッションタイムアウトを確認します。すべてを「もう一度 /start」と片付けないでください。
意思決定マトリクス:速い追従を許すか、版を凍結するか
| 方針 | 向く場面 | 得るもの | 払うコスト |
|---|---|---|---|
| 毎週 stable 追従 | ゲートウェイを公網に晒しセキュリティパッチが必要 | 脆弱性の露出時間が短い | 運用と回帰の工数が高い |
| N-1 版の凍結 | 厳格な変更審査 | 挙動が読みやすい | セキュリティ通告の並行トラッキングが要る |
| 二環境:beta と stable | 中規模チーム | リスクの分離 | 設定ドリフトを diff 自動化で抑える必要 |
| ホスト型リモート Mac の統一イメージ | DIY の断片を減らしたい | 入口と再生手順が揃う | ベンダのリリース周期との整合が要る |
表がないと個人開発者がバラバラに pin し、当番引き継ぎ直後に制御不能になります。
FAQ と SFTPMAC ホスト型リモート Mac を検討する理由
更新後に Telegram だけ壊れて WhatsApp は動くのは何を示しますか
単一チャネル設定かプラットフォーム側 webhook の問題であることが多いです。まず doctor とチャネルログで位置を決め、トークンと URL を突き合わせ、モデル設定は後回しにしてください。
doctor を飛ばして JSON を手で直してもよいですか
可能ですが非推奨です。次の fix ラウンドと衝突しやすく、監査も困難になります。
まとめ:4.x の高頻度リリースは「更新」を日常の運用イベントにします。スナップショット、doctor、コールド再起動、チャネルとプロキシの層別対照は一枚のランブックにまとめてください。
限界:自前のリモート Mac では macOS、Node、ゲートウェイ、チャット基盤の四系統を同時に追う負荷があります。安定した Apple ネイティブ環境と、ファイルとワークスペースの同期を予測可能にしたいチームは、ゲートウェイ長期運用の隠れコストを SFTPMAC ホスト型リモート Mac で下げられます。
ゲートウェイの版、設定スナップショット、チャネルプローブの結果を同一パネルに載せれば、ホスト型環境ほど更新の監査とロールバックの再現がしやすくなります。
