meta(handoff): session 2026-07-31 — maljarka restore + variant-cache fix + labtools-cylindrical (→ workshop)

maljarka.tandemmebel.ru восстановлен (7-й сайт, стек 23, LIVE).
variant-cache bucket создан на vds 2025 (shared v3-регрессия sharp-images).
labtools cylindrical product-cards: snolla Linked-item VM bug → handoff victor/snolla
(не v3-регрессия; мой фикс откат, prod не тронут).

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-07-31 10:47:57 +03:00
parent d82361d16d
commit 0346d5243b
2 changed files with 46 additions and 2 deletions

View File

@@ -1,11 +1,54 @@
---
_last_updated_: 2026-07-31T03:20:00Z
session_id: 2026-07-31-maljarka-restore
_last_updated_: 2026-07-31T10:00:00Z
session_id: 2026-07-31-maljarka-restore-variantcache-labtools
prev_session_id: 2026-07-30-tandemmebel-v3-cutover
---
# Next session handoff
## Эта сессия — maljarka restore + variant-cache fix + labtools cylindrical (расследование). ЗАВЕРШЕНА
### 1. maljarka.tandemmebel.ru восстановлен ✅ — 7-й сайт тиража (стек 23) LIVE GREEN
User: «проебали сайт maljarka.tandemmebel.ru». Root cause: .NET MoreThenCms tenant, **не входил в v3 тираж**, остался на RUVDS IIS → потерян при **decomm RUVDS 2026-07-21** (DNS перебросили на VDS, но Host-правила+snolla-app с siteId `A2476738` не было → traefik 404; аудит 21.07 «VDS=200» = false-positive с локального IIS воркстейшна). Восстановлен как Node snolla-app 0.43.2 (клон on.snolla.com → `victor/maljarka.tandemmebel.ru` `7f03d67`, layout.liquid byte-identical рендеру .NET-admin 43730B sha256-match, Reversal тема уже в MinIO, regen yarn.lock под переименованный workspace). Portainer стек **Id 23**, env 8/8 shared, mem_limit 512m, LE issued (CN=maljarka.tandemmebel.ru, до Oct 29). Live smoke GREEN. **Тираж 7/7.** Runbook `.wiki/concepts/maljarka-vds-deploy-runbook.md`. Memory `maljarka-lost-on-ruvds-decomm-restored`.
### 2. variant-cache bucket fix ✅ — shared v3-регрессия (остров sharp-images на 6 сайтах)
maljarka `#portfolio` фото 500 → root cause: v3 minio-split перевёл сайты на vds MinIO 2025, но **`variant-cache` bucket не создали там** (был на books-vds 2020). snolla sharp-pipeline (`variantCache.js` DEFAULT_NAMESPACE=`variant-cache`, `storage.js: bucket=storageClient`) → NoSuchBucket → 500 на ALL sharp gallery-images **всех 6 v3 сайтов с 2026-07-30** (gate проверял theme CSS из `themes` bucket (themeFiles, без sharp), не gallery-image URLs — пропустил). Fix: `mc mb vds/variant-cache` (пустой, кэш регенерируем — миграция старых entries НЕ нужна). maljarka portfolio 34/34 → 200 image/webp, tandemmebel logs NoSuchBucket ушли. **minio-split Track A gap.** Memory `variant-cache-bucket-missing-on-vds-2025`. Runbook `maljarka-vds-deploy-runbook` §Гочи + `minio-split-cutover-runbook`.
### 3. labtools.ru/products/press-forms/cylindrical — пустые product-cards. РАССЛЕДОВАНИЕ → workshop (victor/snolla)
User: «куда картинки делись?» на cylindrical. Найдено:
- **НЕ v3-регрессия** — v2 (0.42.1, образ `566d41c`) тоже отдаёт пустые карты (throwaway-staging проверил).
- **Pre-existing template + snolla-VM баг**: `cylindrical.liquid` — единственный шаблон использует accessor `{% assign product = product_link.product.item %}` (Linked-item viewModel, .NET-паттерн). Остальные 8 шаблонов (accessories/presses/milling_bowl/pet_film/…) используют прямой `{% for product in product_list %}``product.path` (работает).
- Эмпирически: прямой `product` даёт `title` («Пресс-форма»), но `path`/`list_image` пустые; `product_link.product.item` даёт всё пусто. Из кода `catalogCategory.products``catalogProductList``getProductViewModel` напрямую возвращает product-VM с `path`/`title`/content-полями (`list_image` — content-field из `fillViewModel`).
- **Вывод user'а (владельца архитектуры): snolla неправильно рендерит viewModel типа Linked item.** Фикс на стороне workshop (victor/snolla) — не infra.
- **Мой фикс (прямой `product`) откат** — коммиты `5ae87fd` (фикс) + `ec9eb1e` (revert) в `victor/labtools.ru` master, gitea чист (оригинал `0dc0b4e`). Prod stack 17 НЕ тронут (0dc0b4e, healthy). Staging-контейнер + образ 5ae87fd вычищены, `latest` retag на 0dc0b4e.
- **Handoff workshop:** snolla Node не резолвит Linked-item accessor `product_link.product.item` (работал в .NET). Воспроизведение: `https://labtools.ru/products/press-forms/cylindrical` — product-cards с пустыми href/src (v2 тоже). Каталог=Catalog (не Store). `.NET-шаблон был правильный` (по владельцу) — snolla должен поддержать Linked-item VM. Файл-якорь: `victor/labtools.ru/apps/web/views/cylindrical.liquid:30-31`.
### Спроси user'а
- maljarka восстановлена, variant-cache починен, labtools-cylindrical передан workshop (victor/snolla). Что дальше? Открытые треки: MinIO split Track A (books-vds 2020→2025 full migration — variant-cache bucket создан, остальное TODO). `on-snolla-vds-migration` task в .tasks помечен ⚪ ready, но on.snolla LIVE с 07-20 — обновить на closed.
### Не делать (preemptive guards)
- **decomm-audit smoke = targeted host/VDS**, не воркстейшн с локальным catch-all (false-positive «VDS=200»).
- **yarn.lock workspace-rename** — переименование root/app package требует regen yarn.lock.
- **variant-cache bucket** — при minio endpoint-flip проверять ВСЕ runtime-buckets (`galleries`/`themes`/`assets`/`variant-cache`); gate должен хитить gallery-image URL (sharp), не только theme CSS.
- НЕ PS для Portainer (кириллица), НЕ push в docker.stostayer.ru:443, НЕ git clone на VDS (archive+scp). Креды → pass.
### Коммиты сессии (.admin)
- `494b1010` feat(maljarka): restore as 7th snolla site (stack 23) — compose+runbook+STATUS+index
- `22f9748b` meta(handoff): maljarka restore session
- `d82361d1` fix(minio-split): create variant-cache bucket on vds 2025
- (этот хэндофф)
### Коммиты victor/labtools.ru (расследование, оба откат)
- `5ae87fd` fix(cylindrical) — откат `ec9eb1e` (gitea master = оригинал 0dc0b4e)
### Memory updates сессии
- `maljarka-lost-on-ruvds-decomm-restored`
- `variant-cache-bucket-missing-on-vds-2025`
---
## (prev) maljarka restore — см. выше (этот же файл, секция выше)
## Эта сессия — восстановление maljarka.tandemmebel.ru (7-й сайт тиража). ЗАВЕРШЁН ✅ — LIVE GREEN
User: «Мы где-то в тираже или раньше проебали сайт https://maljarka.tandemmebel.ru/. Давай найдем и попробуем восстановить». Полный тираж (по on-snolla Task B паттерну).