2026 pratique OpenClaw côté front sur Mac distant :
rapporteur HTML Playwright, plafonds binaires et empreinte stderr vers une synthèse PR unique
Public : mainteneurs CI front qui livrent déjà JUnit et traces mais doivent la narration HTML Playwright aux designers. Contrairement au guide JUnit et traces, ici : HTML fusionné, plafonds pièces jointes, empreinte stderr pour un digest OpenClaw par PR. Matrice, cinq étapes, chiffres ; liens blog, aide, achat. Slug : 2026-openclaw-playwright-html-report-pr-summary.html.
00 Pourquoi la porte HTML échappe encore à la CI sur Mac distant
1) Chaque fragment livre un playwright-report lourd ; fusion naïve dépasse vite les plafonds d’artefacts.
2) Les métadonnées HTML rompent leurs chemins relatifs quand les dossiers bougent entre exécuteurs ; tableaux vides confondus avec des bugs produit.
3) Sous Node vingt-quatre, stderr varie selon le graphe ; sans queues hachées, les commentaires PR spamment les bots de branche.
01 Matrice : rapporteur HTML et seuils contre agrégation JUnit et traces
Utilisez ce tableau quand l’équipe demande pourquoi le guide JUnit ne suffit pas : le HTML apporte des parcours cliquables et des médias pour des publics mixtes, tandis que les traces restent réservées au triage profond des ingénieurs sur les mêmes builds Apple Silicon.
| Signal | Focus JUnit et traces | Focus HTML et plafonds binaires |
|---|---|---|
| Artefact principal | XML et index trace JSON. | index.html plus médias pour design et produit. |
| Risque volumétrique | XML léger ; traces énormes possibles. | Arborescences riches en binaires ; plafonner fichier et zip fusionné. |
| Étape de fusion | Parseur de cas ; URLs trace. | merge-reports réécrit les blobs ; versions Playwright divergentes corrompent. |
| Expérience relecteur | Bots et bissections. | Validation visuelle sur Apple Silicon loué. |
Shards : voir rapport fragments Mac distant pour des identifiants stables dans HTML et Markdown.
02 Conventions des répertoires d’artefacts
Ancrez chaque chemin sous .openclaw/reports/$GIT_SHA/html/ afin que les gabarits OpenClaw et vos scripts Node vingt-quatre ne devinent jamais la structure. Rangez les fragments bruts dans shard-00/ jusqu’à shard-07/, puis écrivez merged/ pour le rapporteur combiné accompagné d’un manifest.json listant précisément chaque taille en octets.
Collez les extraits stderr à côté du HTML via stderr.normalized.txt et stderr.sha256 afin que l’empreinte survive aux nouvelles tentatives de fusion lorsque la CI relance automatiquement le même commit.
.openclaw/reports/$GIT_SHA/html/shard-02/playwright-report/ .openclaw/reports/$GIT_SHA/html/merged/index.html .openclaw/reports/$GIT_SHA/html/manifest.json
Principe « un commit, une racine, un digest » pour auditer plusieurs pipelines sur le volume du Mac loué.
03 Paramètres de seuil
Exposez les seuils comme variables d’environnement lues par votre script Node vingt-quatre afin que l’exécuteur Mac loué, les conteneurs Linux et les portables des développeurs appliquent exactement les mêmes refus et les mêmes journaux structurés.
- MAX_ATTACHMENT_MB : huit mégaoctets par pièce.
- MAX_MERGED_ZIP_MB : cent vingt mégaoctets pour le zip fusionné.
- STDERR_TAIL_LINES : quarante lignes sans ANSI ni motifs secrets.
04 Gabarit de fusion et charge utile passerelle
Rédigez un squelette Markdown avec {{FAILED_TESTS}}, {{HTML_URI}}, {{STDERR_FINGERPRINT}} et {{THRESHOLD_TABLE}}. Le script passerelle charge le gabarit, injecte les faits mesurés sur le disque du Mac distant puis envoie du JSON vers OpenClaw en réutilisant la même route d’automatisation que vos autres portes qualité.
Offrez un wrapper unique pour que la CI ne fasse qu’un seul appel shell depuis le runner loué :
node scripts/openclaw-send-summary.mjs \ --template .openclaw/templates/pw-html-summary.md \ --report-root .openclaw/reports/$GIT_SHA/html/merged
Valider les manifestes avant le réseau pour éviter les chemins partiels dans les journaux CI.
05 Permissions et minimisation des jetons
Accordez au jeton OpenClaw uniquement les portées commentaire pull request et checks write réellement nécessaires. Faites tourner les clés tous les quatorze jours et injectez-les depuis le magasin de secrets monté sur le Mac loué plutôt que par des variables d’environnement echo dans la liste des processus.
Idempotency-Key: $GIT_SHA:$PIPELINE:pwhtml pour remplacer le digest sans spam.
06 FAQ dépannage
Zéro test après fusion. Configs ou PLAYWRIGHT_VERSION divergentes ; nettoyer puis relancer fragments alignés.
Zip trop lourd. Moins de vidéo sur succès, captures seulement en échec, gzip niveau six avant MAX_MERGED_ZIP_MB.
Timeouts passerelle. Pousser le zip vers l’objet puis liens HTTPS dans le Markdown sous deux mégaoctets.
07 Cinq étapes reproductibles sur l’exécuteur
- Node vingt-quatre sur le Mac ;
process.versionalignée prod. - Copier fragments sous la racine ;
merged/en lecture seule pour détecter écrasements. - Rogner pièces jointes selon seuils ; journal chemin et octets.
- merge-reports vers
merged/, puis calculezstderr.sha256après normalisation des fins de ligne en LF pour stabiliser l’empreinte entre macOS et Linux. - Passerelle OpenClaw via le wrapper, backoff exponentiel sur les erreurs cinq cent, arrêt après trois tentatives afin de ménager la latence des bots de protection de branche.
Chiffres citables pour les RFC internes
Huit mégaoctets par média : plafond usuel avant zip.
Quarante lignes : compromis signal et bruit bundler.
Trois essais : budget horloge proche de soixante secondes.
Poursuivre avec le blog, l’aide et l’achat Mac Mini M4
Blog, aide SSH/VNC, achat pour un créneau Apple Silicon stable.