diff --git a/.tasks/STATUS.md b/.tasks/STATUS.md index c5d858e..23bb6e1 100644 --- a/.tasks/STATUS.md +++ b/.tasks/STATUS.md @@ -1,4 +1,5 @@ # Admin Task Board +_Updated: 2026-08-04 — 🔵 **[coord-loader-admin-api-client] координатор.** Я (admin) назначен координатором таски pilorama98 `loader-migrate-to-admin-api-client` (перевод `apps/loader` с прямого DB на `@snolla/admin-api-client` от snolla). Письма-интро отправлены обоим (pilorama98 — report готовности, snolla — краткое описание клиента). Предпосылка S1: **ApiKeys DDL прогнана на обоих боевых SNOLLA** (vds `MoreThenCms` + stostayer `stostayer`) — таблица + индексы + FK, RC=0, verify зелёный. См. `coord-loader-admin-api-client.md`._ _Updated: 2026-08-03 (2) — 🟢 **[labtools.ru cylindrical] CLOSED.** Фикс core 0.26.5 (store-only content-page резолвер) НЕ чинил: labtools — catalog-модуль (store отсутствует), linked-item provider = legacy `LinkedCatalogProductsProvider`. Реализован полный диспетчер `viewModels/linkedItemResolver.js` (порт `ILinkedEntitiesProvider`): dispatch по provider-строке → catalog (CatalogsService.findProductById) / blog (findPostByGlobalId) / page (getPageById) / store (fallback). core 0.26.6 published (verdaccio), 263/263. labtools yarn.lock → 0.26.6 (d263e1c), стек 17 redeploy (env 8/8, pullImage), **LIVE GREEN**: cylindrical 0 empty href/src, 8 карточек гидратированы (round-xrf/vacuum-ir/…), остальные страницы 200. Таска snolla закрыта. Rollback = `0dc0b4e`._ _Updated: 2026-08-02 — ⚪ **[kreknin-repair-md3-rebuild] заведена.** Xpenology kreknin деградед после продувки компрессором 2026-07-31: sdb выпал (md3 `[_UU]`), кабели sda/sdc срыв. **Rescue полный DONE 2026-08-02** (USB 2TB `/mnt/rescue`, 1.1TB: netbackup/*.tar включая diskstation_1.hbk 430G + userdata 5 шар Алексея), массив за 2 суток чтения — 0 новых ошибок. sdd/VM-том восстановлен (md2, `/volume2` rw). **Ежедневные бэкапы DISABLED** (vds-kzntsv 05:00 + books-vds 06:00, cron закомментированы, `.bak.20260731`). Осталось: power-off → перетык SATA (sda/sdc свежие, sdb питание+data) → Repair md3 (реборн) → вернуть бэкапы. Всё: `.tasks/kreknin-repair-md3-rebuild.md` + `.wiki/entities/kreknin-synology.md`._ _Updated: 2026-07-31 (2) — 🟢 **variant-cache bucket fix.** maljarka portfolio фото 500 → root cause: v3 minio-split перевёл сайты на vds MinIO 2025, но `variant-cache` bucket не создали там (был только на старом minio.kzntsv.site/books-vds 2020). snolla sharp-pipeline (`variantCache.js` DEFAULT_NAMESPACE=`variant-cache`) → NoSuchBucket → 500 на ALL sharp gallery-images ВСЕХ 6 v3 сайтов с 2026-07-30 (тихо — v3-gate проверял theme CSS из `themes` bucket (themeFiles, без sharp), не gallery-image URLs). Fix: `mc mb vds/variant-cache` (пустой, кэш регенерируем). После: maljarka portfolio 34/34 → 200 image/webp, full-size 920x600 200, tandemmebel logs NoSuchBucket ушли. **minio-split Track A gap** — при endpoint-flip проверять ВСЕ runtime-buckets (`galleries`/`themes`/`assets`/`variant-cache`), и gate должен хитить gallery-image URL. Memory `variant-cache-bucket-missing-on-vds-2025`._ diff --git a/.tasks/coord-loader-admin-api-client.md b/.tasks/coord-loader-admin-api-client.md new file mode 100644 index 0000000..136cf82 --- /dev/null +++ b/.tasks/coord-loader-admin-api-client.md @@ -0,0 +1,58 @@ +# coord-loader-admin-api-client + +## Goal + +Я (admin-сессия) — **координатор** таски у pilorama98.ru +`loader-migrate-to-admin-api-client`: перевод `apps/loader` с прямого DB-доступа +(`@snollajs/data`, MSSQL MoreThenCms) на типизированный `@snolla/admin-api-client` +(разрабатывает snolla, таска `admin-typed-api`). Vitya назначил 2026-08-04. + +## Роль + +- **Координатор** миграции загрузчика (pilorama98): отслеживать готовность snolla + (клиент + API Key + ответы на open questions), маршрутизировать, разблокировать, + эскалировать застой. +- **Ревьюер snolla** (назначен vitya 2026-08-04): код `admin-typed-api` — S1 auth/keys, + S2 `@snolla/admin-api-client`, S3 `@snolla/admin-schema-gen`. Канал: snolla шлёт + ревью-запрос в мой inbox (commit/hash + что смотреть), я ревьюю и возвращаю финайдинги. + Ревью S2 — **до публикации в Verdaccio** (pilorama98 завязан на клиент). + +## Ревью-чекпойнты (snolla) + +- [ ] S1 auth-плагин (PAT+cookie-JWT) + keys-эндпоинты — после завершения +- [ ] S2 `@snolla/admin-api-client` — **до publish** +- [ ] S3 `@snolla/admin-schema-gen` — после завершения + +## Текущий статус + +- 🔵 **2026-08-04T14:29Z — зазор СНЯТ, скоуп расширен, контракт зафиксирован.** + - **Решение vitya: расширять snolla** (AskUserQuestion). snolla подтвердила независимо — + variants/categories/tags + джанкции в текущем скоупе, реализует после ядра кодгена. + - **Контракт от snolla relay'нут pilorama98** (14-29-11Z): query (GET list?scope&skip&take / + POST list; `{success,data,total}`), write (save=upsert по entity-id, delete по id, + идемпотентно; 400/404/500), `page.content` byte-for-byte только при `Content` (не `Fields[]`), + auth Bearer `sk_…` + POST /api/keys, base URL per-env. Джанкции = reconciliation + `CategoryIds[]`/`TagIds[]` в products/save. + - pilorama98: prep разблокирован (seam-рефактор `DbCatalogStore` + contract-tests-каркас), + таска 🔵 до publish + ключ. + - snolla: ревьюер-роль подтверждена; S2 publish держится до моего ревью. + - **Жду:** publish S2 + API Key; пинги с commit'ами на ревью (S1 auth/keys, S2 клиент, джанкции). + +## Открытый вопрос оператору (vitya) — РЕШЁН 2026-08-04 + +Расширять snolla на variants/categories/tags (+ джанкции). Выбрано vitya, подтверждено snolla. +Полный разблок миграции loader'а; acceptance №1 pilorama98 цел. + +## Хронология + +- 2026-08-04: **ApiKeys миграция прогнана на обоих боевых SNOLLA** (vds `MoreThenCms` + + stostayer `stostayer`) — таблица `dbo.ApiKeys` + индексы + FK. Это предпосылка + S1 auth-плагина / keys-эндпоинтов snolla. Письмо snolla отправлено + (`snolla/.claude-inbox/2026-08-04T13-29-54Z-admin.md`). +- 2026-08-04: назначен координатором, письма-интро обоим проектам. + +## Связанное + +- Таска pilorama98: `~/projects/pilorama98.ru/.tasks/loader-migrate-to-admin-api-client.md` + (🔵 blocked на snolla; open questions там). +- Таска snolla: `~/projects/snolla/.tasks/admin-typed-api.md` (S1 auth — после DDL).