режект #2 ozon: readFile is not a function (deps без readFile/writeFile в server.js+entrypoint.js, тест подставлял руками); ждём фикс

This commit is contained in:
2026-08-21 01:09:49 +03:00
parent f5b3a6dae6
commit dbec999df2
2 changed files with 51 additions and 34 deletions

View File

@@ -1,10 +1,10 @@
# Admin Task Board
_Updated: 2026-08-20 — 🟡 **[sched-pipelines-local-stack]** schedd **0.9.0 применён + cancel-тест ЗЕЛЁНЫЙ**. **НО мок-publish ЗАБЛОКИРОВАН**: контракт dryRun в ozon сломан (`payload.data` вместо плоского `payload` data.dryRun=false не доезжает до publish-стадии, env DRY_RUN=1 всегда выигрывает). Письмо-ТЗ отправлено (21:55Z), ждём фикс + отчёт. Yandex контракт правильный.
_Updated: 2026-08-20 — 🟡 **[sched-pipelines-local-stack]** schedd **0.9.0 применён + cancel-тест ЗЕЛЁНЫЙ**. **Мок-publish ЗАБЛОКИРОВАН (2-й режект ozon)**: контракт dryRun починен (297bc31, 202/202, e2e зелёные — проверено независимо), но реальный publish падает `readFile is not a function` deps без readFile/writeFile в server.js+entrypoint.js (тест подставлял их руками → разрыв тест/прод). Письмо-режект 22:20Z, ждём фикс #2.
## 🟡 [sched-pipelines-local-stack] — локальный стенд: sched daemon + ym/ozon воркеры + browser/ntfy/alert-bridge, потом VDS
**Status:** active
**Where I stopped:** schedd **0.9.0** применён (verdaccio latest, core 0.48.0), commit 225d235c. **Cancel-тест зелёный**: полный ран ozon → cancel на generate → `[sched] [cancel] POST .../cancel/<runId>` + `ack status=200`; воркер `[cancel] received`/`flag set`, `[stage] generate done``[cancel] stop before stage fix`; стадии после НЕ шли; state.json остался {}; ран cancelled. **БЛОКЕР мок-publish**: ozon server.js:159 читает `payload.data` (вложенный) — в sched-режиме payload = envelope.data целиком, вложенного data нет → mergedData.dryRun всегда undefined → effectiveDryRun = env DRY_RUN = true всегда. Снятие dryRun:true в таске не перебивает env — ozon publish навсегда в dry-runDiff. yandex контракт правильный (плоский data.dryRun). Письмо-ТЗ ozon: 2026-08-20T21-55-00Z-admin.md. Инцидент с github.com-репо (yandex) — закрыт.
**Next action:** (1) ✅ schedd 0.9.0 + cancel-тест — DONE; (2) 🔴 **ждать фикс ozon (publish-dryrun-contract-broken) + их отчёт** → проверить контракт → GO user'а на мок-publish (снять dryRun:true → verdaccio+Gitea); (3) VDS-миграция (после пары дней локально).
**Where I stopped:** schedd **0.9.0** (verdaccio latest, core 0.48.0), commit 225d235c. Cancel-тест зелёный (стоп воркера до publish). **Мок-publish**: снял dryRun:true в tasks.json (render-tasks), schedd рестартнут (dryRun:false активен), полный ран ozon — стадии 8/10 прошли, **publish упал `readFile is not a function`**: runPublish деструктурирует readFile из deps (service/publish.js:254, npmPublish→preparePackage), а server.js+entrypoint.js передают только exec/httpGetFn/httpPostFn. Их e2e-тест подставлял readFile руками (server-publish.test.js:275) — разрыв тест/прод, тест зелёный а прод падает. Письмо-режект 22:20Z (ТЗ: добавить readFile/writeFile/removeFile в deps обеих точек + тест на реальную фабрику deps). Фикс #1 (dryRun-контракт, 297bc31) — принят, проверен независимо (202/202, e2e dryRun=false→real, dryRun=true→dryRunDiff). Yandex — прямые fs.readFileSync, дыры нет.
**Next action:** (1) ✅ schedd 0.9.0 + cancel-тест — DONE; (2) 🔴 **ждать фикс #2 ozon (readFile deps) + отчёт** → пересобрать контейнер → повторный мок-publish ран ozon → проверить verdaccio+Gitea мутации → затем yandex; (3) VDS-миграция (после пары дней локально).
**Branch:** master
**Weight:** needs-claude
_Updated: 2026-08-19 — 🟢 **[sched-fnf-r10] ЗАКРЫТ (их ack 17:24Z): 6/6 PASS, 0 находок, 0 замечаний** — первый раунд без фиксов после режекта. Per-task alert routing (core 0.44.0/daemon 0.4.2): r10-a регресс, r10-b on:[] тишина (массивы replace), r10-c per-task on, r10-d per-task onMissed (missed-slot только для A, delayMs 129016), r10-e мультиканал (+без корневого webhook), r10-f fail-fast на load (3 варианта). Бонус HMAC MATCH. Процесс: раунд начинался с режекта (доки не сгенерированы/битый пример/не запушено), их фикс + push + сгенерированный dist + исправленный пример → ретест 6/6. Урок: F&F тестируется по СКОМПИЛИРОВАННОЙ доке (dev-сервер localhost:5108), не по сырцам; порядок хендоффа 16 у них в fnf-testing-procedure.md. Репорт: sched/.agents/inbox/2026-08-19T17-24-00Z-admin-fnf-r10-report.md. Стенд: /tmp/sched-alerts-stand/r10/._