OpenClaw · Passerelle Webhook · Lighthouse · Mac distant · Safari WebKit · 2026

2026 OpenClaw, pratique front sur Mac distant :
Webhook de preview, Lighthouse CLI, seuils JSON, codes de sortie et digest lisible en pull request

25 avril 2026 Automatisation web / portes release 9 min de lecture

Public : équipes qui font tourner une passerelle OpenClaw sur un Mac loué à distance et veulent une chaîne unique et reproductible depuis le webhook de déploiement (URL de preview) jusqu’au Lighthouse CLI, au fichier seuils JSON versionné, aux codes de sortie exploitables par CI, puis à un résumé Markdown directement lisible dans la pull request. Fichier unique : 2026-openclaw-remote-mac-preview-lighthouse-webhook.html. Pour l’intégration GitHub Deployments, voir Deployments + Lighthouse ; pour les en-têtes de fumée côté fournisseur, hook Vercel et en-têtes ; pour les alertes planifiées, Lighthouse performance alert.

Les webhooks de preview transportent preview_url et les métadonnées de commit. Une CI Linux ne reproduit ni le composite GPU Apple ni le chemin Safari / WebKit qu’empruntent vos utilisateurs. Une passerelle OpenClaw sur Mac distant vérifie les signatures, normalise le JSON, exécute Lighthouse CLI (Chromium headless pour des scores de laboratoire stables), compare lhr.json à un seuils JSON figé dans le dépôt, traduit les régressions en code de sortie 2 et les incidents réseau ou d’auth en code 3, puis émet un digest PR court que les revues peuvent scanner sur mobile.

Résultat attendu. Une seule URL HTTPS côté passerelle, des artefacts sous .openclaw/reports/, et un bloc Markdown identique entre le commentaire bot et, si vous le souhaitez, la ligne NDJSON consommée par vos tableaux de bord OpenClaw. En complément, une fumée WebKit sur le même hôte relie l’automatisation à un navigateur réel sans confondre les missions : Lighthouse pour la mesure lab, Safari pour le signal moteur natif.

Ce que ce modèle élimine

  1. Hooks non authentifiés. Un curl nu depuis la CI vers un script shell expose rejouabilité, absence d’audit et fuite de jetons.
  2. Verdicts prisonniers de la console. Si le score Lighthouse ne revient pas sur GitHub, la PR part en revue alors que la régression n’existe que dans l’historique du terminal.
  3. Comparaisons bruitées. Sans Chromium épinglé, chauffe HTTP cohérente et budgets numériques JSON, les seuils oscillent et les équipes désactivent les alertes.

01 Pourquoi OpenClaw doit terminer le webhook côté passerelle

Les capacités webhook de la passerelle OpenClaw s’articulent autour de quatre responsabilités : terminaison TLS, vérification HMAC (ou mTLS si vous préférez certificats mutuels), limite de débit et journalisation structurée (souvent une ligne NDJSON par phase). Lorsque Vercel, Netlify, Cloudflare Pages ou votre orchestrateur interne envoie un deployment webhook, la passerelle rejette les corps hors fenêtre temporelle, déduplique avec Idempotency-Key, puis confie l’exécution lourde au Mac loué afin que les PAT GitHub et secrets PaaS ne transitent pas sur le bord public. Vous réutilisez la même ingress pour d’autres portes documentées, par exemple Lighthouse pré-déploiement ou métriques de build en synthèse PR.

Après Lighthouse (Chromium), programmez une courte session Safari / WebKit — Playwright webkit, XCTest web, ou capture manuelle pilotée — sur le même profil machine. L’objectif n’est pas de dupliquer Lighthouse : c’est d’aligner la discussion produit sur « ce que voit Safari » tout en conservant une porte numérique automatisable pour la fusion.

02 Matrice d’ingress

Approche Atout Compromis
Webhook passerelle OpenClaw Vérification centralisée des signatures, normalisation JSON, déduplication partagée, enchaînement immédiat sur du matériel Apple. Vous opérez certificats TLS, politiques de backoff et supervision vous-mêmes.
GitHub repository_dispatch seul Piste d’audit native dans GitHub. Flux chaud et traces NDJSON côté Mac exigent souvent de dupliquer des jetons dans Actions.

