OpenClaw · Playwright · HTML · Anhang-Schwellen · stderr · Node 24 · 2026

2026 OpenClaw Frontend-Praxis:
Playwright HTML-Reporter auf Remote Mac aggregieren — Anhang-Megabyte-Grenzen und stderr-Fingerprint für einen einzigen PR-Gate-Digest

8. Mai 2026 Frontend-CI · Apple Silicon Runner ca. 9 Min.

Zielgruppe: Frontend-CI-Maintainer auf Remote Mac mit Node 24, die im PR einen HTML-Digest neben JUnit brauchen — abgegrenzt von JUnit-XML und Trace-Wänden. Themen: Pfade, Zip-Schwellen, stderr-Fingerprint, Gateway-Template, Tokens, FAQ. Mehr: JUnit-HowTo, Trace/HAR, Blog. Der Digest ergänzt menschliche Lesbarkeit für Reviewer und Release-Manager, ersetzt aber keine Required Checks.

Gates bleiben auf JUnit; der HTML-Reporter liefert visuelle Evidenz — anders als im JUnit-HowTo, wo XML und Trace-Index im Mittelpunkt stehen. Hier dominieren Bundles, Megabyte-Caps und ein stderr-Fingerprint.

Schmerzpunkte: (1) Shards brechen relative Pfade im PR. (2) Zips sprengen Mail-Limits. (3) stderr leckt Pfade oder Tokens. (4) Ohne Fingerprint kein Flake-Signal. (5) Retries ohne Marker duplizieren Kommentare.

00 Entscheidungsmatrix: JUnit und Trace versus HTML-Digest

Signalquelle Gate-tauglich Reviewer-UX Schwellenrisiko
JUnit-XML aggregiert Sehr hoch Niedrig ohne HTML Gering solange XML klein bleibt
Trace-Zips mit Rohindex Mittel Hoch bei Download Sehr hoch ohne Megabyte-Caps
HTML-Reporter plus Zip-Limits und stderr-Fingerprint Mittel bis hoch mit Policy Sehr hoch Mittel wenn Caps durchgesetzt werden

01 Artefaktverzeichnis und Reporter-Pfade

Kanone: .openclaw/reports/$GIT_SHA/html/ für den gemergten HTML-Reporter; attachments/ nur referenziert; index.html nur relative URLs. Nach merge-reports ein Ordner zum Packen oder presigned GET — keine Runner-Pfade im Markdown. Optional manifest.json neben dem Index listen alle Dateien mit Bytegröße; so validiert das Gateway Caps ohne erneutes Traversieren des DOM.

Pfadsegment Inhalt Integrität Retention Notiz
html/index.html Reporter-UI SHA256 optional 7 bis 14 Tage Keine absoluten file-URLs
html/data/ JSON für Steps neben index bündeln gleich wie oben Parser im Gateway lesen
attachments/*.zip Traces oder Medien Größe vor Upload kürzer wenn groß Schwellen siehe unten
meta/fingerprint.txt stderr-Normalform sha256 über normalisierte Zeilen 30 Tage Vergleich über Builds

02 Schwellenparameter für HTML und Anhänge

Hier zählen MB und Medienanzahl — vor dem Gateway-POST hart prüfen; oversized Zip durch Link-Hinweis ersetzen. Wenn html_bundle_max_mb greift, exportieren Sie zusätzlich eine ASCII-Kurzfassung der Top-Fehler, damit Reviewer ohne Download entscheiden können.

Parameter Startwert Stabilitätshinweis Sicherheit Review-Hinweis
max_attachment_mb 35 über 50 MB oft flaky Upload kleinere Fläche Mobile PR-Clients
max_screenshots_embedded 8 GPU last weniger PII nur failing Spec
stderr_max_lines 48 feste Breite Redact vor Hash Stackkopf
stderr_normalize_paths true stabile Hashes maskiert Home Flake-Trend
html_bundle_max_mb 18 kein Blob-Wuchs kein Roh-Trace Text first
// Node 24 Kurz: crypto.createHash("sha256").update(normalizeStderr(stderr)).digest("hex").slice(0,12)

03 Merge-Template für den PR-Kommentar

Template: Kurz-URL zum HTML, Top-3-Anhänge mit MB, fingerprint monospaced, Marker <!-- openclaw:html-report-digest --> für Upsert. openclaw per Skript: stdin JSON mit Pfaden und Verletzungen, stdout Markdown. Node 24: fetch plus AbortSignal.timeout gegen hängende Uploads. Variablen wie {{ runner_os }} und {{ node_version }} helfen Support, ohne Logs anzreichern.

04 Berechtigungen und Token-Minimierung

Token nur pull_requests:write scoped; kein breites repo. Secrets im Keystore, nicht in playwright.config. Keine Rohtokens in data/ — Reports redigieren oder Profil trennen.

Geheimnis Scope Gültigkeit Rotation Beobachtbarkeit
GITHUB_TOKEN ein Repo Joblauf automatisch Audit im Workflow-Log
Presigned GET Objektpfad 15 Minuten pro Build Access-Logs im Bucket
OpenClaw API-Key nur render 90 Tage quartalsweise ohne stdout echo
npm-Token für private Feeds read-only 30 Tage monatlich nicht im HTML-Dump

05 Reproduzierbare Ablaufschritte

  1. Toolchain. Remote Mac: Node 24 plus Playwright wie CI; PM pinnen; corepack aktivieren falls nötig.
  2. Reporter. npx playwright test --reporter=html,github → vereinbarte Pfade; Shards vor Merge normalisieren.
  3. Caps. manifest.json lesen, Verletzungen melden, Exitcode setzen; Diagnosezeile für Digest mitschreiben.
  4. Fingerprint. stderr normalisieren, hashen, meta/fingerprint.txt; optional Diff zur letzten grünen Pipeline.
  5. openclaw. JSON → Template → Markdown; PR mit Marker upserten; Bundle und Zips mit dokumentierter TTL publizieren.

06 Fehlersuche und FAQ

Bilder fehlen im PR? Absolute Runner-Pfade in index.html — Base-URL und Merge prüfen.

Fingerprint driftet? Timestamps in stderr — Normalisierung und Zeilenlimit.

Playwright driftet zwischen Shards? Lockfile strikt; Runner-Cache leeren.

429 vom Gateway? Backoff, kleinere Chunks, kein paralleler PR-POST ohne Lock.

Zitierfähige Kennzahlen

Numerisch

Presign-TTL 15–30 Minuten bei großen HTML-Bundles.

Betrieb

Ein Digest-Marker pro PR verhindert doppelte Threads.

Sicherheit

Fingerprint zwölf Zeichen nur Trend, kein Crypto-Beweis — vorher redigieren.

Remote Mac · HTML-Reporter · CI

Mac-Knoten für reproduzierbare Playwright-Läufe

Apple-Silicon-Runner mieten, Node 24 stabil halten und Digests sauber posten. Öffentliche Einstiege: Technik-Einblicke, Hilfe, Kaufen — ergänzend Preise und Startseite.

Apple Silicon HTML Token minimal
Jetzt Mac für CI mieten