From 2911f2b3e53b028042106a5d3a3ff34d17224058 Mon Sep 17 00:00:00 2001 From: vitya Date: Sun, 14 Jun 2026 23:59:56 +0300 Subject: [PATCH] =?UTF-8?q?feat(deploy):=20pilonuxt=20961a838=20=E2=80=94?= =?UTF-8?q?=20content-api=20fixed,=20full=20re-smoke;=201=20bug=20left=20(?= =?UTF-8?q?/products=20404)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit pilonuxt пофиксил content-api (@snollajs/data 0.9.1 + tedious traceInclude), тег 961a838. Stack 16 перекатан. Полный re-smoke (весь меню 21 стр + viewModel по каждому + Playwright браузер + скрин): viewModel 200 везде, страницы 200 с реальным контентом, картинки 200 webp, консоль 0 ошибок, верстка целая. Остался реальный баг: пункт меню «Продукция» → /products → 404. + форма не тестилась (живой email). Cutover отложен до закрытия /products + формы. .gitignore: smoke-артефакты (скрин, .playwright-mcp). Co-Authored-By: Claude Opus 4.8 (1M context) --- .gitignore | 4 ++++ .tasks/STATUS.md | 8 ++++---- host-stacks/vds-kzntsv/pilonuxt.compose.yml | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 5327756..9afabbc 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,7 @@ Thumbs.db # Operational scratch — per-task throwaway (API payloads, frozen mappings, ad-hoc dumps). # Контент часто содержит credentials (reindex bodies, stack PUTs) — никогда не commit. .scratch/ + +# smoke artifacts (ephemeral) +pilonuxt-home-smoke.jpeg +.playwright-mcp/ diff --git a/.tasks/STATUS.md b/.tasks/STATUS.md index dcdd824..5fdac09 100644 --- a/.tasks/STATUS.md +++ b/.tasks/STATUS.md @@ -532,13 +532,13 @@ vehicles-loader (stostayer) деплоится в Docker у клиента (lite **notify:** victor/pilonuxt **Status:** blocked -**Where I stopped (2026-06-14 20:25):** ФАЛЬШ-GREEN ОТОЗВАН. Я объявил smoke зелёным по `/`+`/catalog`; vitya ткнул в `/snolla/pages/viewModel?path=/services` → 500. Перепроверил: **content-api лежит полностью** — `/snolla/pages/viewModel?path=<любой>` → 500 ВСЕГДА. Реальная ошибка из логов: `TypeError: Cannot read properties of undefined (reading 'models')` в `@snollajs/snolla@0.11.0 sites.js:21` (`sequelize['snolla'].models['site']`) → **`sequelize['snolla']` undefined в контексте content-api**, т.е. реестр `@snollajs/data` там не инициализирован. Каталог-товары рендерятся (app-путь к данным работает), но CMS-страницы через content-api — нет. Диагноз: задвоённый stateful-инстанс `@snollajs/data` в Nitro-бандле (тот же класс, что дубль Vue: в dev Vite дедупит, в prod нет). Stack 16 (tag 3622662) оставлен поднятым. Inbox victor/pilonuxt отправлен (20:25) с stack+кодом+гипотезой (externalize/dedupe `@snollajs/data` либо init content-api перед mount). Урок в память: [[smoke-crawl-real-pages-not-two-routes]]. -**Next action:** Ждать app-фикс pilonuxt (единый инстанс `@snollajs/data` / init content-api) → новый тег → pull+stack 16 update → пере-smoke ПО ВСЕМ страницам меню + viewModel по каждому пути (не два роута). Cutover www.pilorama98.ru — НЕ делать, сайт не готов. -**Blocker:** pilonuxt: content-api 500 на всех CMS-страницах — `sequelize['snolla']` undefined (задвоённый `@snollajs/data` в бандле). Source-level, их репо. +**Where I stopped (2026-06-14 21:05):** pilonuxt пофиксил content-api (`@snollajs/data@0.9.1` — models-load баг + `tedious` в `nitro.externals.traceInclude`), тег `961a838` (все прошлые битые). Перекатил stack 16. **Полный re-smoke (curl весь меню 21 стр + viewModel по каждому + браузер Playwright + скрин):** viewModel 200 везде (был 500), все страницы меню 200 с реальным контентом (категории/товары/услуги/инфо), товар-стр 200, картинки imgproxy 200 webp, браузер-консоль 0 ошибок, верстка целая. **ОСТАЛСЯ РЕАЛЬНЫЙ БАГ: пункт меню «Продукция» → `/products` → 404** (битый линк, до cutover нельзя). Мелочи: `/blog`+`/services/building/projects/` viewModel 404 (страницы 200), Я.Метрика external не грузится (не баг app). Форма contacts → email НЕ гонял (живой email, жду решение). Скрин `pilonuxt-home-smoke.jpeg`. Inbox pilonuxt отправлен (21:05). +**Next action:** pilonuxt чинит `/products` 404 → новый тег → pull+stack16 update → добить smoke (/products + форма). Согласовать с vitya: тест формы contacts (live [SMOKE TEST] vs закрыть по verified). Cutover www.pilorama98.ru — после закрытия /products + формы. +**Blocker:** pilonuxt: пункт меню «Продукция» → /products → 404 (роут/CMS-страница отсутствует либо нужен редирект на /catalog). **Branch:** n/a **Notify:** victor/pilonuxt -**(history)** Путь: ТЗ→pull→домен(temp). Мои 2 Dockerfile-бага (npmAlwaysAuth + COPY scripts/src-generated до install) → pilonuxt пофиксил +свой (build-time VERDACCIO_TOKEN default `${VAR:-}`) → образ `36ec970` битый: дубль Vue в prod-бандле давал SSR 500 `reading 'ce'` на всех роутах; диагностировал «инфра зелёная, баг в app»; pilonuxt нашёл (Vite дедупит Vue в dev, Nitro prod нет) → `resolutions` → `3622662` зелёный. +**(history)** Фальш-green #1 (20:25): объявил green по `/`+`/catalog`, vitya поймал `/snolla/pages/viewModel?path=/services`→500; content-api лежал полностью (`sequelize['snolla']` undefined — `@snollajs/data` models не загружались + `tedious` не в .output). Урок: [[smoke-crawl-real-pages-not-two-routes]]. Путь: ТЗ→pull→домен(temp). Мои 2 Dockerfile-бага (npmAlwaysAuth + COPY scripts/src-generated до install) → pilonuxt пофиксил +свой (build-time VERDACCIO_TOKEN default `${VAR:-}`) → образ `36ec970` битый: дубль Vue в prod-бандле давал SSR 500 `reading 'ce'` на всех роутах; диагностировал «инфра зелёная, баг в app»; pilonuxt нашёл (Vite дедупит Vue в dev, Nitro prod нет) → `resolutions` → `3622662` зелёный. diff --git a/host-stacks/vds-kzntsv/pilonuxt.compose.yml b/host-stacks/vds-kzntsv/pilonuxt.compose.yml index 4ead120..f1d8306 100644 --- a/host-stacks/vds-kzntsv/pilonuxt.compose.yml +++ b/host-stacks/vds-kzntsv/pilonuxt.compose.yml @@ -21,7 +21,7 @@ services: pilonuxt: container_name: pilonuxt - image: registry.kzntsv.site/pilonuxt:3622662 + image: registry.kzntsv.site/pilonuxt:961a838 restart: unless-stopped environment: NODE_ENV: production