tasks: стенд — schedd 0.5.0 применён, dry-run зелёный, ТЗ publish-mockable, handoff
This commit is contained in:
@@ -1,43 +1,50 @@
|
||||
---
|
||||
_last_updated_: 2026-08-20T19:20:00Z
|
||||
session_id: sched-pipelines-setup-2026-08-20
|
||||
_last_updated_: 2026-08-20T19:55:00Z
|
||||
session_id: sched-pipelines-apply-0.5.0-2026-08-20
|
||||
---
|
||||
|
||||
# Next session handoff
|
||||
|
||||
Сессия: сборка локального sched-стенда + интеграция 2 воркеров (yandex/ozon) + email-канал + dry-run.
|
||||
Сессия: schedd 0.5.0 применён, timeoutMs -1, одновременный dry-run обеих тасок зелёный, мок-publish ТЗ разосланы.
|
||||
|
||||
## Recent commits (в .admin)
|
||||
|
||||
- `d4828592` tasks: план vitya — sched-фикс → параллельный dry-run → verdaccio → books
|
||||
- `4f5f4738` tasks: оба dry-run зелёные (yandex 11/11, ozon 9/9)
|
||||
- `c99e0472` ops: yandex dry-run SUCCESS (11/11), мок unisender работает
|
||||
- `859304de` tasks: email канал ожил (tracking-домен trk.snolla.com активен)
|
||||
- `3060263b` ops: стенд — schedd 0.5.0 (run-deadline), timeoutMs -1, ozon bind-mount state на хост
|
||||
|
||||
## Open треки
|
||||
|
||||
| Трек | Готовность | Entry-point |
|
||||
|---|---|---|
|
||||
| `sched-pipelines-local-stack` (🟡 active) | стенд жив: schedd 0.4.2 + ym/ozon воркеры + browser + ntfy + alert-bridge + unisender-mock; оба dry-run зелёные | `.tasks/sched-pipelines-local-stack.md` + `host-stacks/local/sched-pipelines/` |
|
||||
| `sched-pipelines-local-stack` (🟡 active) | schedd 0.5.0; **оба dry-run зелёные через sched (ozon 8/8, yandex 11/11)**; publish-мок ТЗ на досках команд | `.tasks/sched-pipelines-local-stack.md` |
|
||||
|
||||
## Что разослано командам (жду фиксы)
|
||||
|
||||
1. **sched** — письмо `2026-08-20T19-30-00Z-admin.md` (в .read уже есть, мой инбокс): баг `applyTask` не переносит `timeoutMs` при upsert существующей задачи + требование vitya: **`-1` = дефолт, можно не указывать** (absent должен вести себя как -1, не legacy-25мин потолок).
|
||||
2. **ozon** — письмо 19:40Z + таска `publish-mockable`: выровнять publish с ym (data.registry + .npmrc + --registry; data.remoteBase для push; опц. data.githubApiBase). У них всё хардкод.
|
||||
3. **yandex** — письмо 19:52Z + таска `publish-mockable`: добавить только `data.githubApiBase` для REST github-distro (repoExists/ensureRepo/createRelease); registry+remoteBase уже есть.
|
||||
|
||||
## Стенд (host-stacks/local/sched-pipelines)
|
||||
|
||||
- schedd 0.5.0 (daemon), tasks.json: `timeoutMs: -1` на ozon+yandex (в файле есть, в БД/API не применился из-за бага sched).
|
||||
- Оба воркера свежие (ozon с фиксами ТЗ №1-10: envelope реализован; ym с JSDoc-фиксом).
|
||||
- Compose: ozon bind-mount `./data-ozon` → /app/data + `data-ozon/state.json` → /app/state.json (раньше state жил в слое образа). ym: `./data-ym` → /app/data.
|
||||
- Находка для ozon: run.js хардкодит state/output в ROOT образа, /app/data не используется воркером — не включено в их ТЗ (могу добавить позже).
|
||||
|
||||
## Спроси user'а
|
||||
|
||||
1. **Фикс sched ПРИЛЕТЕЛ (письмо 19:20Z) — применять в следующей сессии**: core 0.45.0 / daemon 0.5.0 на verdaccio (latest), коммиты 4cff4c1 + ca617b3. Реализовано: (1) envelope-дыра → громкий broken-worker; (2) относительный statusUrl резолвится (new URL(statusUrl, cfg.url)); (3) poll-флейк → ретрай 2×500мс + метка `http runner: poll failed:`; (4) НОВОЕ — run-deadline контракт: task-level `timeoutMs` в tasks.json (`-1` = никогда, `>0` = фейл через N мс, absent = legacy). **Рекомендация sched: поставить `"timeoutMs": -1` на обе пайплайн-таски (ozon + yandex)**. После обновления schedd: **одновременный dry-run обеих тасок через sched** (ozon + yandex в параллель, конкурентность — план vitya).
|
||||
2. **GO на реальный прогон** — пока НЕ дан. План vitya: сначала публикация на **verdaccio** (не npmjs!) → **books тестирует** (у него тесты) → потом релиз. Воркерам: `registry: https://verdaccio.kzntsv.site` + `NPM_TOKEN` verdaccio (в `~/.npmrc`), НЕ npmjs-токен.
|
||||
3. **«Да» по 2 фичам sched** (обе ⚪ на их доске): `http-runner-envelope-violation`, `http-runner-relative-status-url`. Poll-баг уже в работе по заданию vitya (`http-runner-poll-error-resilience`).
|
||||
4. **VDS-миграция** — после пары дней локально + зелёных реальных прогонов.
|
||||
1. **Мок-publish стенд**: после фиксов publish-mockable от обеих команд — построить мок-GitHub (локальный HTTP-мок REST + git remote на локальный bare-репо) + мок-npm (verdaccio) и прогнать publish-стадию. Либо просто ждать GO и идти на verdaccio напрямую.
|
||||
2. **GO на реальный прогон** — пока НЕ дан. План vitya: verdaccio (не npmjs) → books тестирует → релиз. Воркерам: registry verdaccio + NPM_TOKEN verdaccio.
|
||||
3. **VDS-миграция** — после пары дней локально + зелёных реальных прогонов.
|
||||
|
||||
## Не делать
|
||||
|
||||
- Не запускать реальные публикации (publish/githubDistro) без явного GO.
|
||||
- Не слать реальные письма unisender — только мок (`data-mail/`); email-каналы воркеров указывают на мок.
|
||||
- Не патчить код команд — ТЗ через их инбоксы, они пушат, я пересобираю.
|
||||
- Не слать реальные письма unisender — только мок (data-mail/).
|
||||
- Не патчить код команд — ТЗ через их инбоксы/доски, они пушат, я пересобираю.
|
||||
- Не коммитить в репо команд (yandex/ozon/sched) — только в .admin.
|
||||
- schedd: НЕ использовать debug-fetch обёртку (убрана).
|
||||
|
||||
## Memory updates за сессию
|
||||
|
||||
- **Контракт Unisender Go** (проверен живьём): `POST goapi.unisender.ru/ru/transactional/api/v1/email/send.json`, ключ `X-API-KEY`-заголовок или `api_key` в теле, вложенный `message {template_engine, body.{plaintext|html}, subject, from_email, from_name, recipients[]}`; `body.text` → 400 code 1577. Требует tracking-domain (NS-делегация на uns1-3.unisender.com) + sender-domain (SPF/DKIM/hash). Кандидат на wiki-ingest.
|
||||
- **reg.ru API**: клиентский SSL-серт (генерил openssl, ключ в pass `reg-ru/snolla-com-api-key|cert`, вставлен в панель); DNS-команд в API НЕТ (NO_SUCH_COMMAND) — записи только панелью; панель дописывает домен к имени поддомена (`trk` а не `trk.snolla.com` — иначе `trk.snolla.com.snolla.com`). Кандидат на wiki-ingest.
|
||||
- **Секреты**: `pass sched-pipelines/local/*` (sched-api-key, admin-key, webhook-secret, unisender-go-api-key), `pass reg-ru/snolla-com` (+ api-key/cert). GH-токен OpeItcLoc03 — репо в оргах создаёт (apilki admin, проверено).
|
||||
- **GitHub**: apilki/ozon-seller-typescript, apilki/ozon-seller-postman, apilki/yandex-market-postman ещё не существуют — создадутся при первом реальном publish (create-if-missing у обоих воркеров).
|
||||
- **sched run-deadline контракт**: task-level `timeoutMs` (-1 = никогда, >0 = фейл через N мс, absent = legacy 25-мин poll-потолок). Баг: applyTask при upsert не переносит timeoutMs. Требование vitya: -1 = дефолт, absent должен быть -1.
|
||||
- **ozon publish.js**: npm publish хардкод (нет registry), pushUrl хардкод github.com, GH API хардкод — мокабельность только через data-поля (ТЗ).
|
||||
- **ym github-distro.js**: data.registry (npm) + data.remoteBase (git remotes) уже есть; GH_API константа — нужен data.githubApiBase (ТЗ).
|
||||
|
||||
Reference in New Issue
Block a user