Oxlint · Biome · CI · шлюз OpenClaw · 2026

2026: фронтенд на удалённом Mac —
Oxlint и Biome JSON в одну сводку ворот PR и идемпотентный комментарий через шлюз OpenClaw

29.04.2026 Фронтенд-команды · CI и LLM-дайджесты 9 мин чтения

Для кого: CI с Oxlint и Biome, единые ворота PR и краткий комментарий. HowTo под Node 22+: .openclaw/reports, шлюз OpenClaw на удалённом Mac, пороги, опционально OpenAI-совместимый вызов. См. Playwright, Lighthouse, knip.

00 Три узких места без единого merge

  1. Oxlint и Biome отдают разные контракты полей: если склеивать вручную в шаблоне PR, счётчики расходятся и ворота дают ложный зелёный статус.
  2. Абсолютные пути в артефактах раннера не совпадают с деревом на удалённом Mac, поэтому дедупликация по файлу и правилу ломается без нормализации на шлюзе OpenClaw.
  3. Длинные логи и вставка закрытых превью в комментарий размывают сигнал: ревьюер не видит, что именно заблокировало merge, а аудит токенов усложняется.

01 Матрица ответственности

Раннер пишет json; удалённый Mac совпадает по Node 22; OpenClaw нормализует пути, merge, бюджет, один комментарий. CI и опциональный LLM читают lint_gate.json.

Слой Фокус Риск
CI / локалка JSON в .openclaw/reports Дрейф stdout и версий
Шлюз lint_gate.json и пороги Ложный pass без merge
PR API Идемпотентный комментарий 429 и дубликаты

01a Таблица порогов ворот PR

Числа — в конфиге шлюза или YAML рядом с OpenClaw.

Сигнал Жёсткий fail Мягкий бюджет
Сумма ошибок после merge любое значение > 0 не применяется
Предупреждения суммарно превышение warn_budget в main например warn_budget: 24 в feature-ветках
Размер Markdown в PR жёсткий лимит провайдера ориентир 120 строк тела до усечения списка файлов
POST комментария после четырёх неудач без нового SHA код выхода 77 только для ретрая сети

02 HowTo: воспроизводимый чек-лист

Одинаковая последовательность на локалке, CI и удалённом Mac.

  1. Node 22+ в engines и CI; тот же major на Mac.
  2. .openclaw/reports и json Oxlint без смеси с логами сборки.
  3. Biome с json-репортёром в отдельный файл.
  4. На шлюз: файлы плюс GIT_SHA, PR_NUMBER, без секретов в именах.
  5. Merge → lint_gate.json, pr_lint_gate_summary.md, exit code по порогам.
  6. REST upsert комментария с маркером; тело укоротить.
  7. Опционально: усечённый json → маршрут шлюза с телом как у OpenAI-совместимого chat/completions, одна строка резюме в Markdown.

03 JSON Oxlint и Biome локально и в CI

Только файлы, без лишнего stdout. Нормализация путей на шлюзе через переменную REPO_ROOT.

Скрипты: в манифесте — шаг создания каталога отчётов, затем машиночитаемый вывод Oxlint в первый файл и json-репортёр Biome во второй. Флаги сверьте с версией пакета.

04 Шлюз OpenClaw: merge и сравнение с бюджетом

Шлюз читает оба json, мапит серьёзность, сравнивает с warn_budget. На Node 22 небольшой сценарий: два чтения, плоский список нарушений, запись lint_gate.json, код выхода ноль или единица. Добавьте топ правил и хеш в маркер комментария.

04b Опционально: LLM через OpenAI-совместимый API

Ключ не в раннер: только шлюз OpenClaw, усечённый lint_gate.json, маршрут как у /v1/chat/completions, temperature ноль, вставка после проверки. При таймауте — Markdown без модели, ворота автономны.

05 Повтор при сбоях и усечение сводки

Транспорт и 429 — backoff с джиттером с IP удалённого Mac; линтер без повтора, кроме битого JSON после краша.

Усечьте Markdown сводки PR (~120 строк), укажите «ещё N в артефактах CI», без base64 в комментарии.

Оболочка: цикл вызывает скрипт публикации; при коде семьдесят семь и меньше четырёх попыток — пауза с бэкоффом и джиттером с удалённого Mac, иначе выход с фактическим кодом.

06 API комментариев: идея без приватных URL

REST к issue PR или review-comment; токен только на шлюзе, не в Markdown.

Маркер <!-- openclaw-lint-gate:HASH --> по репо, PR и хешу JSON — ищите старый комментарий бота и обновляйте.

Не вставляйте приватные preview URL с обязательным входом; укажите номер джоба или публичную справку. Тело держите сильно ниже ~65k символов GitHub: режьте списки, не счётчики.

  • Node 22+ — общий major для скриптов merge и клиента провайдера на удалённом Mac.
  • Ориентир 120 строк Markdown сводки до усечения списка файлов.
  • До четырёх повторов POST при коде 77 в примере bash.
Итог

Node 22+, каталог .openclaw/reports и один lint_gate.json связывают локалку и удалённый Mac. После merge Oxlint и Biome на OpenClaw вы получаете единую сводку PR с порогами, усечённым списком и предсказуемым exit code для CI; опциональный абзац от модели остаётся вне критического пути ворот.

Навигация по сайту: главная, помощь, покупка, блог.

Удалённый Mac · Node 22 · OpenClaw

Арендуйте узел под шлюз и ворота Oxlint плюс Biome

Нужен тот же Apple Silicon, что и у смоука Safari? Оформите удалённый Mac на тарифах, откройте покупку без обязательной регистрации и держите OpenClaw рядом с быстрыми воротами Oxlint и Biome в одной цепочке поставки.

Единая сводка ворот Комментарии в PR Apple Silicon
Mac под Oxlint и Biome