Ce guide décrit une porte merge OpenClaw sur Mac CI distant avec 2026.3.x, Node 22.12+, traque invalid-key, checkpoints et hot-reload passerelle. Liens : embeddings / RAG, doctor & rollback. Sans compte : accueil, tarifs, aide, blog.

Trois tensions

  1. Runtime Node : un runner resté en 20.x masque des erreurs de schéma derrière des exceptions de parsing qui n’affichent pas le schema_path attendu.
  2. Hot-reload : deux jobs écrivent le même fichier pendant qu’un reload est annoncé ; la sonde /health repasse au vert avant la fin réelle du rechargement des routes.
  3. Traçabilité : sans checkpoint horodaté, la MR ne peut pas prouver quelle version YAML a produit l’échec invalid-key côté passerelle.

À partir de 2026.3.x, le validateur rejette davantage de clés héritées des anciens packs de compétences ; versionnez donc le schéma attendu à côté du dépôt principal et annoncez toute fenêtre où la passerelle recharge ses routes pendant un merge automatisé. Sur runner partagé, journalisez le hachage du répertoire de configuration et la révision openclaw pour rattacher chaque nouveau invalid-key à un commit précis sans interroger l’astreinte à la main.

Liste de prérequis

Activez validate seulement si chaque job pointe vers le même OPENCLAW_CONFIG versionné, sans résidu dans ~. Vérifiez aussi que le daemon launchd ou l’agent CI n’injecte pas une variable d’environnement fantôme qui court-circuiterait le chemin attendu par la revue.

PrérequisCibleContrôle rapide
OpenClawbranche 2026.3.x figéeopenclaw --version + commit SHA dans le log CI.
Node.js22.12+node -v puis comparer semver au seuil.
Passerelleport loopback documentécurl -fsS http://127.0.0.1:${PORT}/health après reload.
Secretsfichiers montés read-onlyaucune clé brute dans le dépôt ; variables injectées par le orchestrateur.

Commandes pas à pas

Ordre : prévol, checkpoint, doctor, validate, pause reload, /health. Adaptez CI_ARTIFACT_DIR à votre CI.

set -euo pipefail node -v openclaw --version export OPENCLAW_CONFIG="${OPENCLAW_CONFIG:-$PWD/config/openclaw.yaml}" mkdir -p "$CI_ARTIFACT_DIR" tar -czf "$CI_ARTIFACT_DIR/checkpoint.tgz" "$(dirname "$OPENCLAW_CONFIG")" openclaw doctor --deep >"$CI_ARTIFACT_DIR/doctor.log" 2>&1 openclaw gateway validate --config "$OPENCLAW_CONFIG" --format json | tee "$CI_ARTIFACT_DIR/validate.json" sleep "${OPENCLAW_RELOAD_GRACE_SEC:-3}" curl -fsS "http://127.0.0.1:${PORT:-18789}/health" >"$CI_ARTIFACT_DIR/health.json"

Sleep : laisse finir le hot-reload avant /health ; montez OPENCLAW_RELOAD_GRACE_SEC si NVMe partagé.

  1. Fixer OPENCLAW_CONFIG sous le dépôt.
  2. tar checkpoint avant toute édition.
  3. doctor --deep.
  4. gateway validate --format json.
  5. Reload puis attente puis /health.
  6. Pousser logs et tarball en artefacts.

Signatures d’erreur fréquentes et dépannage

Croiser chaque signature avec schema_path dans validate.json.

SignatureInterprétationPiste
invalid-key + schema_pathclé YAML hors schéma 2026.3.xretirer la clé expérimentale ou la placer derrière un flag documenté.
ECONNRESET sur reloadsocket fermée pendant hot-reloadréessayer après grâce ; ne pas paralléliser deux reloads.
Cannot find module interneNode trop ancien ou cache npm corrompuvérifier 22.12+ puis npm ci sur lockfile figé.
401 sur route outiljeton absent après reloadconfirmer que les secrets restent montés après rotation.

Si réseau et schéma se mélangent, rejouez validate sur le checkpoint seul ; voir auth modèle.

Pour le hot-reload, évitez de lire la configuration depuis un volume réseau pendant la fenêtre de reload : macOS peut signaler la fin d’écriture avant que le validateur interne n’ait relu le buffer ; copiez d’abord le fichier vers un chemin APFS local, validez, puis synchronisez vers la cible partagée si votre politique de sécurité l’exige.

Artéfacts CI et archivage

Joignez validate, checkpoint et doctor à chaque pipeline ; jamais de secrets en clair. Les équipes juridiques acceptent plus volontiers une rétention courte si le bundle contient déjà les empreintes cryptographiques et un index lisible des fichiers inclus, ce qui simplifie les audits croisés avec le dépôt Git principal.

ArtéfactRôleRétention indicative
validate.jsonpreuve machine de conformité30–90 jours selon politique SOC.
checkpoint.tgz + .sha256rollback byte-à-bytemême durée que la MR associée.
doctor.logcontexte daemon et permissions14 jours si volumineux.
health.jsonpreuve post-reloadalignée sur sprint courant.
Liste de contrôle publication
  • Échec si validate non nul ou invalid-key sans correctif.
  • Bot MR cite « fichier:ligne ».
  • Deux /health après reload.

Informations retenues pour cadrage interne

  • 2026.3.x aligné sur le lockfile npm infra.
  • Node 22.12+ pour journaux validateur lisibles.
  • Trois artefacts coupent le MTTR des régressions passerelle.

FAQ

Faut-il désactiver le hot-reload sur Mac multi-tenant ?

Sérialisez les écritures config et le reload ; voir durcissement passerelle.

Que faire si invalid-key n’affiche pas de ligne ?

JSON + Node 22.12+ ; sinon le parseur peut tronquer avant le schéma.

Le checkpoint remplace-t-il Git ?

Non : Git reste la vérité YAML ; le tarball sert au rollback runner.

Synthèse

Node 22.12+, validate, checkpoints, artefacts et discipline hot-reload rendent invalid-key traçable sur Mac CI. Sans compte : achat, tarifs, aide, accueil, blog.

OpenClaw · Mac CI distant

Louez un Mac cloud pour verrouiller validate et la passerelle

accueil, aide, achat, tarifs, blog — sans login.

Acheter un Mac distant Tarifs Centre d’aide
Apple Silicon
Sortie réseau maîtrisable
Support 24/7