5.3 KiB
5.3 KiB
_last_updated_, session_id
| _last_updated_ | session_id |
|---|---|
| 2026-08-21T00:55:00Z | sched-pipelines-apply-0.5.0-2026-08-20 |
Next session handoff
Сессия: schedd 0.5.0 применён, timeoutMs -1, одновременный dry-run обеих тасок зелёный, мок-publish ТЗ разосланы.
Recent commits (в .admin)
7ec721e2ops: schedd 0.6.0 — timeoutMs применяется к существующим таскам, absent=-1 дефолт (проверено живьём)3060263bops: стенд — 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 |
Cancel-канал (раунд 3)
- sched ✅ (core 0.47.0/daemon 0.7.0, на стенде): cancelUrl-канал. Контракт ратифицирован с обеих сторон (письма 00:52Z admin + 00:52:37Z sched): A (cancelUrl) — accepted-envelope несёт cancelUrl; cancel → POST {runId} на cancelUrl (auth + x-sched-run-id), ждёт 2xx, потом cancelled; провал →
cancel signal failed. sched менять нечего — реализация соответствует. Ждём импл воркеров → контракт-ревью против 05.protocol.md. - воркеры ⚪
worker-cancel-url(обе команды): принять cancelUrl, POST /cancel эндпоинт, флаг между стадиями ДО мутаций.
Раунды ТЗ
Раунд 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'а
- Мок-publish стенд: после фиксов publish-mockable от обеих команд — построить мок-GitHub (локальный HTTP-мок REST + git remote на локальный bare-репо) + мок-npm (verdaccio) и прогнать publish-стадию. Либо просто ждать GO и идти на verdaccio напрямую.
- GO на реальный прогон — пока НЕ дан. План vitya: verdaccio (не npmjs) → books тестирует → релиз. Воркерам: registry verdaccio + NPM_TOKEN verdaccio.
- 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 (ТЗ).