diff --git a/.tasks/STATUS.md b/.tasks/STATUS.md index ea15944..4094b38 100644 --- a/.tasks/STATUS.md +++ b/.tasks/STATUS.md @@ -1346,7 +1346,7 @@ tandemmebel-staging (стек 20) потеряет featured-вотермарк --- -## ⚪ [tandemmebel-deploy-snolla-0-42-0] — Раскатить прод tandemmebel на `@snollajs/snolla@0.42.0` (core 0.24.0 / data 0.14.1) — engine-chain-обновление: перепил viewModel-навигации на единый ленивый cross-entity граф (EntityDrop/IndexDrop + декларативный GRAPH-реестр, includeX-запекание выпилено) + blog-вертикаль (blogAuthor / blog.archives / date-archive страницы) + path-фиксы. Всё TDD, опубликовано в registry, byte-verified двумя живыми консюмерами: artmone 17/17 byte-identical, tandemmebel 199/199 роутов Ф3-регресс 0 diff. Dev-source: `victor/snolla`, сессия 2026-07-04, трек `viewmodel-graph-full-platform`. Оператор деплой одобрил (workshop ратифицировал 2026-07-04). +## 🔵 [tandemmebel-deploy-snolla-0-42-0] — Раскатить прод tandemmebel на `@snollajs/snolla@0.42.0` (core 0.24.0 / data 0.14.1) — engine-chain-обновление: перепил viewModel-навигации на единый ленивый cross-entity граф (EntityDrop/IndexDrop + декларативный GRAPH-реестр, includeX-запекание выпилено) + blog-вертикаль (blogAuthor / blog.archives / date-archive страницы) + path-фиксы. Всё TDD, опубликовано в registry, byte-verified двумя живыми консюмерами: artmone 17/17 byte-identical, tandemmebel 199/199 роутов Ф3-регресс 0 diff. Dev-source: `victor/snolla`, сессия 2026-07-04, трек `viewmodel-graph-full-platform`. Оператор деплой одобрил (workshop ратифицировал 2026-07-04). ## Топология — РЕШЕНА оператором: пересборка staging ДО cutover (вариант A) Оператор: «пусть всё переебашит с новыми версиями пакетов до cutover». Значит: @@ -1375,9 +1375,10 @@ tandemmebel-staging (стек 20) потеряет featured-вотермарк **Разрешения:** интерны: нет | автопуш: н/д (ops). **weight:** needs-human (боевой деплой живого сайта + engine-ядро) -**Status:** ready -**Where I stopped:** (not started) — ops-handoff из .workshop по одобрению оператора 2026-07-04; топология = A (staging-rebuild до cutover), ратифицирована -**Next action:** Пересобрать VDS-staging образ tandemmebel на 0.42.0-чейне (новые версии пакетов), затем pre-deploy SSR-чек /projects → 200, затем completeness-DoD на новом образе +**Status:** blocked +**Blocker:** консюмер `tandemmebel.ru` не бампнул пин `@snollajs/snolla` 0.40.0→0.42.0. origin/master `9fa30a7` пинит **0.40.0** (package.json+yarn.lock), ни один реф не содержит 0.42/0.24. Движок snolla 0.42.0 опубликован (snolla-репо `bcee2d4`), но образ собирается из tandemmebel.ru (`git archive `) — собирать 0.42.0 не из чего. Запрос на пуш бампа отправлен dev-source (victor/snolla inbox, 2026-07-04T20:08Z). +**Where I stopped:** проверил репо-провенанс — 0.42.0 движок опубликован, но консюмер-пин НЕ запушен. Заблокировал, запросил у dev-source коммит-бамп tandemmebel.ru + sha. +**Next action:** дождаться от dev-source sha коммита с пином 0.42.0 в tandemmebel.ru origin → fetch → собрать образ на VDS → pre-deploy SSR /projects→200 → completeness-DoD на новом образе **Branch:** n/a **Notify:** OpeItcLoc03/workshop diff --git a/.tasks/tandemmebel-deploy-snolla-0-42-0.md b/.tasks/tandemmebel-deploy-snolla-0-42-0.md new file mode 100644 index 0000000..e856cd3 --- /dev/null +++ b/.tasks/tandemmebel-deploy-snolla-0-42-0.md @@ -0,0 +1,29 @@ +# tandemmebel-deploy-snolla-0-42-0 + +## Goal +Пересобрать VDS-staging образ tandemmebel на движке `@snollajs/snolla@0.42.0` (core 0.24.0 / data 0.14.1) — суперсидит ранее принятый 0.16.2-staging (`b02ca18`). Топология = вариант A (оператор): пересборка staging ДО cutover, прод не трогаем in-place. Прод-флип остаётся тем же DNS-gated событием (reg.ru→89.253.255.94, хозяин сайта) из paused `[tandemmebel-web-vds-deploy]`. Этот таск готовит образ + перепрогоняет гейты. + +## Key files +- `~/projects/tandemmebel.ru/apps/web/package.json:12` — пин `@snollajs/snolla` (сейчас 0.40.0, нужен 0.42.0) +- `~/projects/tandemmebel.ru/deploy/Dockerfile` — multi-stage node:22-slim build +- `host-stacks/vds-kzntsv/tandemmebel.compose.yml` — Portainer стек 20, source-of-truth (staging-host; боевые Host() только в cutover-комменте) +- `.wiki/concepts/labtools.pro-vds-deploy-runbook.md` — рунбук-зеркало + +## Decisions log +- 2026-07-04: **BLOCKED на входе.** Проверил репо-провенанс: snolla-репо на 0.42.0 (`bcee2d4`, опубликовано), НО tandemmebel.ru origin/master `9fa30a7` пинит `@snollajs/snolla 0.40.0` — консюмер-бамп 0.40→0.42 не закоммичен/не запушен (ни один реф не содержит 0.42/0.24). Byte-verify «199/199 на 0.42.0» из тела таски гонялся против непушнутого локального бампа. Запросил у dev-source (victor/snolla inbox) коммит-бамп + sha. Peer-дисциплина: заявленный state таски ≠ реальность репо → репорт оператору, не проглатывать. +- 2026-07-04: Топология A ратифицирована оператором+workshop. Cutover остаётся DNS-gated (внешнее событие). + +## Open questions +- [ ] Опубликован ли `@snollajs/snolla@0.42.0` в verdaccio/registry так, что `yarn install` в docker-build его резолвит? (snolla commit говорит «published» — проверить при build) +- [ ] Развести с paused `[tandemmebel-web-vds-deploy]` — пометить старый пин суперсиженным, не плодить два конкурирующих образа. + +## Completed steps +- [x] Вызваны обязательные скилы (using-tasks, project-discipline, using-vds-ops). +- [x] Репо-провенанс проверен — блокер выявлен (консюмер-пин не запушен). +- [x] Запрос на пуш бампа отправлен dev-source (victor/snolla). + +## Notes +- Acceptance (из тела таски на борде): (1) pre-deploy SSR `/projects`+blog-listing → 200 не 500 (новые SELECT-колонки); (2) completeness-DoD перепрогнать на НОВОМ 0.42.0-образе (188 URL + gallery grid 15 роутов), не наследовать GREEN с 0.16.2; (3) archive-страницы НЕ блокер (projects archivesPath=""); (4) rollback наготове. +- Build-рецепт: `git -C ~/projects/tandemmebel.ru archive | ssh vitya@89.253.255.94 tar -x`; `docker build -f deploy/Dockerfile --build-arg VERDACCIO_TOKEN -t registry.kzntsv.site/tandemmebel: . && push`. Portainer PUT/POST через curl -X + node (НЕ PS Invoke-RestMethod). +- Smoke гнать С VDS (воркстейшн ловит LAN-DNS-перехват прод-доменов). +- Notify: OpeItcLoc03/workshop (оркестратор) + heads-up victor/snolla (dev-source).