diff --git a/.tasks/NEXT_SESSION.md b/.tasks/NEXT_SESSION.md index 2e7e36f..ad4a206 100644 --- a/.tasks/NEXT_SESSION.md +++ b/.tasks/NEXT_SESSION.md @@ -1,62 +1,47 @@ --- -_last_updated_: 2026-08-05T00:40:00Z -session_id: 2026-08-05-admin-namespace-migration-embed -prev_session_id: 2026-08-04-admin-s2-review +_last_updated_: 2026-08-07T13:00:00Z +session_id: 2026-08-07-admin-flat-fields-wave +prev_session_id: 2026-08-05-admin-namespace-migration-embed --- # Next session handoff ## Главное за сессию -Эпик surface-normalization ЗАКРЫТ. Namespace-миграция ВЫПОЛНЕНА. Admin-api embed в pilonuxt ЗАВЕРШЁН. +Эпик **flat-fields** ЗАКРЫТ. `fields[]` убран — поля в корне объекта. Loader мигрирован. -- **S2+S3 review:** APPROVE (клиент 34/34, сервер 424/424, schema-gen 19/19) -- **Namespace-миграция:** `@snollajs/*` → `@snolla/*`, 14+ пакетов на Verdaccio. Все 8 сайтов бампнуты (7 руками + pilorama98). Stostayer заморожен. -- **Admin-api embed:** pilonuxt `e95d2d9`, `/admin/api/health` 200, стек 25 retire. -- **Loader:** адаптирован под camelCase-wire 0.2.0, dry-run 224/0/224. Ждёт vitya на прод-импорт. - -## Коммиты сессии (в других репо) - -| Репо | SHA | Что | -|---|---|---| -| labtools.ru | `cec15a2` | namespace bump | -| emspb.ru | `2ddd44c` | namespace bump | -| labtools.pro | `45006e2` | namespace bump | -| tandemmebel.ru | `423d1b0` | namespace bump | -| kupimknigi.spb.ru | `af00733` | namespace bump | -| on.snolla.com | `d892053` | namespace bump | -| maljarka.tandemmebel.ru | `7a37c29` | namespace bump | -| pilorama98.ru | `e95d2d9` | embed admin-api + namespace bump | -| pilorama98.ru | `325daa9` | prisma postinstall fix | -| pilorama98.ru | `b3e86db` | loader camelCase adaptation | -| snolla | `d9313e3` | S3 F1/F2 fix | -| snolla | `f37d736` | S2 F1-F3 fix | +- **@snolla/snolla → @snolla/web** — 7 сайтов пересобраны и передеплоены (вторая волна ренеймов) +- **Content-Type гейтинг** — vendor-Accept (`application/vnd.snolla.admin+json`) только для web-админки. Default = корневые поля. Save: `Content` без vendor → 400. +- **fields[] → корневые поля** — admin-api 0.4.0 (read/write flat), client 0.5.2 (index-signature), schema-gen 0.2.1 (генератор flat). Вся тройка published+pushed. +- **Loader → flat root fields** — pilorama98 `0db46e1` в проде. Тесты 105/105. yml_category_id + short_description для required-полей. +- **Content-валидация** — admin-api 0.5.0 published (snolla), НЕ развёрнута на пилораме. ## Open треки | Трек | Готовность | Entry-point | |---|---|---| -| loader прод-импорт | ⚪ ready, ждёт vitya | pilorama98 loader | -| minio-retire старых данных (12G) | окно ~05.08 истекло — уточнить у vitya | из handoff 2026-08-04 | -| kreknin-repair-md3-rebuild | ⚪ ждёт Алексея | `.tasks/kreknin-repair-md3-rebuild.md` | -| P3 imgproxy stack 29 retire / A3 bookva-дубли | опционально | из handoff | +| admin-api 0.5.0 (валидация) → пилорама | published, ждёт волны | бамп в apps/web + деплой | +| yml_category_id — маппинг для YML-фида | эмпирически сверен, нужен production-тест | loader `bin/index.js` + фид | +| Коллизия `description` (контент-поле ↔ колонка) | на snolla/schema-gen | при следующей встрече | +| Loader прод-импорт (живой) | НЕ запускался после 0.4.0 | решение vitya | -## Спросить user'а +## Спроси user'а -- Запускать loader прод-импорт или ждать? -- minio-retire — окно ушло, переносим? -- kreknin — есть ли новости от Алексея? +- Деплоить admin-api 0.5.0 (валидация) на пилораму сейчас или со следующей фичей? +- Запускать живой импорт loader'а через новый flat API? ## Не делать (preemptive guards) -- НЕ деплоить стек 25 — удалён. Admin-api только через pilonuxt `/admin/api`. -- НЕ возвращать admin-api в отдельный контейнер. -- НЕ рассылать директивы другим сессиям без сверки с vitya. -- НЕ ротировать `sk_6a83…`. -- НЕ трогать stostayer (заморожен). +- НЕ слать vendor-Accept из loader'а — это только для web-админки snolla +- НЕ деплоить admin-api 0.5.0 без проверки required-полей (79/229 продуктов были без yml_category_id) +- Portainer PUT: НЕ использовать `Env:[]` — очищает секреты. Всегда fetch + re-supply. +- НЕ ротировать `sk_6a83…` +- НЕ слать директивы другим сессиям без сверки с vitya ## Memory updates за сессию -- `snolla-namespace-wins` — новый: `@snolla` выживает, `@snollajs/*` → `@snolla/*` +- `snolla-namespace-wins` — подтверждён: вторая волна ренеймов (@snolla/snolla→web) - `admin-api-vds-deploy` — обновлён: стек 25 retire, admin-api в pilonuxt -- `no-cross-session-cancels-without-vitya` — подтверждён +- `portainer-env-empty-clears-secrets` — новый: Portainer PUT с Env:[] = потеря всех секретов +- `admin-api-content-gating-vendor-accept` — новый: vendor-Accept = web-admin only, default = flat fields +- `piloruxt-build-needs-generated-dir` — новый: src/generated/ gitignored, нужно scp перед docker build diff --git a/host-stacks/vds-kzntsv/pilonuxt.compose.yml b/host-stacks/vds-kzntsv/pilonuxt.compose.yml index ef60762..9501054 100644 --- a/host-stacks/vds-kzntsv/pilonuxt.compose.yml +++ b/host-stacks/vds-kzntsv/pilonuxt.compose.yml @@ -26,7 +26,7 @@ services: pilonuxt: container_name: pilonuxt - image: registry.kzntsv.site/pilonuxt:2c069de + image: registry.kzntsv.site/pilonuxt:0db46e1 restart: unless-stopped environment: NODE_ENV: production