deploy(labtools.ru+emspb): LIVE на snolla 0.42.1 — in-place bump живого прода (стеки 17/18)

Тираж 0.42.1, оператор дал отмашку на боевой apply. Оба = редеплой ЖИВОГО
прода in-place (не greenfield), acceptance на новом образе С VDS ДО swap.

- labtools.ru: labtools:566d41c (0.28.2→0.42.1). Sitemap 38 page-locs
  (0.42.1 починил дефицитный sitemap: sections 1→6, products 2→24),
  order-фикс plg-20,plg-12,plg-25,pgr-10 == прод, 0 потерь контента.
  Live-smoke GREEN, TLS не тронут. Rollback labtools:43e28ba.
- emspb.ru: emspb:95a5c42 (0.28.4→0.42.1). 29 sitemap-роутов все 200,
  0 потерь. Live-smoke GREEN. TLS SAN-серт валиден. Rollback emspb:b6e361a.

Compose source-of-truth обновлён на новые теги. Оба прога квитированы.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-05 11:59:07 +03:00
parent 5e1b0b2538
commit 55a873731f
4 changed files with 20 additions and 15 deletions

View File

@@ -7,11 +7,14 @@ session_id: 2026-07-04-tandemmebel-deploy-snolla-0-42-0
## Итог: тираж snolla — 2 сайта на staging GREEN (tandemmebel + kupimknigi), ЕЩЁ 3 в полёте, оба готовых ждут DNS-отмашку
### ⏳ ВХОДЯЩИЕ 2026-07-05 (workshop heads-up): ещё 3 сайта на 0.42.0
Тираж НЕ завершён. Оператор велел бампнуть на 0.42.0 ещё 3 сайта — прогеры сами заведут deploy-таски `[<site>-deploy-snolla-0-42-0]` НАПРЯМУЮ в этот борд (не через workshop). **Notify этих тасок = сам сайт** (репортить прогу), не workshop. Жди 3 входящих, это НЕ дубли:
- **`labtools.ru`** — редеплой с 0.28.2. ⚠️ УЖЕ CUTOVER'НУТ на VDS (2026-07-02, стек 17, боевой `Host(labtools.ru)` активен) → «редеплой» = обновление ЖИВОГО прода in-place (не staging-first). Класс риска = needs-human: pull-образ + смена тега на живом стеке, rollback=предыдущий тег. Уточнить с оператором ПЕРЕД боевым apply.
- **`labtools.pro`** — первый деплой (стек 19 labtools-pro существует — проверить draft/placeholder).
- **`emspb.ru`** — редеплой (стек 18 emspb существует).
### ✅ ТИРАЖ 0.42.1 — 2 из 3 live-редеплоев ЗАКРЫТЫ (2026-07-05, оператор дал отмашку «хуярь деплой + пуш»)
⚠️ **ЦЕЛЬ БАМПА = snolla `0.42.1`** (не 0.42.0). Все три сайта = редеплой ЖИВОГО прода in-place (не greenfield). Класс: needs-human, но оператор разрешил боевой apply этой сессией.
- **`labtools.ru`** — 🟢 **DONE.** Стек 17, образ `labtools:566d41c` (0.28.2→0.42.1). Acceptance С VDS на новом образе: sitemap 38 page-locs (0.42.1 починил дефицитный sitemap sections 1→6/products 2→24), order-фикс `plg-20,plg-12,plg-25,pgr-10` == прод, 0 потерь контента. Live-smoke зелёный, TLS не тронут. Rollback тег `labtools:43e28ba`. Прог квитировал.
- **`emspb.ru`** — 🟢 **DONE.** Стек 18, образ `emspb:95a5c42` (0.28.4→0.42.1). Acceptance С VDS: 29 sitemap-роутов все 200, 0 потерь. Live-smoke зелёный. TLS = SAN-серт (CN косметически staging-хост, но SAN покрывает emspb.ru/www, curl validates). Rollback тег `emspb:b6e361a`.
- **`labtools.pro`** — ⏳ **ЖДЁМ.** Deploy-таска ещё НЕ прилетела (прог `blocked` был на liquid-фиксе). УЖЕ CUTOVER'НУТ на VDS (стек 19 `labtools-pro`, образ `labtools-pro:7bd9fae`, snolla 0.28.7). Редеплой in-place → 0.42.1, тот же паттерн: build на VDS → acceptance-gate С VDS (каталог! порядок изделий by list_priority) → PUT стека 19 env-preserve → live-smoke. Rollback `labtools-pro:7bd9fae`/DNS→RUVDS. Рунбук: `.wiki/concepts/labtools.pro-vds-deploy-runbook.md`.
**Рецепт live-редеплоя (отработан на labtools.ru+emspb):** `git -C ~/projects/<site> archive <sha> | ssh vitya@89.253.255.94 tar -x -C ~/build/<site>``VERDACCIO_TOKEN=<pass> docker build -f deploy/Dockerfile --build-arg VERDACCIO_TOKEN -t registry.kzntsv.site/<img>:<sha> . && push` → throwaway-staging из env живого стека (`docker inspect <c> --format {{.Config.Env}}``--env-file`, порт 127.0.0.1:50XX) → completeness-gate С VDS (expand sitemap-индекс → реальные page-locs, статус на новом образе + content-not-lost vs прод-оракул) → PUT стека через `scratchpad/put-stack.js` (env preserve, `META=/tmp/stNN.json`, swap тега) → wait healthy → live-smoke боевого домена. Notify = сам сайт.
---

