feat(labtools.pro): v3 cutover LIVE — snolla 0.42.1→0.43.2 (aws-sdk v2→v3)

4-й сайт тиража v3 (on-snolla, kupimknigi, labtools.ru, labtools.pro — 4/6 GREEN).
Stack 19 image 0610432→a106622, env 8/8 preserved, mem_limit 512m.

Staging :5081 parity-gate GREEN: theme lato.css 200 9994B md5-identical
(v3 aws-sdk v3 S3-direct read из vds MinIO 2025), sitemap 7 детей == live,
order-parity press-forms 12 изделий, / 4-байт diff = og:url/og:image
request-host (benign). Live smoke GREEN, TLS CN=labtools.pro не тронут.
Rollback = labtools-pro:0610432 (0.42.1, жив в registry).

Compose source-of-truth + runbook v3 секция + handoff обновлены.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-07-30 17:36:36 +03:00
parent ff87bc5205
commit c3c79b996a
4 changed files with 41 additions and 11 deletions

View File

@@ -1,14 +1,23 @@
---
_last_updated_: 2026-07-30T14:30:00Z
session_id: 2026-07-30-labtools-v3-cutover
prev_session_id: 2026-07-30-kupimknigi-v3-cutover
_last_updated_: 2026-07-30T17:35:00Z
session_id: 2026-07-30-labtools-pro-v3-cutover
prev_session_id: 2026-07-30-labtools-v3-cutover
---
# Next session handoff
## Предыдущая сессия — kupimknigi.spb.ru v3 cutover. ЗАВЕРШЁН ✅
## Эта сессия — labtools.pro v3 cutover. ЗАВЕРШЁН ✅
## Эта сессия — labtools.ru v3 cutover. ЗАВЕРШЁН ✅
4-й сайт тиража v3 (после on-snolla, kupimknigi, labtools.ru). Тот же паттерн, отработан чисто. **4/6 GREEN.** labtools.pro = English-twin (`Culture=en`) labtools.ru, отдельный репо `victor/labtools.pro`, image name `labtools-pro` (НЕ `labtools`), стек 19.
### Что сделано
- **Bump:** `@snollajs/snolla 0.42.1→0.43.2` в `apps/web/package.json` (commit `12f8992`) + resolutions-блок в root `package.json` (verbatim labtools.ru) + реген `yarn.lock` (commit `a106622`, single `@smithy/signature-v4@5.3.11` deduped). Pushed victor/labtools.pro master `6c7ea88..a106622`. Endpoint fix `6c7ea88` (s3.endpoint→minio.vds.kzntsv.site) был в master с 2026-07-29, но в бегущем образе `0610432` (v2) его не было — v3 cutover заодно перевёл S3-direct read на vds minio.
- **Build на VDS:** `git archive a106622``~/build/labtools-pro``docker build -f deploy/Dockerfile --build-arg VERDACCIO_TOKEN``registry.kzntsv.site/labtools-pro:a106622` (+latest), digest `2152642c4b17`, 476MB, EXIT=0.
- **Staging :5081 parity-gate GREEN:** throwaway контейнер из env живого стека 19 (8 секретов). `/`+nav+catalog = 4-байт diff = `og:url`/`og:image` request-host (`localhost:5081` vs `www.labtools.pro`, benign → byte-identical post-cutover). Redirects IDENT, robots/sitemap IDENT (7 детей == live), **theme `lato.css` 200 9994B md5-identical** (v3 aws-sdk v3 S3-direct read из vds MinIO 2025), order-parity press-forms 12 изделий identical. Всё 200/3xx.
- **Portainer PUT stack 19 LIVE:** node in-memory `put-stack` (НЕ PS), env 8/8 preserved, `prune:false pullImage:true mem_limit 512m`. PUT 200. Контейнер `a106622` healthy сразу. Source-of-truth compose синхронно закоммичен (admin `0610432``a106622`).
- **Live smoke GREEN:** `/` 200 12736B, `/about`+`/contacts` 200, robots/sitemap 200 (7 детей 200), 3 каталог-секции 200, продукты 200, theme `lato.css` 200 9994B (v3 S3-direct), redirects parity, apex `labtools.pro` 200. TLS CN=labtools.pro не тронут (LE до Sep 30). `/clients`+`/cookie`+`/privacy`→404 = ожидаемо (не в sitemap .pro; real nav = `/ /about /contacts`). **Rollback = `0610432`** (v2 0.42.1, жив в registry).
## Предыдущая сессия — labtools.ru v3 cutover. ЗАВЕРШЁН ✅
Третий сайт тиража (после on-snolla + kupimknigi). Тот же паттерн, отработан чисто. 3/6 GREEN.
@@ -72,17 +81,18 @@ snolla опубликовала v3, admin зарезал боевой cutover.
## Open треки
| Трек | Готовность | Entry-point |
|---|---|---|
| **B3 v3 — labtools.ru** | ✅ LIVE 2026-07-30 | эта сессия — см. ↑ §Эта сессия |
| **B3 v3 — labtools.pro** | ✅ LIVE 2026-07-30 | эта сессия — см. ↑ §Эта сессия |
| **B3 v3 — labtools.ru** | ✅ LIVE 2026-07-30 | prev session |
| **B3 v3 — kupimknigi** | ✅ LIVE 2026-07-30 | prev session |
| **B3 v3 — on.snolla.com** | ✅ LIVE 2026-07-30 | prev session |
| **B3 v3 — остальные 3 сайта** (labtools.pro/emspb/tandemmebel) | ⏳ TODO — v3-паттерн отработан на 3 сайтах (3 GREEN) | `.wiki/concepts/minio-split-cutover-runbook.md` §B3-v3 + per-site `-vds-deploy-runbook.md` |
| **B3 v3 — остальные 2 сайта** (emspb/tandemmebel) | ⏳ TODO — v3-паттерн отработан x4 (4 GREEN) | `.wiki/concepts/minio-split-cutover-runbook.md` §B3-v3 + per-site `-vds-deploy-runbook.md` |
| MinIO split Track A (books-vds minio 2020→2025) | ⏳ TODO — transparent, отдельно | runbook §Track A |
| MinIO split B4 .NET catch-all админ s3 endpoint | ⏳ TODO — `C:\sites\snolla\Web.config` serviceURL → minio.vds.kzntsv.site | runbook §B4 |
| MinIO split B5 Obsidian Remotely Save endpoint | ⏳ TODO — obsidian бакет смиррорен, можно менять | runbook §B5; memory `obsidian-remotely-save-endpoint-after-mirror` |
| books-task-runner-registry-auth-cred | 🔵 blocked — cred в config-volume, рабочий образ содержит СТАРЫЙ registryGc; тега master-a3734d5 в реестре нет | `.tasks/STATUS.md` §books-task-runner |
## Спроси user'а
- **Следующий сайт = labtools.pro** (user выбрал 2026-07-30, конец этой сессии — НЕ начат, работа в следующей сессии). Стек 19, возможно общий кодбейс с labtools.ru — проверить, можно парой. 3/6 GREEN (on-snolla, kupimknigi, labtools.ru). Остались после: **emspb** (стек 18), **tandemmebel** (стек 20 — был BLOCKED на sharp-staging визуальном дефекте, проверить перед бампом). Паттерн отработан x3: bump `@snollajs/snolla→0.43.2` + resolutions → build на VDS → staging :50XX parity-gate → Portainer PUT env-preserving.
- **Следующий сайт тиража v3** — 4/6 GREEN (on-snolla, kupimknigi, labtools.ru, **labtools.pro**). Остались: **emspb** (стек 18), **tandemmebel** (стек 20 — был BLOCKED на sharp-staging визуальном дефекте, проверить перед бампом). Паттерн отработан x4: bump `@snollajs/snolla→0.43.2` + resolutions + реген `yarn.lock` (иначе Dockerfile `yarn install --immutable` падает) → build на VDS → staging :50XX parity-gate → Portainer PUT (node in-memory `put-stack`, env-preserving). NB: yarn.lock реген — обязателен, на labtools.pro сначала забыл (сборка упала YN0028).
- stostayer v3-трек (0.43.1/0.7.8/0.17.2) — HOLD, snolla-scope, НЕ подхватывать без GO user (snolla ждёт stostayer-specific).
## Не делать (preemptive guards)