60 lines
4.5 KiB
Markdown
60 lines
4.5 KiB
Markdown
---
|
||
_last_updated_: 2026-08-20T20:15:00Z
|
||
session_id: sched-pipelines-apply-0.5.0-2026-08-20
|
||
---
|
||
|
||
# Next session handoff
|
||
|
||
Сессия: schedd 0.5.0 применён, timeoutMs -1, одновременный dry-run обеих тасок зелёный, мок-publish ТЗ разосланы.
|
||
|
||
## Recent commits (в .admin)
|
||
|
||
- `7ec721e2` ops: schedd 0.6.0 — timeoutMs применяется к существующим таскам, absent=-1 дефолт (проверено живьём)
|
||
- `3060263b` ops: стенд — schedd 0.5.0 (run-deadline), timeoutMs -1, ozon bind-mount state на хост
|
||
|
||
## Open треки
|
||
|
||
| Трек | Готовность | Entry-point |
|
||
|---|---|---|
|
||
| `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 (мокабельность publish, оба закрыли):**
|
||
- ozon `publish-mockable` ✅ (175/175): data.registry/remoteBase/githubApiBase + PUBLISH_* env.
|
||
- yandex `publish-mockable` ✅: data.githubApiBase для REST (registry/remoteBase были).
|
||
|
||
**Раунд 2 (Gitea-совместимость, оба на досках ⚪ `gitea-mock-publish`):**
|
||
- Мок-publish = verdaccio (npm) + наш Gitea (git.kzntsv.site, орга apilki, API v1).
|
||
- ozon: gh repo create CLI → REST POST /orgs/{owner}/repos (Gitea нет /api/v3); remoteBase URL-join.
|
||
- yandex: только remoteBase URL-join (REST уже ок).
|
||
- Репо руками НЕ создавать — create-if-missing воркерами (тестируемый сценарий). Gitea push auth проверен: x-access-token:TOKEN@ работает.
|
||
|
||
**sched** — ✅ ЗАКРЫТО (0.6.0): applyTask timeoutMs + absent=-1 дефолт, проверено живьём.
|
||
|
||
## Стенд (host-stacks/local/sched-pipelines)
|
||
|
||
- schedd **0.6.0** (daemon); tasks.json без timeoutMs — дефолт absent=-1 (никогда), применён и проверен.
|
||
- Оба воркера свежие (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. **Мок-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/).
|
||
- Не патчить код команд — ТЗ через их инбоксы/доски, они пушат, я пересобираю.
|
||
- Не коммитить в репо команд (yandex/ozon/sched) — только в .admin.
|
||
|
||
## Memory updates за сессию
|
||
|
||
- **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 (ТЗ).
|