View File

@@ -1394,7 +1394,7 @@ tandemmebel-staging (стек 20) потеряет featured-вотермарк
---
## [labtools-ru-deploy-snolla-0-42-1] — Обновить ЖИВОЙ прод labtools.ru на VDS (Portainer стек 17) с `@snollajs/snolla@0.28.2` → **0.42.1** in-place. Резолвимый sha бампа: **`566d41c`** (origin/master victor/labtools.ru; пин 0.42.1 + yarn.lock → core 0.24.1 / data 0.14.1 / liquid 0.10.2). Суперсидит пин 0.28.2 из `[labtools-web-vds-deploy]`.
## 🟢 [labtools-ru-deploy-snolla-0-42-1] — Обновить ЖИВОЙ прод labtools.ru на VDS (Portainer стек 17) с `@snollajs/snolla@0.28.2` → **0.42.1** in-place. Резолвимый sha бампа: **`566d41c`** (origin/master victor/labtools.ru; пин 0.42.1 + yarn.lock → core 0.24.1 / data 0.14.1 / liquid 0.10.2). Суперсидит пин 0.28.2 из `[labtools-web-vds-deploy]`.
⚠️ **labtools.ru УЖЕ cutover'нут на VDS** (2026-07-02, боевой `Host(labtools.ru)` на стеке 17). Это **обновление ЖИВОГО прода in-place** (pull новый тег → смена тега на живом стеке 17 → rollback = предыдущий тег), **НЕ staging-first, НЕ DNS-флип** (домен уже на VDS).
@@ -1425,12 +1425,13 @@ tandemmebel-staging (стек 20) потеряет featured-вотермарк
**weight:** needs-human — live-prod in-place: админ подтверждает боевую подмену тега с оператором ДО apply, НЕ автономно.
**notify:** victor/labtools.ru (репорт мне; deploy-петля минует workshop).
**Status:** ready
**Where I stopped:** (not started)
**Next action:** Собрать VDS-образ labtools.ru на sha `566d41c` (snolla 0.42.1) → registry.kzntsv.site. НЕ подменять живой стек 17 до re-прогона completeness+catalog-parity на НОВОМ образе и подтверждения оператором.
**Status:** 🟢 done — 2026-07-05. labtools.ru LIVE на snolla 0.42.1, стек 17, образ `registry.kzntsv.site/labtools:566d41c` (digest `ea0649a…`). Оператор дал отмашку на боевой apply (+пуш).
**Where I stopped:** GREEN. Собрал `labtools:566d41c` на VDS (BUILD_EXIT=0, secret-guard: config/default.json ABSENT, VERDACCIO_TOKEN build-only). Acceptance на НОВОМ образе (throwaway-staging из env живого стека 17, С VDS против прод-оракула): (1) **completeness** — новый sitemap = **38 page-locs** (7 pages+1 static+6 sections+24 продукта), все 37×200 + 1×301(→200, `/products/laboratory-ball-mills`→`/lshm-750`, идентично проду); (2) **content-not-lost** — 11 реальных prod-страниц 0 потерь; (3) **order-fix 0.42.1** — presses = plg-20,plg-12,plg-25,pgr-10 == прод. NB: старый прод 0.28.2 sitemap был дефицитным (sections=1, catalog=2) — 0.42.1 отдаёт полную корректную структуру (per-category product-sitemaps).
**Next action:** — (закрыто). Боевой swap выполнен: PUT стека 17 (env 8/8 сохранён, pullImage=true) → контейнер healthy на 566d41c → **live-smoke labtools.ru зелёный** (/,robots,about,contacts,presses=200; order фикс вживую; sitemap 38; TLS-серт CN=labtools.ru Jul2→Sep30 не тронут, без LE-churn). Rollback = тег `labtools:43e28ba` (0.28.2, в registry) / стек 17 PUT назад. RUVDS 80.64.31.36 = внешний rollback (не тронут). Compose source-of-truth обновлён на 566d41c.
**Branch:** master
**Notify:** victor/labtools.ru
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: victor/labtools.ru / 2026-07-05T08:31:44.377Z -->
<!-- closed-by: vitya@.admin-exec / 2026-07-05 / live-prod in-place bump 0.28.2→0.42.1, operator-approved, acceptance GREEN, live-smoke GREEN -->
---
@@ -1513,12 +1514,13 @@ tandemmebel-staging (стек 20) потеряет featured-вотермарк
**weight:** needs-human (in-place обновление ЖИВОГО прод-контейнера; прошлая emspb-VDS-деплой-таска = needs-human).
**notify:** victor/emspb.ru (репортить НАПРЯМУЮ мне, минуя workshop).
**Status:** ready
**Where I stopped:** (not started) — консюмер-бамп запушен `victor/emspb.ru@95a5c42`, dev-верификация GREEN, образ ждёт сборки на VDS.
**Next action:** Собрать на VDS из git-archive 95a5c42 → registry.kzntsv.site/emspb:95a5c42 → healthy → completeness-gate на образе С VDS → боевой swap тега на стеке 18 С ПОДТВЕРЖДЕНИЯ ОПЕРАТОРА → rollback b6e361a наготове.
**Branch:** n/a
**Status:** 🟢 done — 2026-07-05. emspb.ru LIVE на snolla 0.42.1, стек 18, образ `registry.kzntsv.site/emspb:95a5c42` (digest `d6299cf…`). Оператор дал отмашку на боевой apply (+пуш).
**Where I stopped:** GREEN. Собрал `emspb:95a5c42` на VDS (BUILD_EXIT=0, secret-guard OK). Acceptance на НОВОМ образе (throwaway-staging из env стека 18, С VDS против прод-оракула): completeness — **29 sitemap-роутов все 200** (0 non-2xx/3xx), content-not-lost 29/29 (0 потерь), ключевые страницы 200. Sitemap не реструктурировался (29==29, в отличие от labtools).
**Next action:** — (закрыто). Боевой swap: PUT стека 18 (env 8/8 сохранён, pullImage=true) → контейнер healthy на 95a5c42 → **live-smoke emspb.ru зелёный** (/,robots,contacts=200; sitemap 29). TLS OK: SAN-серт покрывает emspb.ru/www.emspb.ru/emspb.vds.kzntsv.site (CN косметически=staging-хост, но curl validates sslverify=0; серт с cutover 07-02, swap не тронул). Rollback = тег `emspb:b6e361a` (0.28.4) / стек 18 PUT назад / RUVDS 80.64.31.36. Compose source-of-truth обновлён на 95a5c42.
**Branch:** master
**Notify:** victor/emspb.ru
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: victor/emspb.ru / 2026-07-05T08:35:56.737Z -->
<!-- closed-by: vitya@.admin-exec / 2026-07-05 / live-prod in-place bump 0.28.4→0.42.1, operator-approved, acceptance GREEN, live-smoke GREEN -->
---