2026 OpenClaw — фронтенд на практике:
удалённый Mac: trace.zip Playwright и HAR — сводка минимального воспроизведения обратно в PR
Падения E2E перестают быть «магией», если цепочка одинакова на каждом SHA: Playwright trace.zip, усечённый HAR и OpenClaw на удалённом Mac для pr_min_repro_summary.md — URL, шаги, запрос, браузер. HowTo: экспорт trace, распаковка полей, обрезка HAR, Markdown, опционально комментарий в PR или webhook без SSO-консолей. Ещё: логи E2E, Docker + Playwright, автофиксы, source map → PR.
Три типичных узких места
- Разный режим trace у локальной машины и CI — ревьюеры получают несопоставимые архивы и спорят о версиях.
- Сырой HAR в чат или PR — риск утечки cookie и токенов вместе с лишним шумом аналитики.
- Зависимость от GUI viewer на headless-воркере — автоматизация ломается, пока кто-то не открыл trace вручную.
| Источник сигнала | Когда достаточно | Риск для PR |
|---|---|---|
Только trace.zip |
Сценарий кликов и тайминги DOM | Без HTTP-цепочки ревьюеру сложнее связать UI с API |
trace + усечённый HAR |
Ошибки загрузки и статусы рядом с шагами | Нужна дисциплина редактирования секретов и размера |
| Только логи job | Быстрый сигнал «упало» | Низкая воспроизводимость без артефактов |
01 Параметры экспорта trace: согласовать CI и Mac
В playwright.config зафиксируйте use.trace: on для коротких веток, retain-on-failure или on-first-retry для шумных suite. Согласуйте screenshot и video со сводкой: если скрин только при падении — напишите это в подвале pr_min_repro_summary.md.
CLI документируйте флагами и каналом браузера; вывод — .openclaw/reports/<git-sha>/traces/ на удалённом Mac. Рядом run_meta.json: репозиторий, SHA, версия Playwright, base URL, способ авторизации без секретов. См. Playwright и Safari на удалённом Mac.
Автоматизация обязана извлекать текст и сеть без GUI trace viewer — тогда headless-раннер и ноутбук инженера взаимозаменяемы.
02
Распаковка trace.zip и извлечение полей
После unzip или потоковой распаковки: действия из trace.trace, сеть из trace.network, ошибки консоли по индексу шага. В trace_signals.json: финальный URL, вьюпорт, ошибка навигации, шаги по порядку, id шага с assert, до двадцати сетевых строк.
Нормализуйте URL: уберите session id из query, схлопните порты, localhost замените на имя сервиса из документации. Оставьте вкладку с падением, фон без критического трафика отбросьте.
Не копируйте storageState, cookie и фрагменты JWT в JSON для OpenClaw. Опишите механизм: «вход тестового пользователя через секрет CI», без значений.
03 Обрезка HAR: минимум байт, максимум смысла
HAR из контекста Playwright даёт HTTP-доказательство параллельно trace. Сырой файл опасен и шумен. Пропустите его через детерминированный пайплайн:
| Правило | Зачем |
|---|---|
| Оставить origin и префикс пути фичи | Редиректы и API без доменов аналитики |
Удалить Authorization, Cookie, проприетарные заголовки |
Нет утечек в PR и мессенджеры |
| Усечь тела ответов для 200, оставить суть для 4xx/5xx | Меньше размер, читаемость на телефоне |
| Лимит записей после сортировки по времени | Укладываемся в лимит webhook и мобильный diff |
Сохраните repro.har.trimmed.json рядом с trace_signals.json. При ретраях оставьте HAR, чьё время совпадает с неудачной попыткой в метаданных trace.
04
Шаблон OpenClaw: pr_min_repro_summary.md
OpenClaw заполняет слоты из JSON: Сборка, Окружение, Шаги из trace, Сеть (3–6 строк), Артефакты в хранилище без голых публичных URL. Входы: trace_signals.json, repro.har.trimmed.json, run_meta.json. Выходы: pr_min_repro_summary.md, status.txt для гейтов.
- Лимит: до ~400 слов для мобильного GitHub и Slack.
- UI + HTTP: «Отправить счёт» рядом с «POST /api/invoices → 409».
- Те же правила комментариев, что в визуальной регрессии и a11y → PR.
05 Опционально: комментарий PR, CLI или webhook
Минимальный scope, идемпотентность, без секретов в теле. GitHub: gh pr comment или PAT на репозиторий; скрытый маркер <!-- openclaw-min-repro-sha:… -->, job обновляет комментарий.
POST во внутренний шлюз:
curl -sS -X POST "$MIN_REPRO_WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d "$(jq -n --rawfile body pr_min_repro_summary.md --arg sha "${GITHUB_SHA:-}" '{text: $body, sha: $sha}')"
Дебаунс по SHA, backoff на 429, ошибки в status.txt. Запрет HAR — в PR только Markdown, бинарники в bucket.
06 FAQ по сбоям
Шаги в trace пустые: проверьте квоту диска, контекст браузера и совпадение версии Playwright между ноутбуком и Mac worker.
В HAR только opaque или CORS: объедините сигналы консоли и навигации из trace и укажите, использовался ли page.request.
401 у webhook: ротация подписи, allowlist IP, проверка экранирования Markdown внутри JSON.
Дубли комментариев: поиск по маркеру или lockfile в .openclaw/reports/<sha>/ перед POST.
Закрепите режим trace и каталоги на SHA, извлеките trace_signals.json, спарьте с repro.har.trimmed.json, отдайте разметку pr_min_repro_summary.md через OpenClaw и передайте в Git теми же токенами и webhook-паттернами, что и остальные отчёты. Удалённый Mac держит тяжёлые архивы, длинные прогоны и рядом WebKit без превращения ноутбуков в файловые серверы.
Главная, тарифы, покупка без обязательного входа, помощь и SSH/VNC. Ещё материалы: визуальная регрессия → PR, axe-core → PR, все статьи блога.
Гоняйте разбор trace и HAR круглосуточно рядом с Safari
Арендуйте Mac mini M4 под распаковку trace, редактирование HAR и сводки в PR. Тарифы, помощь, покупка без входа, главная — выберите регион и оформите заказ, когда будете готовы.