03 Étapes HowTo reproductibles

  1. Publier le hook. POST JSON vers la route HTTPS OpenClaw avec en-tête de signature ; rejeter les horodatages obsolètes (> quelques minutes).
  2. Normaliser les champs. Mapper les clés fournisseur vers PREVIEW_URL, capturer GIT_SHA, PR_NUMBER, émettre OPENCLAW_RUN_ID unique.
  3. Mettre en file sur le Mac. Écrire un job sous .openclaw/queue/ ; un agent launchd ou observateur local relance le worker pour survivre aux micro-coupures SSH.
  4. Chauffer la preview. Deux GET (document + bundle JS principal) avec le user-agent Lighthouse ; backoff exponentiel sur 429.
  5. Lancer Lighthouse CLI. Par exemple pnpm exec lighthouse "$PREVIEW_URL" --only-categories=performance --output=json --output-path=".openclaw/reports/${OPENCLAW_RUN_ID}.lhr.json" --chrome-flags="--headless=new" ; épinglez la révision Chromium par branche.
  6. Évaluer les seuils. Lire perf/thresholds.json au commit courant ; produire verdict.json avec deltas chiffrés.
  7. Codes de sortie. 0 succès, 2 régression produit, 3 infra (timeout, 403 persistant, certificat) après une relance contrôlée.
  8. Publier le digest. Remplir le gabarit ci-dessous, POST vers l’API commentaires ou Checks, ajouter une ligne NDJSON phase=preview_lighthouse pour corrélation.
# Garde minimale avant fork worker (exemple)
set -euo pipefail
test -n "${PREVIEW_URL:-}" && test -n "${GIT_SHA:-}" || exit 3
# openclaw-hook-verify --secret "$HOOK_SECRET" --body "$RAW_BODY" --sig "$SIG_HEADER" || exit 3

04 Tableau des seuils, JSON et codes de sortie

Métrique Budget indicatif Action en échec
Score performance >= 0,85 préréglage mobile Sortie 2 ; afficher le delta vs artefact baseline archivé.
LCP / CLS / TBT LCP <= 2500 ms, CLS <= 0,08, TBT <= 200 ms Sortie 2 ; citer la métrique dominante en premier.
Timeout de navigation maxWaitForLoad <= 45000 ms Une relance puis 3 pour ne pas confondre avec une régression Lighthouse.
{
  "performance": { "minScore": 0.85 },
  "metrics": {
    "largest-contentful-paint": { "maxNumericValue": 2500 },
    "cumulative-layout-shift": { "maxNumericValue": 0.08 },
    "total-blocking-time": { "maxNumericValue": 200 }
  }
}

Code 0 : tous les budgets respectés. Code 2 : régression mesurable — bloquer ou signaler la fusion selon votre politique. Code 3 : infrastructure ou authentification — relève de l’exploitation, pas du produit front.

05 Gabarit de digest lisible en pull request

Restez sous ~4 Ko pour l’application mobile GitHub. Si vous synchronisez aussi l’onglet Déploiements, réutilisez le même texte comme dans le guide API Deployments + Lighthouse.

### OpenClaw · Porte Lighthouse (preview)
- **Run** `OPENCLAW_RUN_ID` @ `GIT_SHA` sur Mac distant (Chromium épinglé)
- **URL** `PREVIEW_URL`
- **Scores** perf **{{score}}** (Δ {{delta}} vs baseline)
- **Métriques** LCP **{{lcp}} ms**, CLS **{{cls}}**, TBT **{{tbt}} ms**
- **Verdict** {{pass_or_fail}} — journaux `.openclaw/reports/{{run}}.lhr.json`
- **WebKit** {{webkit_smoke_one_liner}}
À retenir

Épingler Chromium chaque semaine ; archiver lhr.json sous .openclaw/reports/${OPENCLAW_RUN_ID}.lhr.json ; ajouter en pied de commentaire une ligne WebKit (« smoke OK / échec étape X ») pour rappeler le Mac réel derrière l’automatisation.

06 FAQ : 403, timeouts, hooks en double

Pourquoi Lighthouse voit HTTP 403 sur la preview ?

Les règles deploy protection, les pare-feux « humains seulement » ou un Authorization absent bloquent Chrome headless. Répliquez les en-têtes validés dans la fumée Deployment Hook, autorisez l’IP de sortie du Mac, ou injectez un jeton courte durée via variable d’environnement — jamais en clair dans le corps de PR.

Comment éviter que des timeouts flaky bloquent les merges ?

Autorisez une seule relance avec le même OPENCLAW_RUN_ID, augmentez légèrement --max-wait-for-load, puis basculez en code 3 pour que la file distingue incident d’hébergement et baisse de score.

Le fournisseur envoie deux webhooks identiques : que faire ?

Exigez Idempotency-Key: ${GIT_SHA}:${OPENCLAW_RUN_ID}:lighthouse côté passerelle et ignorez les POST si l’entrée de file existe déjà, afin d’éviter un double run Lighthouse coûteux.

OpenClaw · Mac distant · Webhook + Lighthouse

Le même Apple Silicon que vos portes Safari

Ouvrez l’accueil, consultez l’aide (SSH, VNC, premiers pas), comparez les tarifs, puis passez par la page achat ou location — le tout sans compte obligatoire. Revenez à l’index du blog pour d’autres playbooks OpenClaw.

Webhooks passerelle Safari / WebKit Lighthouse CLI
Mac distant — Webhook + Lighthouse