meta(handoff): camel-эпик ОТМЕНЁН (vitya) — деплой-парковки нет, live ca0dfa3 (Pascal) остаётся
- vitya: «после S2 деплой не нужен» — весь camel-эпик (S1 wire + S2 клиент 0.3.x + loader re-миграция) отменён - loader уже мигрирован на Pascal-провод (клиент 0.2.1), прод-импорт done — переделывать нечего - 2ffd66a — мусор (собран, не запушен); деплой не отдельная веха, релиз = часть выпуска фичи - письмо snolla отправлено (18-10-26Z): S2 не стартуем - урок: не строить rework-эпик на работающем проводе без потребителя Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,71 +1,56 @@
|
|||||||
---
|
---
|
||||||
_last_updated_: 2026-08-04T18:05:00Z
|
_last_updated_: 2026-08-04T18:10:00Z
|
||||||
session_id: 2026-08-04-admin-api-s1-coord
|
session_id: 2026-08-04-admin-camel-cancel
|
||||||
prev_session_id: 2026-08-04-loader-admin-api-coord
|
prev_session_id: 2026-08-04-admin-api-s1-coord
|
||||||
---
|
---
|
||||||
|
|
||||||
# Next session handoff
|
# Next session handoff
|
||||||
|
|
||||||
## 2026-08-04 — S1 ревью APPOVE'd, деплой ОТЛОЖЕН до конца эпика (S2). Координация активна.
|
## 2026-08-04 — Camel-эпик ОТМЕНЁН (vitya). Loader-интеграция live, деплой-парковки НЕТ.
|
||||||
|
|
||||||
### Что было в этой сессии
|
### Решение (vitya, 2026-08-04)
|
||||||
- **Ревью S1 (admin-api camel-нормализация)** — APPROVE с финайдингами. Проверено сам:
|
- Весь **camel-эпик ОТМЕНЁН**: S1 (camel-нормализация провода admin-api, mapper case-map.ts,
|
||||||
mapper (case-map.ts, unit 12/12), delete-нормализация (9 ресурсов `DELETE /:id`), envelope
|
delete 9→`DELETE /:id`, envelope/error) + S2 (клиент 0.3.x camel + loader re-миграция).
|
||||||
`{success,data,total}`, error-shape, тесты delete-релевантные 58/58 против staging. Полный 422/422
|
Loader уже мигрирован на Pascal-провод (клиент 0.2.1), прод-импорт выполнен и закрыт —
|
||||||
гонял snolla. F1 (page-part-templates) — snolla перевёл, F2/F3 приняты.
|
переделывать нечего. Camel противоречил собственному канону `admin-typed-api`
|
||||||
- **Деплой S1 — ОТМЕНЁН/отложен** по решению snolla+оператор (21:00Z): S1 = camel-wire без
|
«провод НЕ меняется (fields[] канон)».
|
||||||
camel-клиента — не выкатываем. Деплой = один чистый срез всего эпика после S2 (клиент 0.3.x camel
|
- **«Деплоя после S2» не существует.** Деплой не отдельная веха/гейт — отдельного деплоя нет вообще.
|
||||||
+ loader-миграция). Live admin-api остаётся на `ca0dfa3` (Pascal), здоров.
|
- Образ `admin-api:2ffd66a` — мусор: не пушить, не деплоить, не поддерживать. Опционально удалить
|
||||||
- **Образ `admin-api:2ffd66a` СОБРАН на VDS** (`~/build/admin-api-2ffd66a`, контекст завезён tar'ом,
|
build-dir `~/build/admin-api-2ffd66a` + untagged-образ на VDS.
|
||||||
docker build ✅), **НЕ запушен в registry**. Держим готовым; если к S2 будут доп-коммиты — собирать
|
|
||||||
свежий тег.
|
|
||||||
- **pilorama98**: auto-numbering живой прогон выполнен (224 update/0 create, exit 0, таска 🟢).
|
|
||||||
Гейт деплоя был снят, но стал неактуален (деплой отложен).
|
|
||||||
|
|
||||||
### Косяки сессии (признать, не повторять)
|
### Что остаётся live (без изменений)
|
||||||
- Возвёл 🔴 loader-auto-numbering pilorama98 в блокер деплоя S1 — хотя на проводе не было активного
|
- admin-api стек 25, образ `ca0dfa3` (Pascal wire, fields[] канон), `/health` ok.
|
||||||
потребителя (loader — разовый CLI, прод-импорт уже выполнен). 3.5ч простоя. Память:
|
- `@snolla/admin-api-client@0.2.1` — loader на нём, прод-импорт done (224 rows, 0 errors).
|
||||||
`optional-other-project-task-not-a-deploy-gate`. Правило: гейт деплоя оправдан ТОЛЬКО при реальном
|
- API-ключ `sk_6a83…` — не ротируем (решение vitya).
|
||||||
in-flight потребителе на проводе.
|
|
||||||
- Дёрганье по деплою (собрал → остановили). Финальное решение: деплой одним срезом после S2.
|
|
||||||
|
|
||||||
### Следующая сессия (S2)
|
### Урок сессии
|
||||||
- Ждём пинг от snolla: «S2 готов» (клиент 0.3.x camel + loader-миграция pilorama98). Тогда:
|
- Не строить/готовить rework-эпик «нормализации» на уже работающем проводе без активного
|
||||||
1. Если были доп-коммиты в admin-api — собрать свежий тег на VDS (контекст `~/build/admin-api-*`,
|
потребителя. Camel-переделка дала нулевую ценность и была отменена. Это развитие урока
|
||||||
Dockerfile `packages/admin-api/Dockerfile`, build на VDS — registry large-push 499 gotcha).
|
«optional-other-project-task-not-a-deploy-gate»: не только не гейтить деплой опциональными
|
||||||
2. Обновить `admin/host-stacks/vds-kzntsv/admin-api.compose.yml` (ca0dfa3 → новый тег).
|
тасками, но и не заводить сам rework-эпик без потребителя.
|
||||||
3. Применить через Portainer PUT (стек 25, pullImage:true, env сохранить, PS 5.1 round-trip
|
|
||||||
кириллица gotcha — качать байтами/UTF-8).
|
|
||||||
4. Smoke: curl --resolve admin-api.vds.kzntsv.site:443:89.253.255.94 (мимо LAN-DNS), health +
|
|
||||||
list-эндпоинты с camel-ключами.
|
|
||||||
- Координатор-loader таска — закрыта (миграция done). Роль: ревьюер admin-typed-api для S2.
|
|
||||||
- API-ключ pilorama98 `sk_6a83…` — НЕ ротировать (решение vitya).
|
|
||||||
|
|
||||||
### Open треки (параллельно, из прошлых handoff)
|
### Open треки (без изменений, из прошлых handoff)
|
||||||
| Трек | Готовность | Entry-point |
|
| Трек | Готовность | Entry-point |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| minio-retire старых данных (12G, `rm -rf /usr/docker/minio/data` + `volume rm bookva-minio-data`) | окно ≈ до 05.08 — подтвердить у vitya; rollback = PUT стек 30/49 | из handoff 2026-08-04 |
|
| minio-retire старых данных (12G, `rm -rf /usr/docker/minio/data` + `volume rm bookva-minio-data`) | окно ≈ до 05.08 — подтвердить у vitya; rollback = PUT стек 30/49 | из handoff 2026-08-04 |
|
||||||
| kreknin-repair-md3-rebuild | ⚪ ждёт координации с Алексеем (power-off → перетык SATA → Repair md3 → scrub); бэкапы ВЫКЛЮЧЕНЫ до ремонта | `.tasks/kreknin-repair-md3-rebuild.md` + `.wiki/entities/kreknin-synology.md` |
|
| kreknin-repair-md3-rebuild | ⚪ ждёт координации с Алексеем (power-off → перетык SATA → Repair md3 → scrub); бэкапы ВЫКЛЮЧЕНЫ до ремонта | `.tasks/kreknin-repair-md3-rebuild.md` + `.wiki/entities/kreknin-synology.md` |
|
||||||
| P3 imgproxy stack 29 retire / A3 bookva-дубли | опционально | из handoff 2026-08-04 |
|
| P3 imgproxy stack 29 retire / A3 bookva-дубли | опционально | из handoff 2026-08-04 |
|
||||||
|
|
||||||
### Спроси user'а
|
### Спросить user'а
|
||||||
- Подтвердить minio-retire (окно закрывается ~05.08).
|
- Подтвердить minio-retire (окно закрывается ~05.08).
|
||||||
- Стартовать kreknin-ремонт (координация с Алексеем).
|
- Стартовать kreknin-ремонт (координация с Алексеем).
|
||||||
- (если S2 готов) команда на деплой полного среза.
|
|
||||||
|
|
||||||
### Не делать (preemptive guards)
|
### Не делать (preemptive guards)
|
||||||
- НЕ деплоить S1 в одиночку (только полный срез после S2).
|
- НЕ деплоить 2ffd66a / camel-провод; НЕ стартовать S2 (клиент 0.3.x camel).
|
||||||
|
- НЕ трогать live admin-api (стек 25, ca0dfa3) — там всё работает как надо.
|
||||||
- НЕ ротировать API-ключ pilorama98 `sk_6a83…`.
|
- НЕ ротировать API-ключ pilorama98 `sk_6a83…`.
|
||||||
- НЕ трогать live admin-api (стек 25, ca0dfa3) без сигнала.
|
|
||||||
- НЕ удалять старые minio-данные до окна и без подтверждения; НЕ возвращать бэкапы до kreknin-ремонта.
|
- НЕ удалять старые minio-данные до окна и без подтверждения; НЕ возвращать бэкапы до kreknin-ремонта.
|
||||||
- НЕ лезть в snolla-код самому — через snolla-сессию (.admin деплоит).
|
- НЕ лезть в snolla-код самому — через snolla-сессию (.admin деплоит/координирует).
|
||||||
- НЕ PS для Portainer (кириллица); креды → `pass` (vds-kzntsv/full-env); стеки через Portainer, не ssh compose.
|
- НЕ PS для Portainer (кириллица); креды → `pass` (vds-kzntsv/full-env); стеки через Portainer, не ssh compose.
|
||||||
- НЕ возводить опциональные таски других проектов в деплой-гейты без активного потребителя на проводе.
|
|
||||||
|
|
||||||
### Коммиты сессии
|
### Коммиты сессии
|
||||||
- Нет новых коммитов в .admin за сессию (деплой не выполнялся; ревью — координация, не код).
|
- meta(handoff): camel-эпик отменён vitya — деплой-парковки нет, live ca0dfa3 остаётся.
|
||||||
Следующий commit = обновление compose под S2-деплой.
|
(Письмо snolla отправлено `snolla/.claude-inbox/2026-08-04T18-10-26Z-admin.md`.)
|
||||||
|
|
||||||
### Memory updates за сессию
|
### Memory updates за сессию
|
||||||
- `optional-other-project-task-not-a-deploy-gate` — новый (урок про деплой-гейты).
|
- `admin-api-vds-deploy` — обновлён: деплой-отложен→отменён, 2ffd66a мусор, live = ca0dfa3 (Pascal).
|
||||||
- `admin-api-vds-deploy` — актуален; добавить: образ 2ffd66a собран но не запушен, деплой S1 отложен до S2.
|
|
||||||
|
|||||||
@@ -28,10 +28,16 @@
|
|||||||
F6 no-clobber. Пере-ревью + тесты: admin-api **13/13**, schema-gen **19/19**, client 19/19+tsc0,
|
F6 no-clobber. Пере-ревью + тесты: admin-api **13/13**, schema-gen **19/19**, client 19/19+tsc0,
|
||||||
остатков `[TEST]` в проде 0. Нюанс F2: variants `?sku=` ✅, Sku в products search-OR не добавлен
|
остатков `[TEST]` в проде 0. Нюанс F2: variants `?sku=` ✅, Sku в products search-OR не добавлен
|
||||||
(не блокер; loader матчит продукты списком/ProductId). Жду: publish 0.2.0/0.1.0 + API Key.
|
(не блокер; loader матчит продукты списком/ProductId). Жду: publish 0.2.0/0.1.0 + API Key.
|
||||||
- [ ] S1 auth-плагин (PAT+cookie-JWT) + keys-эндпоинты — после завершения
|
- [x] S1 auth-плагин (PAT+cookie-JWT) + keys-эндпоинты — DONE (в проде; snolla admin-typed-api:
|
||||||
|
ApiKeys DDL на обоих SNOLLA, auth 396/396, keys-эндпоинты live)
|
||||||
|
|
||||||
## Текущий статус
|
## Текущий статус
|
||||||
|
|
||||||
|
- 🟢 **2026-08-04T18:10Z — КООРДИНАЦИЯ ЗАКРЫТА, camel-эпик ОТМЕНЁН vitya.**
|
||||||
|
Loader-миграция сделана и в проде (см. ниже). Отдельная **camel-нормализация** (S1 wire camelCase
|
||||||
|
+ S2 клиент 0.3.x camel + loader re-миграция) — **ОТМЕНЕНА**: loader уже на Pascal (0.2.1),
|
||||||
|
прод-импорт done; деплой `2ffd66a` не будет, S2 не стартуем. Письмо snolla отправлено
|
||||||
|
(18-10-26Z). Ревью-роль на S2-клиент снята (S2 нет). Live admin-api `ca0dfa3` (Pascal) остаётся.
|
||||||
- 🟢 **2026-08-04T16:30Z — ПРОД-ИМПОРТ ЧЕРЕЗ API ВЫПОЛНЕН, ВСЁ ЗАКРЫТО.**
|
- 🟢 **2026-08-04T16:30Z — ПРОД-ИМПОРТ ЧЕРЕЗ API ВЫПОЛНЕН, ВСЁ ЗАКРЫТО.**
|
||||||
pilorama98: exit 0, 224 rows, products 224 update/0 create, pages 32, price-tables 25.
|
pilorama98: exit 0, 224 rows, products 224 update/0 create, pages 32, price-tables 25.
|
||||||
Прод admin-api: ~2070 API-вызовов, 0 ошибок (только внешние 401-пробы на /, /robots.txt).
|
Прод admin-api: ~2070 API-вызовов, 0 ошибок (только внешние 401-пробы на /, /robots.txt).
|
||||||
|
|||||||
Reference in New Issue
Block a user