IA / Automatisation 25 avril 2026

2026-04-25 OpenClaw doctor, configuration CLI et liste blanche modèles après upgrade sur Mac cloud loué sans tête

Équipe technique MacXCode 25 avril 2026 ~17 min de lecture

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).

Règle de merge : un 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

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