chore(ops): pilonuxt restart done — NOT cache, core 500 on new products (reported to proger)

This commit is contained in:
2026-08-16 11:51:51 +03:00
parent 694a4a961b
commit ac64724179

View File

@@ -1,4 +1,5 @@
# Admin Task Board
_Updated: 2026-08-16 (5) — 🔴 **[pilonuxt-restart-new-products-500] рестарт НЕ помог — серверный краш.** По запросу прогера (письмо 09:05Z): залил 10 новых товаров через loader (скандинавская доска, имитация бруса поднятый ворс, рейки скрытые), просил рестартнуть стек 16 для подхвата. Рестарт выполнен (Portainer, контейнер running, uptime 2s). Verify: `/catalog/skandinavskaya-doska` + `/catalog/imitaciya-brusa` → HTTP 200, но **500 внутри** (NuxtError, `Request failed with status code 500`); остальные категории (doska/brus/brusok/reyka/terrasnaya-doska) + `/` целы. Логи: `TypeError: Cannot read properties of undefined (reading 'name')` в `@snolla/core viewModels/index.js:419` (`_.find(x=>x.name)` на undefined) через `getProductViewModel` — missing-field у нового товара из заливки, НЕ кэш. Отписано прогеру с уликами (09:15Z); ждём фикс данных/кода → деплой или рестарт по его отмашке._
_Updated: 2026-08-16 (4) — 🟢 **[deploy-pilonuxt-catalog-img-fix-2] DONE.** Фикс прогера `f876e70` (origin/master, 1 файл `categories.json`): оставшиеся 3 плейсхолдера каталога заменены эталонными imgproxy-фото из CMS (list_image → 800×800) — Доска обрезная `ylD4trDVXa…` (было `/images/1.webp`), Доска строительная `qqUyT37cNrf…` (`/images/2.webp`), Брус/брусок/рейка `CGyNTUwB7iY…` (`/images/3.webp`). Build из монорепы, push напрямую, Portainer PUT стек 16 (`pullImage:true`, Env:0). Verify мимо LAN-DNS: `/catalog` 200 + `/` 200, `src=/images/[123].webp`**0 вхождений**, 25 imgproxy-refs, все 3 новых фото на месте; регресс `/services` 200, `/services/building` 404, `/catalog/brus` 200, `/catalog/antiseptirovannye-pilomaterialy` 200. Заглушки каталога закрыты полностью. Откат: стек 16→`24a13da`. Source-of-truth compose актуализирован (`f876e70`).
_Updated: 2026-08-16 (3) — 🟢 **[deploy-pilonuxt-catalog-img-fix] DONE.** Фикс прогера `24a13da` (origin/master, 1 файл `categories.json`): тайлы «Брус антисептированный» (мета «Брус, брусок, рейка» + «Антисептированные пиломатериалы») переведены с плейсхолдера `/images/2.webp` на imgproxy-фото `TGTqrE8…` (как у «Брус, брусок сухой антисептированный»). Build из монорепы, push напрямую, Portainer PUT стек 16 (`pullImage:true`, Env:0). Verify мимо LAN-DNS: `/catalog` 200, оба тайла `src=/imgproxy/TGTqrE8…`, заглушки нет; `/` 200; оставшиеся 3 плейсхолдера (обрезная 1.webp / строительная 2.webp / брус-брусок-рейка 3.webp) намеренно не тронуты (заметка прогера — заменят при отмашке владельца + эталонные URL); регресс: `/services` 200, `/services/building` 404, `/catalog/brus` 200. Откат: стек 16→`40806b1`. Source-of-truth compose актуализирован (`24a13da`).
_Updated: 2026-08-16 (2) — 🟢 **[deploy-pilonuxt-services-404-fix] DONE.** Фикс прогера `40806b1` (origin/master): `services/[slug].vue``await useAsyncData` до рендера + setup-time `throw createError(404)` вместо lazy `usePage`+watchEffect (мягкий 200 подтверждён прогером локально). Build из монорепы, push напрямую, Portainer PUT стек 16 (`pullImage:true`, Env:0). Verify мимо LAN-DNS: `/services/building`**404** (тело «Услуга не найдена»), `/services/nope` → 404, `/services/painting` → 200, `/` → 200 («каркасн» 0), `/services` → 200, регресс 8 живых услуг все 200. Follow-up на SEO не нужен. Откат: стек 16→`340c0e7`. Source-of-truth compose актуализирован (`40806b1`).