2026OpenClawsplit brainlastTouchedVersiongateway status --deepMac distant

2026 OpenClaw après upgrade : split-brain, meta.lastTouchedVersion, gateway status --deep et alignement PATH

Le guide officiel OpenClaw décrit un newer-config guard : un build récent estampille meta.lastTouchedVersion dans openclaw.json pendant que votre shell résout encore un ancien binaire openclaw. Les actions gateway restart ou gateway install échouent ou semblent no-op. Cela diffère du drift remote (mauvaise gateway.remote.url). Ici : doubles installations, métadonnées launchd/systemd et gateway status --deep. Liens : pairing, install passerelle, régression 4.5, audit 4.14, doctor 4.x.

OpenClawsplit brainPATHdoctor2026
OpenClaw split brain upgrade lastTouchedVersion passerelle deep PATH

Frictions : pourquoi restart ment

Friction 1 : estampille silencieuse. Le nouveau build réécrit openclaw.json au premier démarrage ; l'équipe voit du JSON valide, mais les mutations de service échouent fiablement en production parce que l'ancien binaire reconnaît un stamp plus récent et s'arrête délibérément.

Friction 2 : schizophrénie de PATH. Homebrew, npm global et symlinks manuels font diverger which openclaw du binaire réellement lancé par launchd, souvent silencieusement.

Friction 3 : superviseurs dupliqués. Les scans deep listent des services résiduels ; doctor et install se battent tant que les doublons subsistent.

Friction 4 : leurre d'appairage. Alignez versions et PATH avant de relancer pairing.

Friction 5 : URL remote. Si gateway.remote.url pointe vers un hôte retiré, le symptôme ressemble au split-brain ; séparez avec which -a.

Couches : refus du vieux binaire vs corruption réelle

L0 capturez openclaw --version et le résumé gateway status.

L1 comparez meta.lastTouchedVersion à la ligne majeure CLI ; si le fichier est plus récent, stoppez les mutations depuis l'ancien binaire.

L2 exécutez openclaw gateway status --deep et archivez les indices d'unités système ou de labels supplémentaires.

L3 après alignement PATH, openclaw doctor ; doctor --fix seulement avec binaire aligné et lecture de l'audit 4.14.

L4 RPC verte avant channels status --probe ; sinon canaux et Telegram silencieux.

Champs ticket : kit de preuve minimal

Deux chaînes de version, chemins Config(cli)/service, meta.lastTouchedVersion, which -a openclaw, noms d'unité, extrait deep, deltas horaires pendant la fenêtre d'upgrade.

Sur fermes de Mac distants, joignez CPU et IO pour ne pas confondre famine disque et panne RPC ; croisez avec CI deux étapes.

Matrice de décision

SignatureSensPremier gesteÉviter
Mutation refuséelastTouchedVersion plus récent que CLIPATH vers nouveau dist puis install --forcedoctor --fix sur vieux binaire
Deep liste des doublonsplist/systemd obsolètesDésactiver l'excédent selon hintsdeux launchd en parallèle
Seuls les chemins Config diffèrentHOME driftAligner EnvironmentFile et shellJSON sans reload
RPC rouge et URL fausseremoteArticle remotepairing pendant URL fausse

Sept étapes

  1. Geler gateway status et --deep (masqués).
  2. Lister which -a openclaw et cibles symlink.
  3. Aligner PATH shell et superviseur ; chemins absolus dans plist si besoin.
  4. Vérifier versions avant mutations.
  5. openclaw gateway install --force puis redémarrage à froid.
  6. Boucle doctor jusqu'à zéro bloqueur.
  7. Baseline : p95 RPC et action UI réussie.

Exemple

which -a openclaw
openclaw --version
openclaw gateway status --deep
openclaw doctor

Approfondissement : exploitation, conformité, observabilité

Journal de PATH après chaque brew upgrade

Chaque upgrade Homebrew peut déplacer le Cellar tandis que launchd exporte encore un PATH obsolète. Consignez la chaîne exacte du plist après chaque toucher d'OpenClaw et comparez-la à `which openclaw` depuis un shell non interactif. Sans ce journal, les incidents split-brain reviennent malgré des sorties de paquets apparemment réussies.

