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
| Signature | Sens | Premier geste | Éviter |
|---|---|---|---|
| Mutation refusée | lastTouchedVersion plus récent que CLI | PATH vers nouveau dist puis install --force | doctor --fix sur vieux binaire |
| Deep liste des doublons | plist/systemd obsolètes | Désactiver l'excédent selon hints | deux launchd en parallèle |
| Seuls les chemins Config diffèrent | HOME drift | Aligner EnvironmentFile et shell | JSON sans reload |
| RPC rouge et URL fausse | remote | Article remote | pairing pendant URL fausse |
Sept étapes
- Geler
gateway statuset--deep(masqués). - Lister
which -a openclawet cibles symlink. - Aligner PATH shell et superviseur ; chemins absolus dans plist si besoin.
- Vérifier versions avant mutations.
openclaw gateway install --forcepuis redémarrage à froid.- Boucle doctor jusqu'à zéro bloqueur.
- Baseline : p95 RPC et action UI réussie.
Exemple
which -a openclaw
openclaw --version
openclaw gateway status --deep
openclaw doctorApprofondissement : 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.
