feat(deploy): pilonuxt 961a838 — content-api fixed, full re-smoke; 1 bug left (/products 404)

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) <noreply@anthropic.com>
This commit is contained in:
2026-06-14 23:59:56 +03:00
parent 637942e914
commit 2911f2b3e5
3 changed files with 9 additions and 5 deletions

4
.gitignore vendored
View File

@@ -24,3 +24,7 @@ Thumbs.db
# Operational scratch — per-task throwaway (API payloads, frozen mappings, ad-hoc dumps). # Operational scratch — per-task throwaway (API payloads, frozen mappings, ad-hoc dumps).
# Контент часто содержит credentials (reindex bodies, stack PUTs) — никогда не commit. # Контент часто содержит credentials (reindex bodies, stack PUTs) — никогда не commit.
.scratch/ .scratch/
# smoke artifacts (ephemeral)
pilonuxt-home-smoke.jpeg
.playwright-mcp/

View File

@@ -532,13 +532,13 @@ vehicles-loader (stostayer) деплоится в Docker у клиента (lite
**notify:** victor/pilonuxt **notify:** victor/pilonuxt
**Status:** blocked **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]]. **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:** Ждать app-фикс pilonuxt (единый инстанс `@snollajs/data` / init content-api) → новый тег → pull+stack 16 update → пере-smoke ПО ВСЕМ страницам меню + viewModel по каждому пути (не два роута). Cutover www.pilorama98.ru — НЕ делать, сайт не готов. **Next action:** pilonuxt чинит `/products` 404 → новый тег → pull+stack16 update → добить smoke (/products + форма). Согласовать с vitya: тест формы contacts (live [SMOKE TEST] vs закрыть по verified). Cutover www.pilorama98.ru — после закрытия /products + формы.
**Blocker:** pilonuxt: content-api 500 на всех CMS-страницах — `sequelize['snolla']` undefined (задвоённый `@snollajs/data` в бандле). Source-level, их репо. **Blocker:** pilonuxt: пункт меню «Продукция» → /products → 404 (роут/CMS-страница отсутствует либо нужен редирект на /catalog).
**Branch:** n/a **Branch:** n/a
**Notify:** victor/pilonuxt **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` зелёный.
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: victor/pilonuxt / 2026-06-14T18:45:22.955Z --> <!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: victor/pilonuxt / 2026-06-14T18:45:22.955Z -->
<!-- activated: vitya@.admin-exec / 2026-06-14 / ТЗ получено, домен=temp-subdomain для smoke --> <!-- activated: vitya@.admin-exec / 2026-06-14 / ТЗ получено, домен=temp-subdomain для smoke -->
<!-- re-smoke green: vitya@.admin-exec / 2026-06-14 20:05 / stack 16 = pilonuxt:3622662, infra+app green; pending: contacts-email test + cutover --> <!-- re-smoke green: vitya@.admin-exec / 2026-06-14 20:05 / stack 16 = pilonuxt:3622662, infra+app green; pending: contacts-email test + cutover -->

View File

@@ -21,7 +21,7 @@
services: services:
pilonuxt: pilonuxt:
container_name: pilonuxt container_name: pilonuxt
image: registry.kzntsv.site/pilonuxt:3622662 image: registry.kzntsv.site/pilonuxt:961a838
restart: unless-stopped restart: unless-stopped
environment: environment:
NODE_ENV: production NODE_ENV: production