Journaux conformes RGPD sans jetons en clair

Dans les tickets, stockez uniquement des préfixes ou empreintes hachées de jetons, jamais les valeurs complètes dans Slack ou le courriel. Pour les demandes d'accès, tracez quelles pipelines peuvent contenir des données personnelles. Lorsque vous archivez des scans deep, masquez les chemins qui exposent des répertoires personnels.

Labels launchd dupliqués et course au boot

Deux labels démarrant le même binaire créent des courses : le processus qui tient les ports en premier est aléatoire. Deep doit les nommer ; choisissez un label canonique par hôte et désactivez l'autre avec horodatage. Les rollbacks doivent réactiver l'ancien label sans faire coexister deux vérités.

systemd --user contre unités système

Un service utilisateur meurt avec la session si linger manque. Le split-brain apparaît quand les opérateurs supposent encore des chemins système. Vérifiez `loginctl show-user` et alignez le fichier d'unité avec le compte d'installation réel avant d'interpréter les stamps meta.

Pourquoi doctor --fix sur un vieux binaire est risqué

Les durcissements attendent un ordre de transformation précis. Un vieux binaire peut écrire partiellement ce qu'un binaire plus récent refusera ensuite. Alignez d'abord PATH sur le build le plus récent, lisez les notes de version sur les audits, puis appliquez les correctifs.

Drill chaos : inversion de PATH

Injectez temporairement un wrapper prioritaire et mesurez le temps avant alerte. Sans drill, les équipes surestiment l'observabilité. Documentez les textes d'alarme pour éviter une réinterprétation à chaque astreinte.

Modèle de post-mortem avec chemin binaire

Chaque post-mortem cite explicitement le chemin résolu, pas seulement la version sémantique. Ajoutez les diffs plist si disponibles. Cela réduit le savoir tribal.

Métrique : comparaison nightly des PATH

Comparez chaque nuit le chemin depuis un shell non interactif avec celui exporté par le superviseur. Les petites divergences sont un signal précoce. Combinez avec une sonde RPC légère depuis la même classe de shell que l'automatisation.

npm global contre ordre brew

Si npm précède brew dans PATH, un openclaw global gagne souvent malgré le lien brew. Définissez des ordres canoniques par rôle : laptop développeur peut diverger, mais les hôtes de production exigent une IaC qui impose l'ordre.

Digest d'image plutôt que tag flottant

Pour les passerelles conteneurisées, épinglez le digest d'image et notez-le à côté de la version openclaw et du stamp meta. Sinon les images de base tournent silencieusement.

WSL Windows et services natifs

Ne mélangez pas deux superviseurs pour la même passerelle ; documentez qui possède les upgrades. Sur macOS deep a des analogues ; sur Windows exportez l'inventaire des tâches planifiées.

Rafales de reconnexion après micro-coupure

Les clients rouvrent des WebSockets simultanément ; sans backoff la CPU monte même si PATH est correct. Simulez séparément du split-brain.

RACI pour PATH et unités

Un propriétaire pour les chaînes PATH, un pour les fichiers launchd/systemd. Sans RACI, plusieurs personnes rechargent en parallèle et laissent des états contradictoires.

Rentabilité : Mac distant géré

Quand les astreintes ne chassent que PATH et plist, louer un Mac distant géré amortit vite. Vous gardez les politiques de jetons, externalisez matériel et observabilité standard.

Case supplémentaire sur la checklist d'upgrade

Après chaque upgrade, une ligne : chemin binaire résolu confirmé avant de déclarer le succès. Cette ligne évite la plupart des surprises split-brain.

Audit 4.14 et ordre doctor

Lisez l'article d'audit avant des flags doctor agressifs. Certaines options ne sont sûres que sur des mineures précises ; tenez une table de compatibilité interne.

Silence Telegram n'est pas split-brain

Si la RPC est verte mais les canaux muets, suivez le runbook Telegram au lieu de retourner PATH. Le mélange gaspille du temps et crée de la dérive.

Pairing seulement après L1 vert

