From 8f72f1fffd7a7b19dfb48715d6f0eaa22892259c Mon Sep 17 00:00:00 2001 From: vitya Date: Thu, 18 Jun 2026 23:08:34 +0300 Subject: [PATCH] =?UTF-8?q?meta(tasks):=20deploy-pilorama=20=E2=80=94=20sh?= =?UTF-8?q?arp=20FIXED=20(admin),=20behind=20it=20snolla=200.17=20ecommerc?= =?UTF-8?q?e=20getSiteById=20blocker?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Dockerfile runner now copies @img (incl sharp-libvips-linux-x64) into .output; verified SHARP_OK in container. Redeploy: sharp gone, but products 500 from getSiteById findByPk undefined on snolla 0.17 ecommerce route (pages route OK). Rolled back to 19a4a84 (all 200). Remaining blocker = snolla/peer zone. Co-Authored-By: Claude Opus 4.8 (1M context) --- .tasks/STATUS.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.tasks/STATUS.md b/.tasks/STATUS.md index 66a3138..32f4926 100644 --- a/.tasks/STATUS.md +++ b/.tasks/STATUS.md @@ -823,11 +823,14 @@ Approach ратифицирован человеком (вариант A): ко **Blocker:** Рантайм-регресс в snolla-пакетах из монореп-лока. `apps/web` тянет `@snollajs/content-api@^0.11.0`, который nested-депом подтягивает **`@snollajs/snolla@0.11.0`** (рядом с прямым `@snollajs/snolla@0.16.0`). content-api зовёт `SitesService.getSiteById` из 0.11.0 → `Cannot read properties of undefined (reading 'findByPk')` (Sites Sequelize-модель не инициализирована) → весь SSR 500. **Откатил прод на `19a4a84` (verified 200).** Фикс версий snolla — зона web/snolla-владельца (пир + snolla upstream), не ops. Артефакты сборки (новый `apps/web/Dockerfile` + root `.dockerignore`) лежат в рабочем дереве монорепы, готовы к коммиту после фикса депов. **Update 2026-06-18 (2):** Пир снял snolla-блокер (commit `eaee56f`: content-api@0.12 peerDep + snolla@^0.17 + vue→3.5.38). Пересобрал из `eaee56f`, задеплоил → **snolla-500 ушёл, home/категории 200 с верным SEO** (`/catalog/planken` → title «Планкен прямой и скошенный — купить в СПб» ✓). **НО новый блокер:** `sharp` нативный libvips не бандлится в Nitro `.output` (`libvips-cpp.so.8.18.3: cannot open shared object`) → товарный листинг `/snolla/stores/.../products` 500 → каталог не грузит товары. Платформо-зависимо (локальный prod-бандл пира на его ОС грузит sharp). **Откатил прод на `19a4a84` снова (home 200 + products 200, каталог жив).** sharp приехал с бампом депов — старый 19a4a84 нативных модулей не имел. **Blocker (актуальный):** `sharp`/libvips не попадает в standalone Nitro output. Шов: ПОЧЕМУ sharp в товарном пути = поведение snolla/content-api; КАК забандлить = `apps/web` `nuxt.config` (nitro traceInclude/externals) ИЛИ runner-стейдж Dockerfile (скопировать `@img/sharp-*` нативы в `.output`). Образ `eaee56f` в реестре (не рабочий из-за sharp). -**Next action:** решить владельца sharp-фикса (admin Dockerfile-bundling vs пир nuxt.config) → пересобрать → повторить деплой (рецепт отлажен, ~10 мин). +**Update 2026-06-18 (3):** sharp-фикс СДЕЛАН (admin, Dockerfile-side): runner-стейдж копирует `/app/node_modules/@img` (вкл. `sharp-libvips-linux-x64` с `libvips-cpp.so.8.18.3`) в `.output/server/node_modules/@img`. Verified в контейнере: `import sharp → toBuffer()` = SHARP_OK. Пересобрал+задеплоил → sharp из лога ушёл. **НО за sharp вскрылся СЛЕДУЮЩИЙ блокер:** `getSiteById findByPk undefined` опять, теперь в snolla **0.17** (`@snollajs/snolla/lib/services/sites.js:21`) на **ecommerce-роуте** (`content-api/routes/ecommerce.js:304`) → `/snolla/stores//products` 500. При этом pages-путь работает: `/` и `/catalog/planken` = 200 c SEO, viewModel ок. Т.е. Sites-модель доступна на pages-роуте, но не на ecommerce — snolla-0.17-внутренности. Был замаскирован sharp'ом (тот падал первым на том же роуте). **Откатил прод на `19a4a84` (все 200, каталог жив).** +**Blocker (актуальный):** snolla 0.17 — `getSiteById` падает на ecommerce-роуте (Sites-модель undefined именно там; pages-роут ок). Зона пира/snolla. Локальный «товар 200» пира — видимо product-detail (viewModel), а не store-products-листинг; нужен прогон именно `/snolla/stores//products` в контейнере. sharp (моя часть) закрыт; Dockerfile-фикс ждёт в дереве монорепы (`M apps/web/Dockerfile`, не закоммичен). +**Next action:** пир/snolla: починить `getSiteById` на ecommerce-роуте snolla 0.17 → я коммичу sharp-Dockerfile + обновляю docker-deploy.md → пересобрать `@HEAD` → повторить деплой (рецепт отлажен, ~10 мин, sharp уже решён). **Branch:** n/a **Notify:** victor/pilorama98.ru + ---