LIGHTHOUSE-LIFECYCLE-2026-09-18
Цель: устранить зависание production quality после последнего Lighthouse audit. Источник: пользователь сообщил о 30-минутной задержке и разрешил повторный production-запуск; исходная попытка отменена, попытка 2 запущена на том же SHA.
Исходное состояние: ветка chore/architecture-migration-complete, HEAD
5da2be7; git status --short: только ?? AGENTS.md. Рабочая инструкция
сохраняется локально и не включается в публикацию.
Доказательство: GitHub Actions run 35317990790, attempt 1. Все шесть
Lighthouse результатов прошли пороги; последняя строка в 07:13:52 UTC, затем
отсутствует переход к E2E до отмены в 07:37:46 UTC. Cleanup перечисляет
оставшиеся npm run check:lighthouse и Node-процессы. Preview запускался через
оболочку npm, а cleanup останавливал только оболочку.
На macOS исходный lifecycle regression проходит; зависание доказано в Linux CI. Regression запускает настоящий desktop audit, требует завершения процесса за 60 секунд и освобождения preview-порта. Сохраняется для проверки в обеих средах.
Изменения: scripts/check-lighthouse.mjs запускает Vite напрямую через Node,
поэтому cleanup останавливает сам сервер. --strictPort предотвращает скрытый
переход на другой порт. scripts/test-lighthouse-lifecycle.mjs проверяет
завершение audit и освобождение порта. UI, бизнес-расчёты, audit-пороги и
визуальные эталоны не меняются.
- Прочитать логи отменённой попытки и найти точку зависания.
- Заменить npm-оболочку прямым запуском Vite.
- Проверить lifecycle regression на исправленной версии.
- Выполнить полный
npm run qualityдо фактического exit code. - Опубликовать исправление и проверить production workflow.
Linux CI после исправления
Коммит aedb907 опубликован в main. Run 35321470183 подтвердил завершение
Lighthouse и переход к E2E: зависание устранено. Quality завершился FAIL: 233
E2E PASS / 49 SKIP / 36 FAIL. Все 36 ошибок — отсутствие Linux screenshot
baselines; Playwright добавляет OS в имя эталона, в репозитории были только
Darwin PNG. Production deployment пропущен из-за blocking gate.
Из artifact quality-reports этого запуска вручную просмотрены 54 actual PNG
для трёх страниц × шести viewport: full page, closed menu и open menu.
Просмотрены 24 сравнительных листа macOS/Linux в /tmp/belf-ci-visual-review.
Все элементы помещаются в своих границах; перекрытий и исчезновения содержимого
не обнаружено. Width совпадает во всех 54 screenshots; full-page height
отличается на 0–136 px из-за платформенных переносов/метрик текста. Эти различия
сохраняются отдельно для Linux. Исходные Darwin-эталоны не изменены.
Осознанно добавлены 54 Linux baselines из просмотренных CI actual PNG в
tests/e2e/navigation.spec.ts-snapshots. --update-snapshots не запускался;
threshold 0.003, assertions и число сценариев сохранены. Следующий шаг —
публикация baseline-файлов и повторный Linux quality gate.
Дополнительный эксперимент с исходным скриптом под CI=true на macOS:
предположение о локальном зависании не подтвердилось (процесс завершился).
Linux-дефект подтверждают исходные CI-логи, а его исправление — переход к E2E в
новом CI. Платформенные сигналы/процессы нельзя считать идентичными.
Команды: baseline node --test scripts/test-lighthouse-lifecycle.mjs на macOS —
PASS (11.4 с). Исправленная версия — PASS (10.6 с): процесс завершён, порт
освобождён. Полный npm run quality — PASS, фактический exit code 0: 64
unit/component tests, coverage, architecture, cycles, bundle, links, SEO, 24
accessibility tests, все шесть Lighthouse profiles/routes; затем переход к E2E и
269 PASS / 49 SKIP / 0 FAIL. Пропуски — viewport-specific scenarios. Полный
локальный лог: /tmp/belf-quality-lifecycle-2026-09-18.log.
Commit/push/deploy: исправление ещё не опубликовано на момент записи. Следующий
шаг — публикация в разрешённый пользователем main и проверка Lighthouse
shutdown в Linux CI. Проверки UI/цены/SEO без наблюдаемой дельты.