2026-04-25 OpenClaw doctor, configuration CLI et liste blanche modèles après upgrade sur Mac cloud loué sans tête
Sur un Mac mini M4 loué à HK / JP / KR / SG / US, vous êtes en SSH d’abord, VNC seulement si la GUI est inévitable. C’est le mode d’échec qu’OpenClaw cible : gateway longue durée, config JSON, cadence npm où « rien dans mon git diff » casse la prod car une dépendance a resserré la validation ou la liste blanche modèles. Ce guide 2026-04-25 est un chemin de tri—pas un doublon du egress DNS ni de l’onboarding. Il enchaîne openclaw doctor (et --fix si besoin), la séparation clés CLI vs fichiers édités à la main, la preuve du ~/.openclaw lu par le LaunchAgent, et le piège « ça marche en ssh -t mais pas sous launchd ». Si doctor signale modules natifs obsolètes ou gateways dupliqués, gardez npm + double redémarrage dans votre plan de retour.
Pourquoi les upgrades font apparaître des « fantômes » sur Mac sans tête
Trois horloges : votre portable (PATH riche, VPN oublié), la session SSH façon CI, et launchd—seul environnement qui devrait compter pour le démon. Après npm -g ou une release taguée, le schéma peut rejeter une clé portée depuis avril, la gateway écrire un deuxième PID, ou un outil expliciter une approbation visible seulement en verbose. Utilisez readiness comme filtre rapide sur 127.0.0.1:18789, pas comme certificat que toute la personnalité est cohérente.
Les 90 premières secondes : openclaw doctor
Passe non destructif puis correctif réversible : openclaw status --all, openclaw doctor, puis openclaw doctor --fix pour débris sûrs (gateway.pid obsolète, sous-clés dépréciées migrables). Documentez l’ordre en interne. Échec de plugin : corrélez aux erreurs WebSocket 1006 ; vérifiez d’anciens processus clawdbot.
Source unique : CLI config vs JSON disque
Préférez openclaw config set/get. Éditer ~/.openclaw/openclaw.json à la main provoque souvent une dérive. Après édition manuelle, relancez doctor. gateway.port / gateway.bind méritent un openclaw gateway restart complet, comme après changement nginx + webhook. Secrets dans ~/.openclaw/.env via EnvironmentVariables comme pour clés API launchd.
Liste blanche : « non autorisé » est souvent de la politique
Si le fournisseur renomme un modèle et que vos skills gardent une ancienne chaîne, ça ressemble à des identifiants. Inspectez openclaw config get agents.defaults.models et alignez casse, préfixe, slot. Croisez egress : après TLS/HTTP/2 c’est du routage ; avant TCP fini c’est DNS/TLS. Cron et sous-agents ne doivent pas hériter d’une liste plus fine oubliée.
Gateway, PID, « je l’ai déjà tué »
Double écoute : LaunchAgent relancé pendant un processus manuel, ou enfant Node rattaché à launchd. lsof et ps sur le même compte propriétaire du plist. Arrêt séquencé puis doctor avant redémarrage. Voir upgrade/rollback gateway pour modèle de ticket (PID, node, DEVELOPER_DIR).
openclaw doctor vert en CI après upgrade sur un hôte jetable loué, plus un log status --all, vaut mieux qu’une capture Telegram.
Symptôme / couche / stabilisation
| Symptôme | Couche | Stabiliser |
|---|---|---|
| « Modèle pas dans la liste » après bump mineur | Politique config | Élargir la liste, épingler les chaînes, un chat en debug |
| Doctor OK, 403 avec clé fraîche dans le shell | launchd / egress | Dump env du PID ; tests TLS egress |
| 1006 WebSocket après plugin | Graphe plugins Node | Réinstaller npm, stderr gateway ; sous-agents |
Runbooks MacXCode liés
ClawHub skills, logs structurés, Tailscale pour 100.64/. Prérequis : onboard + daemon. Compagnon CI : xcodebuild tests + couverture.
FAQ
| Question | Réponse pratique |
|---|---|
| Doctor avant chaque déploiement ? | Au minimum après npm et bump gateway—rapide vs week-end sans chat. |
| JSON manuel acceptable ? | Si vous fusionnez des exemples : tout de suite doctor + smoke chat. |
| HK en retard sur US ? | Décalage temporel normal ; pas les écarts politique ou egress. Scindez par label bail, scalez via tarifs. |
Pourquoi le M4 nu dans cinq régions
Diagnostics et gateway : gigue et I/O reproductibles avant tout. Mac mini M4 MacXCode offre NVMe mono-locataire, SSH permanent, et un second nœud pour séparer les listes par pays. Pour 2026, enchaînez avec tests Xcode + couverture sur la même famille.
OpenClaw sur Mac stables, SSH d’abord
HK · JP · KR · SG · US · VNC optionnel