OpenClaw · Playwright HTML reporter · пороги вложений · stderr · Node 24 · удалённый Mac · 2026

2026 практика OpenClaw для фронтенда на удалённом Mac:
агрегация Playwright HTML Reporter, пороги на вложения и отпечаток stderr → одна сводка ворот PR

08.05.2026 Владельцы фронтенд CI и релиз-инженеры 10 мин чтения
Slug: 2026-openclaw-playwright-html-report-pr-summary.html

Аудитория: сопровождающие фронтенд CI, которым нужен один защищённый дайджест ветки из OpenClaw, Playwright и HTML reporter, а не лента из десяти zip-файлов. В отличие от сценария JUnit плюс trace, здесь главный носитель правды — дерево index.html со встроенными вложениями, поэтому критичны пороги байтов и отпечаток stderr перед публикацией сводки в PR. Ниже — матрица отличий, пять воспроизводимых шагов на Node 24 с идеей скриптового вызова шлюза, блок про минимизацию токенов и FAQ. Навигация: список блога, помощь, покупка доступа.

Три боли, если тянуть HTML reporter «как получится»

1) Каждый шард кладёт playwright-report в свой случайный подкаталог, merge-reports не находит общий корень и пайплайн на удалённом Mac падает без понятного диффа.

2) Скриншоты и видео раздувают zip выше лимита SCM или вложений в API комментария, а ретраи заливают одни и те же мегабайты, пока счётчик минут не съедает бюджет аренды.

3) Длинный stderr от браузерного движка меняется от запуска к запуску, и без нормализованного отпечатка шлюз шлёт в PR шум, который ревьюеры игнорируют вместе с полезной сводкой.

01 Матрица: HTML reporter против JUnit и trace

Используйте таблицу при планировании ворот: где нужен кликабельный сценарий для дизайна, держите HTML как основной артефакт, а JUnit оставьте для машинного статуса ветки.

Критерий JUnit XML плюс trace HTML reporter после слияния
Назначение сводки Счётчики тестов и видео-трасса для инженера, мало контекста для визуального ревью без отдельных файлов. Единый index со списком кейсов, вложенными PNG и ссылками на шаги, удобно прикреплять к PR как рассказ о регрессии.
Риск по объёму Trace zip может быть огромным, но его часто режут политикой хранения отдельно от HTML. Вложения живут рядом с HTML; без явных порогов на файл и на сумму каталога ворота ломаются на стадии загрузки или при вызове шлюза.
Стабильность дайджеста stderr уже агрегируют скрипты вокруг junit merge; отдельный fingerprint реже нужен. Браузерный stderr шумный; нормализация переводов строк, обрезка хвоста и sha256 дают короткий ключ для сравнения прогонов.
Связка с OpenClaw Шаблоны часто строятся вокруг XML и индекса trace. Шлюз читает сжатый summary.json плюс путь к смерженному HTML и вставляет блоки в Markdown PR без ручного копирования.

Дополнительно сверьтесь с материалом по шардированию Playwright, если отчёты приходят параллельно с разных раннеров.

02 Контракт каталогов для playwright-report

Зафиксируйте корень вида .openclaw/reports/$GIT_SHA/html/ и запретите пробелы в относительных путях. Каждый шард копирует свой каталог в shard-NN/ до слияния, чтобы повторный прогон не затирал чужие blob-файлы. В CI на удалённом Mac держите ту же схему, что и локально, иначе расхождение путей проявится только на Apple Silicon.

Пять шагов, которые стоит закрепить в репозитории

  1. Очистка стейджа. Удалите прошлый playwright-report и частично залитые каталоги после обрыва сети.
  2. Копирование шардов. Скриптом соберите все shard-* под общим родителем с именами только из ASCII.
  3. Проверка версии Playwright. Запишите минор в файл рядом с отчётом и сравните перед merge.
  4. merge-reports. Вызовите CLI с явным списком входных путей и выходом в merged-report/.
  5. Сводка для шлюза. Сгенерируйте компактный summary.json с путём к index, счётчиками и отпечатком stderr.

03 Пороговые параметры вложений и zip

Введите два лимита: максимум на один файл вложения и максимум на сумму каталога перед упаковкой. Отдельно ограничьте число повторных загрузок при флейках, чтобы ретраи не умножали трафик. Логируйте имя каждого отброшенного файла и итоговый размер zip — эти строки попадут в Markdown и ускорят разбор без скачивания архива.

Пороги сверяйте с политикой вашего Git-провайдера для вложений в комментарии и с лимитом тела запроса шлюза OpenClaw. Если байты всё равно велики, оставьте в PR только ссылку на артефакт пайплайна, а в сводке — усечённый список кейсов и отпечаток stderr.

04 Шаблон слияния Markdown и вызов шлюза на Node 24

На Node 24 держите тонкий адаптер: скрипт читает summary.json, подставляет секции в заранее утверждённый Markdown-шаблон ворот PR и передаёт результат в openclaw через stdin либо во временный файл с явным путём внутри рабочей копии. Так вы избегаете гигантских argv и упрощаете экранирование кавычек на macOS.

Идея скриптового вызова шлюза: обёртка вокруг бинарника или npx с переменными окружения только на время процесса, без записи секретов в лог npm. Добавьте заголовок Idempotency-Key, собранный из SHA коммита и идентификатора workflow, чтобы повтор поста после таймаута не плодил дубликаты комментариев.

05 Минимизация прав и токенов

Выдайте токену только права на создание комментария в целевом репозитории и отключите доступ к секретам вне ветки. На раннере храните значение в защищённой переменной CI и не печатайте его даже в усечённом stderr, который уходит в отпечаток. Раз в релиз ротируйте токен и проверяйте, что скрипт не кладёт ключи в артефакт merged-report.

06 FAQ по типовым сбоям

Несовпадение версий: если index открывается локально, но merge на Mac падает, чаще всего разъехался минор Playwright между шардом и финальным шагом.

Пустые вложения после порога: убедитесь, что вы не удалили единственный скриншот, на который ссылается шаг; иногда лучше уменьшить качество JPEG, чем выкидывать файл целиком.

429 от шлюза: введите экспоненциальную задержку и жёсткий предел попыток; не удваивайте zip между ретраями.

Цифры и формулировки для тикета

Контракт пути

Корень .openclaw/reports/$GIT_SHA/html/, шардовые подкаталоги только shard-NN, выход merge в merged-report/.

Пороги

Зафиксируйте в репозитории два числа: мегабайты на файл вложения и мегабайты на сумму каталога до zip; логируйте отбрасывания.

Отпечаток stderr

Нормализация переводов строк, обрезка до согласованной длины, алгоритм sha256, ключ в summary для сравнения прогонов.

OpenClaw · Playwright · удалённый Mac

Закрепите HTML reporter в воротах PR на арендованном Mac

Продолжите настройку окружения: откройте список статей блога, раздел помощи по SSH и VNC и страницу покупки доступа к узлу Mac Mini M4. Для сравнения с XML-конвейером загляните в HowTo по JUnit и trace.

Один дайджест PR Пороги вложений Apple Silicon
Mac для Playwright HTML CI