From 0349d0a4533d121b93e085ae4b1b1a489b44a4a1 Mon Sep 17 00:00:00 2001 From: vitya Date: Thu, 20 Aug 2026 22:20:35 +0300 Subject: [PATCH] =?UTF-8?q?meta:=20session=20handoff=20=E2=80=94=20sched-p?= =?UTF-8?q?ipelines=20=D1=81=D1=82=D0=B5=D0=BD=D0=B4,=20dry-run=20=D0=B7?= =?UTF-8?q?=D0=B5=D0=BB=D1=91=D0=BD=D1=8B=D0=B5,=20=D0=B6=D0=B4=D1=91?= =?UTF-8?q?=D0=BC=20sched-=D1=84=D0=B8=D0=BA=D1=81=20+=20GO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .tasks/NEXT_SESSION.md | 56 +++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/.tasks/NEXT_SESSION.md b/.tasks/NEXT_SESSION.md index 04e3fd5..b402287 100644 --- a/.tasks/NEXT_SESSION.md +++ b/.tasks/NEXT_SESSION.md @@ -1,43 +1,43 @@ --- -_last_updated_: 2026-08-19T17:35:00Z -session_id: 2026-08-19-admin-fnf-r10-per-task-alerts +_last_updated_: 2026-08-20T19:20:00Z +session_id: sched-pipelines-setup-2026-08-20 --- # Next session handoff -## Recent commits (в `.admin`, запушены) -- `909c67db` admin: sched r10 закрыт (их ack 17:24Z, 6/6 PASS) -- `ed5c7ca7` admin: sched r10 6/6 PASS, репорт отправлен -- `c1956184` admin: r10 трек + VDS TLS-авария в handoff -- `64dbf02d` admin: r10 коррекция — цель теста скомпилированная дока (dev 5108), деплой не требовать -- `30453dc8` admin: sched r10 возвращен без теста — доки не сгенерированы, пример битый, коммит не запушен +Сессия: сборка локального sched-стенда + интеграция 2 воркеров (yandex/ozon) + email-канал + dry-run. -## Inbox-переписка r10 (sched/.agents/inbox/) -- Вход: `2026-08-19T16-51-46Z-sched-alerts-per-task-fnf.md` (запрос F&F r10) -- Исход: 17:00:30Z rejected, 17:03:30Z addendum (schedjs.com — ОТОЗВАН), 17:06:30Z correction (цель = compiled docs :5108), 17:14:30Z crossed-ack, 17:16:00Z vds-up, 17:25:00Z retry-crossed-ack -- Вход: 17:11:28Z fix-ack, 17:13:27Z addendum-ack, 17:14:37Z correction-ack, 17:15:25Z retry, 17:16:05Z crossed, 17:17:00Z pushed-confirm, 17:24:20Z **ACCEPTED** (6/6 PASS), 17:25:40Z final-confirm -- Исход: `2026-08-19T17-24-00Z-admin-fnf-r10-report.md` (6/6 PASS, 0 находок) +## 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 активен) ## Open треки + | Трек | Готовность | Entry-point | |---|---|---| -| **sched F&F r10 per-task alerts** | 🟢 ЗАКРЫТ (их ack 17:24Z): 6/6 PASS, 0 находок, 0 замечаний — первый раунд без фиксов после режекта. Таска alerts-per-task-routing → 🟢 done (их коммит 03f16e1). Финальные версии core 0.44.0 / daemon 0.4.2 | — | -| **VDS TLS-авария 17:05Z** | 🟢 САМОВОССТАНОВИЛАСЬ ~17:14Z (gitea/verdaccio 200). Блокировала пуши ~10 мин. Диагноз: хост жив, :80 ок, :443 TCP accept + TLS hang (traefik/ACME залип) — рассосался сам | — | -| sched openapi-client F&F round 2 | 🟢 ЗАКРЫТ (прежний) | — | -| books-sched-integration (Phase 3) | ⚪ их работа; приёмка только по их пингу | — | -| **Следующий sched F&F-цикл** | ⚪ по их пингу (у них: docs-mcp-playbook / public-release ⚪) | их письмо | +| `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/` | ## Спроси user'а -- (нет на этом раунде) -## Не делать (preemptive guards) -- НЕ стартовать новый sched F&F-цикл без их пинга. -- НЕ трогать sched public-release таски (готовятся к GitHub-переезду). -- НЕ лазить в sched-репо в рабочем дереве (изменения только через их inbox/доску). +1. **Фикс sched (poll-баг)** — ещё не прислали. Как прилетит: тянуть `victor/sched`, пересобрать schedd (verdaccio 0.4.2+), проверить рекорды ранов. После приёмки — **одновременный dry-run обеих тасок через sched** (ozon + yandex в параллель, конкурентность). +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-миграция** — после пары дней локально + зелёных реальных прогонов. + +## Не делать + +- Не запускать реальные публикации (publish/githubDistro) без явного GO. +- Не слать реальные письма unisender — только мок (`data-mail/`); email-каналы воркеров указывают на мок. +- Не патчить код команд — ТЗ через их инбоксы, они пушат, я пересобираю. +- Не коммитить в репо команд (yandex/ozon/sched) — только в .admin. +- schedd: НЕ использовать debug-fetch обёртку (убрана). ## Memory updates за сессию -- **Метод F&F (правило, в силе)**: тестирование идёт по СКОМПИЛИРОВАННОЙ доке — дев-сервер `http://localhost:5108` (nuxi dev, IPv6 [::1]) — НЕ по source `.md`, НЕ по вымышленным публичным доменам. schedjs.com — заглушка конфига (NXDOMAIN), деплой туда НЕ требовать. Проверять перед прогоном: дев-сервер жив, разделы отрендерены, origin синхронен (0 ahead). -- **Порядок хендоффа sched F&F (их процедура, fnf-testing-procedure.md)**: 1) код+юнит-тесты → 2) доки source с парсящимися примерами → 3) npm run generate (dist не пуст, закоммичен — nuxi делает dist симлинком, нужен scripts/docs-dist.mjs) → 4) push (ноль ahead) → 5) verdaccio → 6) пинг. Битый пример = возврат без теста. Админ проверяет эти 6 пунктов ПЕРЕД первым прогоном. -- **Стенд sched (актуальный)**: `/tmp/sched-alerts-stand/` (Windows Temp, НЕ C:\tmp) — node_modules @sched/core 0.44.0 / daemon 0.4.2, `.npmrc` → verdaccio, receiver.mjs (порты 8131/8132), конфиги лестницы r10 в `r10/` (t1–t7). ⚠️ Готча пути: write-тул пишет `/tmp/...` как `C:\tmp\...` (диск-рут), bash `/tmp` = Windows Temp — синхронизировать через cp. -- **F&F r10 результаты**: 6/6 PASS: r10-a регресс (default→POST), r10-b `on:[]`=тишина (массивы REPLACE), r10-c per-task on (корень не протекает), r10-d per-task onMissed (missed-slot только для A, delayMs 129016; гашение демона на слот, grace 120s), r10-e мультиканал (+без корневого webhook), r10-f fail-fast на load (все 3 варианта: on-статусы/onMissed-boolean/webhook-url). Бонус: HMAC X-Sched-Signature-256 MATCH. -- **Бухгалтерия (предложено, не сделано)**: r8/r9 раунды НЕ записаны в `.admin/.tasks/STATUS.md` (верхний блок начинается с r10) — по желанию дописать историю. + +- **Контракт 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 у обоих воркеров).