Files
admin/.tasks/NEXT_SESSION.md

5.3 KiB
Raw Blame History

_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)

  • 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

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'а

  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 (ТЗ).