From 8ebe00ad1698615594f527a837c4e50145f1a349 Mon Sep 17 00:00:00 2001 From: vitya Date: Tue, 18 Aug 2026 22:21:41 +0300 Subject: [PATCH] =?UTF-8?q?handoff:=20openapi-client=20F&F=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=BA=D1=80=D1=8B=D1=82=20(=D1=80=D0=B5=D0=BF=D0=BE=D1=80?= =?UTF-8?q?=D1=82=20sched=2019:15Z,=20e89e868)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .tasks/NEXT_SESSION.md | 52 ++++++++++++++++++------------------------ 1 file changed, 22 insertions(+), 30 deletions(-) diff --git a/.tasks/NEXT_SESSION.md b/.tasks/NEXT_SESSION.md index b333747..50ae612 100644 --- a/.tasks/NEXT_SESSION.md +++ b/.tasks/NEXT_SESSION.md @@ -1,43 +1,35 @@ --- -_last_updated_: 2026-08-18T18:30:00Z -session_id: 2026-08-18-pi-sched-wave-retest +_last_updated_: 2026-08-18T19:20:00Z +session_id: 2026-08-18-pi-sched-openapi-client-fnf --- # Next session handoff ## Recent commits -- (this commit) handoff: CLI-F&F ЗАКРЫТ (приёмка 18-03Z), F2 → engines>=24 (sched 18-16Z), Node 24.19.0 активен на машине -- cf3c67cc handoff: session-end — CLI-F&F в паузе, F1 verified, стенд жив, ждём волну F2-F9 -- ccc10d2d handoff: CLI-F&F пауза от sched; VDS с моей стороны жив — пинганул ретрай -- fa8c6e30 handoff: CLI-F&F F1 verified (daemon 0.3.2, junction-фикс), ждём F2–F9 -- a848d48a handoff: CLI-F&F раунд стартован — репорт F1–F9 в sched, ждём фиксы +- (this commit) handoff: openapi-client F&F закрыт — репорт sched отправлен 19:15Z, коммит e89e868 (sched repo) +- e89e868 (sched repo) feat(examples): python admin client from spec — 15 путей/21 операция, 24/24, smoke 19/19 +- b56da997 handoff: паблиш-волна sched принята (ретест Node 24 зелёный, 18-29Z) + +## Что сделано в этой сессии (openapi-client F&F, таска от sched 18-55Z) +- Спеку взял из verdaccio `@sched/admin-api@0.1.2` (tarball = идентична репо, 15 путей/12 схем). +- Клиент: **Python, openapi-generator 7.24.0** (JDK 25; системная Java 8 не годится — JAVA_HOME обязателен) — «одной командой» из спеки. +- TDD: сьют до клиента (RED) → после генерации **24/24 GREEN** (3 прогона стабильно), **smoke 19/19**. +- Код: `sched/examples/admin-client-python/` (README+F&F-таблица, generate.ps1, openapi.json pinned, sched_admin_client/ checked-in, tests/, smoke.py, raw_ops.py). +- **Репорт**: `sched/.agents/inbox/2026-08-18T19-15-43Z-admin-fnf-openapi-client-report.md` — находки F-1..F-5, НЕ чинил (их импл). ## Open треки | Трек | Готовность | Entry-point | |---|---|---| -| **ПИСЬМО sched: engines>=24** | ✅ **ЗАКРЫТО** — sched подтвердил 18-16Z: `engines: ">=24"` поднято (4c3e4fa, 30/30 на Node 24), в волне daemon 0.3.4. | письмо sched 18-16Z | -| **sched паблиш-волна → ретест лестницы** | ✅ **ЗАКРЫТО 18-29Z** — ретест на Node 24.19.0 зелёный, находок нет, репорт sched отправлен (`2026-08-18T18-29-53Z-admin-wave-retest-report.md`). Волна принята: cli 0.1.2 / daemon 0.3.4 / core 0.41.1 / admin-api 0.1.2 / mcp 0.4.1 / storage-* 0.3.2 / ui 0.2.4. | письмо sched 18-17Z | -| sched CLI-F&F раунд (я — тестер) | ✅ **ЗАКРЫТ** — ретест 0.1.1 принят sched 18-03Z (9/9: F3/F4/F5/F7/F9 кодом, F2/F6/F8 решения). cli-operator 🟢 done. | письма + `.tmp/sched-cli-ff/` | +| **sched openapi-client F&F — находки F-1..F-5** | 🔵 жду их импла: F-1 /health auth-контрадикция (спека security:[], daemon с ключом 401-ит даже health); F-2 mutation-ответы {} вместо {task/run/schedule:…} (главный, ломает генераторы); F-3 const:true→строковый enum; F-4 Schedule oneOf не десериализуется; F-5 top-level dedupKey молча игнорится. По фиксам — ретест. | письмо sched 19:15Z | +| sched CLI-F&F раунд | ✅ ЗАКРЫТ | — | | books-sched-integration (Phase 3) | ⚪ их работа; приёмка только по их пингу | — | -| llm-router / routerai | ⚫ **выброшено** — юзер: «забудь, сделано». НЕ трогать | — | -## Стенд CLI-F&F (жив, Node 24) -`.admin/.tmp/sched-cli-ff/` — daemon :8080 на глобальном `schedd` 0.3.4 -(SCHED_ADMIN_KEY=dev-key), :8084 на 0.3.4 (Windows-path, with-space каталог), -worker :9999 (quick-start), python worker :8083 (check-worker, -SCHED_API_KEY=dev-key). ✅ Процессы :8080/:8084 перезапущены под Node 24.19.0 -(старт-скрипт `start-stand.cmd`). Глобал: @sched/cli@0.1.2 + @sched/daemon@0.3.4 -из verdaccio. +## Стенды (все живы на конец сессии) +- **:8127** — МОЙ scratch-стенд openapi-client F&F: published daemon 0.3.4, NO AUTH, db `/tmp/sched-acpy-stand/acpy.db`. Гасить можно. +- **:8080** — sched CLI-F&F стенд (0.3.4, `SCHED_ADMIN_KEY=dev-key` — ключ НАШЁЛ в старом handoff, для F&F он был нужен, но я обошёлся :8127). +- **:8123** — dev-билд, **СТЕЙЛ** (health 0.1.8): нет POST /tasks, /schedules в легаси-формате. Для контракта не годен. -## Спроси user'а -- (нет открытых решений — волна принята 18-29Z, ретест зелёный, находок нет) - -## Не делать (preemptive guards) -- НЕ лезть в код sched-проекта и НЕ трогать их доску — я тестер/координатор (round-procedure; правило «внешний агент не пушит в их репо»). -- НЕ убивать стенд `.tmp/sched-cli-ff/` (:8080/:8084/:9999/:8083) — жив для ретеста F2–F9. -- НЕ начинать под-раунды/ретесты раньше волны паблиша от sched. -- llm-router — выброшено, не трогать. books Phase 3 — их зона. - -## Memory updates за сессию -- Кандидат на ingest (предложен в ритуале, ждёт «да»): **nvm-junction isMain-gate gotcha** — `import.meta.url === pathToFileURL(argv[1])` ломается под junction'нутым npm-рутом (C:\nvm4w → realpath C:\Users\vitya\AppData\Local\nvm\v22.22.0): ESM резолвит meta в realpath, argv[1] держит литеральный → main() не выполняется, exit 0 молча. Бьёт любой global-install под version-manager'ом (nvm/mise/volta). Проверено эмпирически, фикс — realpath-сравнение обеих сторон. -- Кандидат на ingest: **nvm-windows Node 24 миграция** — `nvm install 24 && nvm use` меняет junction C:\nvm4w\nodejs; глобальные пакеты per-version → после переключения `npm i -g` заново; текущий shell кэширует PATH (hash -r / новый терминал). +## Заметки на будущее +- openapi-generator + 3.1-спека: const:true → строковый enum; ответы {} → wrapped-тело валит десериализацию; oneOf+discriminator → actual_instance=None. Обход: raw-транспорт + model_validate. (Кандидат в .wiki-концепт.) +- Windows: порты 8090/8091 в excluded range (Hyper-V) — EACCES. `netsh interface ipv4 show excludedportrange`. +- Триггер долгого process-раннера (POST run) синхронный — ответ приходит после завершения процесса; для cancel-теста дёргать в фоновом треде.