Workspace OpenClaw, openclaw.json et isolation d’état ~/.openclaw sur Mac mini loué partagé (2026)
Les ingénieurs plateforme qui hébergent OpenClaw sur un seul Mac mini Apple Silicon loué via VmMac apprennent vite que « ça marche dans mon shell » n’est pas « ça marche sous launchd pour deux squads ». Le joint fragile n’est presque jamais la carte modèle—c’est la racine du workspace, le contrat openclaw.json versionné et l’arbre d’état par utilisateur sous ~/.openclaw. Quand le staging écrit des caches à côté des jetons de prod ou que le WorkingDirectory dérive après un déploiement, la passerelle lit le mauvais fichier et l’incident ressemble à une « régression LLM ». Cette matrice 2026 nomme les frontières et s’appuie sur isolation launchd staging vs prod, hygiène des secrets et des plists et isolation multi-compte pour que les hôtes VmMac à Hong Kong, Japon, Corée, Singapour et États-Unis restent d’un ennuyeux alignement.
Commencez par installation et déploiement, la sémantique d’accès dans l’aide, et les tarifs quand la direction préfère un second mini à une semaine de plus d’archéologie d’état partagé.
Frontière du workspace : racine du dépôt vs checkout runtime
Traitez le workspace OpenClaw comme le répertoire que votre automatisation checkout : openclaw.json, manifestes skills, wrappers locaux couverts par revue de code. Tout ce qui est généré à l’exécution—gros caches, miroirs de poids téléchargés, brouillons—reste hors git sans politique d’artefacts explicite.
Sur VmMac, souvent aucun symlink : la clarté bat la débrouille. Si les ingénieurs clonent dans ~/src/openclaw-tenant-a mais que launchd pointe encore vers le ~/build/openclaw du mois dernier, vous chassez des fantômes. Documentez le chemin absolu canonique par locataire sur la même page que les bastions SSH.
- Git porte l’intention—défauts, feature flags, listes d’outils auditées.
- Le disque porte l’entropie—caches, transcripts à masquer plus tard, exports temporaires.
- Les plists portent la colle—environnement, cwd, session utilisateur, chemins de logs.
openclaw.json comme contrat : versions, revues, formes des secrets
openclaw.json doit se lire comme un schéma d’API : clés stables, défauts explicites, commentaires seulement où votre dialecte JSON l’autorise. Rejetez les diffs qui glissent des clés API longue durée en ligne—elles vont au coffre décrit dans l’hygiène des secrets, pas dans un fichier que tout stagiaire peut cherry-pick.
Taguez les releases pour répondre « quelle config a tourné à Tokyo à 03:14 ? » sans SSH. Hotfix régional : branche, déploiement, merge—les flocons temporaires sur hôtes partagés survivent à leurs auteurs.
tools différentes, il leur faut d’autres fichiers ou d’autres utilisateurs—jamais basculer le même chemin deux fois à la main chaque jour.
~/.openclaw et associés : ce qui ne doit jamais entrer en collision
Utilisez une matrice pour décider du préfixe d’état home vs workspace.
| Artefact | Workspace | État home |
|---|---|---|
| Tables de routes passerelle / manifestes d’outils épinglés | Oui—JSON revu | Non—éviter le split-brain |
| Cookies de session, blobs d’appariement appareil | Non—jamais committer | Oui—chmod strict |
| Logs structurés | Modèles optionnels | Oui—gros, rotation |
| Overrides par développeur | Jamais sur hôtes CI partagés | Portable perso seulement |
« Peut-on supprimer ~/.openclaw pour réinitialiser ? » : répondez avec une section du runbook, pas à l’improviste—la suppression répare des caches empoisonnés mais casse un appariement légitime sans étapes d’export.
Matrice multi-locataire sur un Mac mini
VmMac excelle sur le métal dédié, mais les finances imposent parfois le partage. Classez honnêtement :
| Schéma | Force d’isolement | Charge opérationnelle |
|---|---|---|
| Hôtes physiques séparés par locataire | Maximale | Drame minimal |
| Utilisateurs macOS séparés sur un hôte | Élevée | Moyenne—quotas disque et discipline VNC |
| Même utilisateur, autres répertoires | Faible—aimant à erreurs humaines | Élevée—audits constants |
Si la troisième ligne est imposée : au minimum des labels LaunchAgent disjoints, des ports localhost distincts et une automatisation nocturne qui diff les plists actives contre git. Mieux : suivre l’isolation staging jusqu’à ce qu’un second mini soit approuvé.
launchd WorkingDirectory, EnvironmentVariables et précédence des chemins
WorkingDirectory n’est pas décoratif—il définit comment les chemins relatifs dans openclaw.json se résolvent et quel arbre node_modules se charge. Ajoutez des EnvironmentVariables explicites pour tout ce que vous exporteriez dans ~/.zshrc sur un portable. Après modification, validez toujours avec launchctl print gui/$UID/com.example.openclaw (adapter le domaine).
cd avant OpenClaw, la plist est incomplète.
À travers Hong Kong, Japon, Corée, Singapour et États-Unis, gardez des modèles de plist identiques ; mettez les endpoints régionaux dans de petits fichiers env référencés par chemins absolus pour des diffs lisibles en audit.
Runbook incident : empoisonnement d’état vs vraie régression modèle
- Capturer le
pwdde la passerelle depuis la sortielaunchctl print. - Hasher
openclaw.jsondans ce cwd et comparer au tag git déployé. - Lister taille et mtime du sous-arbre d’état ; chercher SQLite ou JSONL qui explosent.
- Couper le nouveau trafic, vider les files, snapshotter les logs.
- Déplacer l’état empoisonné—pas effacer—pour garder la preuve post-mortem.
- Rejouer la requête en échec contre un hôte canari VmMac propre.
- Avant de fermer le ticket, documenter si le correctif était config, disque ou modèle.
Beaucoup de faux « baisses de qualité modèle » en 2026 sont en fait des listes d’outils obsolètes ou des jetons OAuth expirés côte à côte dans le même arbre d’état—le LLM va bien ; le système de fichiers non.
FAQ : workspace et état OpenClaw sur Mac mini loué
openclaw.json doit-il vivre dans git sur un Mac mini loué partagé ? Oui pour le schéma et les défauts non secrets, mais jamais comme seul foyer des secrets—associez les fichiers dépôt à un plan de secrets documenté unique et à des préfixes d’état par locataire pour que le staging ne lise pas les jetons de prod depuis le disque.
Que mettre dans ~/.openclaw vs le checkout workspace ? Caches machine durables, appariement appareil et matériel runtime sensible sous l’arbre d’état home ; configuration revue par l’équipe dans le workspace ; launchd définit WorkingDirectory explicitement.
Comment isoler deux équipes sur un hôte VmMac sans mélanger l’état OpenClaw ? Préférez des utilisateurs macOS séparés ou des hôtes séparés ; si partage obligatoire : préfixes façon OPENCLAW_HOME disjoints, labels LaunchAgent sans chevauchement, ports localhost distincts selon notre runbook d’isolation staging.
WorkingDirectory launchd change-t-il quel openclaw.json est lu ? Les chemins relatifs se résolvent depuis WorkingDirectory et l’environnement utilisateur ; un cwd ambigu est la première cause pour que le staging lise des copies workspace de prod—épinglez des chemins absolus dans les plists après validation.
Comment aligner les hôtes à Hong Kong, Japon, Corée, Singapour et États-Unis ? Conservez la même révision git d’openclaw.json en n’autorisant que des overrides d’environnement régionaux intentionnels ; diff des plists chaque mois ; refusez les edits ad hoc par hôte sans ticket.
Pourquoi un second Mac mini VmMac coûte moins cher que la chirurgie d’état partagé
Séparer les locataires sur un autre mini transforme les puzzles chmod ambigus en frontières joignables par le réseau que la sécurité comprend. La location marginale apparaît nettement dans les COGS ; la semaine-ingénieur de merges forensiques souvent pas.
Si la direction hésite, montrez le nombre d’incidents du trimestre dont la cause racine était « mauvais cwd » ou « cache partagé ». Si ce n’est pas zéro, la physique est d’accord—il fallait un autre hôte.
Cloner l’état, pas le mystère
Louez un second Mac mini VmMac pour le staging OpenClaw afin que le ~/.openclaw de prod ne voie jamais les caches expérimentaux.