Le pairing renouvelle l'identité, pas la dérive binaire. Respectez l'échelle de statut officielle avant de ré-autoriser des appareils.

Rétention des snapshots gateway status

Stockez les vingt premières lignes après chaque upgrade, hachées, pour diff entre releases sans dupliquer des secrets.

Capacité : IO artefacts contre RPC

Sur Mac de build, rsync peut saturer le disque et ralentir la RPC sans toucher meta. Correlez iowait avec la latence RPC.

Blue-green pour chemins binaires

Avec des répertoires versionnés sous /opt, symlink atomiquement vers la nouvelle release et mettez à jour le plist dans la même transaction.

Formation junior contre senior

Les juniors lisent la version sémantique ; les seniors vérifient le chemin. Entraînez la lecture systématique de `which -a` dans les tickets.

Rollback tarball connu

Définissez quel paquet est la dernière bonne version connue et combien de minutes prend un rollback. Le stress split-brain diminue quand le rollback n'est pas improvisé.

Cardinalité des métriques

Évitez des labels par utilisateur sur chaque série ; gardez environnement et majeure grossiers sinon les coûts explosent.

SLA fournisseur contre observabilité interne

Le fournisseur ne remplace pas les contrôles PATH ; documentez quelles métriques restent internes même si le matériel est chez le vendor.

Communication finale dans le ticket

Exigez captures d'écran de deep et du PATH plist dans un seul commentaire. Sans preuve visuelle, les équipes parlent à côté.

LaunchAgent versus LaunchDaemon

Les agents utilisateur démarrent dans le contexte de login, les daemons en root. Si les upgrades se font en utilisateur standard mais la plist root diverge, le split-brain classique apparaît. Documentez type de label et compte Unix avant rotation de secrets.

Runner CI et préfixes npm

Les runners injectent des PATH différents. Si la pipeline appelle restart, le runner doit voir la même installation que la unit launchd sur la cible. Comparez après chaque rollout de secret.

Charge rsync et latences RPC

Les synchronisations lourdes augmentent iowait sans changer meta. Ne réinitialisez pas PATH si l'IO est la cause.

Éviter les slogans wiki vides

Chaque recommandation nécessite ticket, owner et échéance, sinon le savoir reste plat.

Passation inter-fuseaux

Sérialisez les reloads ou verrouillez les mutations pour éviter des courses entre équipes.

Canary pour nouveaux chemins dist

Testez d'abord sur un petit hôte, observez deep 24 heures, puis élargissez.

Vidéo plus runbook machine-lisible

Les vidéos aident, mais les commandes exactes doivent vivre dans Git.

Rotation de jetons découplée

Ne superposez pas rotation de secrets et upgrade binaire le même week-end si possible.

Forensique mtime contre logs

Comparez les horodatages de fichier aux refus de service pour détecter copies manuelles.

Gate de clôture

Exigez trois sondes RPC vertes depuis deux réseaux et un clic UI réussi avant fermeture.

Infrastructure immuable

Encodez le chemin absolu attendu d'openclaw comme test d'idempotence dans Ansible ; toute dérive doit faire échouer le playbook.

Alertes explicites dans le canal incident

Nommez les alarmes pour distinguer skew PATH, install --force raté et panne RPC réelle.

Lecture associée

Remote : matrice. Pairing : runbook. Install : guide.

Les studios créatifs comme les équipes plateforme souffrent quand sommeil laptop et gestionnaires multiples gonflent la variance ; louer un Mac distant toujours allumé avec passerelle supervisée réduit souvent le coût total pour une disponibilité 7x7 avec workflows fichiers, tout en clarifiant la surface d'observation.

FAQ

Réinstallation suffit-elle ?

Seulement après nettoyage PATH et doublons ; sinon on rebinde le mauvais binaire et le cycle d'échec se répète.

Docker et bare metal ?

Un seul motif de supervision ; deep doit montrer un chemin canonique avant de remettre du trafic productif.

Pourquoi SFTPMAC ?

Vérité binaire unique, entrée stable et pipelines artefacts colocalisés réduisent la dérive PATH/plist tout en gardant vos jetons et runbooks internes, avec des preuves conformes plus simples à rassembler rapidement.