handoff: sched openapi F&F round 2 retest — all 5 fixes verified, raw_ops deleted (d658ff0)
This commit is contained in:
@@ -1,35 +1,34 @@
|
||||
---
|
||||
_last_updated_: 2026-08-18T19:20:00Z
|
||||
session_id: 2026-08-18-pi-sched-openapi-client-fnf
|
||||
_last_updated_: 2026-08-18T23:00:00Z
|
||||
session_id: 2026-08-18-pi-sched-openapi-round2-retest
|
||||
---
|
||||
|
||||
# Next session handoff
|
||||
|
||||
## Recent commits
|
||||
- (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)
|
||||
- d658ff0 (sched repo) feat(examples): admin-client retest vs 0.2.0/0.3.5 — raw_ops deleted, typed-only suite 24/24, smoke 19/19 (пуш в sched разрешён таской)
|
||||
- e24b100 (sched repo, их) fix(admin-api): openapi F&F round — wrapped shapes, open health, flat schedule
|
||||
|
||||
## Что сделано в этой сессии (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, НЕ чинил (их импл).
|
||||
## Что сделано в этой сессии (F&F round 2 retest, письмо sched 19:35Z)
|
||||
- Ретест против **@sched/admin-api@0.2.0** (tarball spec byte-identical pinned) + **@sched/daemon@0.3.5** (глобальный npm-пакет обновлён, стенд :8127 перезапущен, no auth, scratch db).
|
||||
- **Все 5 находок F-1..F-5 подтверждены закрытыми** (спека+сервер). Главный итог: **raw_ops.py удалён, 11/11 ранее-сырых операций идут через типизированный клиент** (0 на обходе). Сьют переписан typed-only: **24/24** (3 прогона), **smoke 19/19**.
|
||||
- F-1/F-5 проверены живьём на keyed-инстансе 0.3.5 (:8128): health 200 open, /tasks 401 без ключа, 400 на неизвестные поля schedule body/patch.
|
||||
- Репорт: `sched/.agents/inbox/2026-08-18T22-55-00Z-admin-openapi-fixes-round2-retest.md`.
|
||||
- Нюанс среды (для будущих регенераций): openapi-generator CLI дёргает `java` из **PATH**, не из JAVA_HOME — нужен `$env:Path = "$env:JAVA_HOME\bin;" + $env:Path` (записал в generate.ps1).
|
||||
|
||||
## Open треки
|
||||
| Трек | Готовность | Entry-point |
|
||||
|---|---|---|
|
||||
| **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 openapi-client F&F round 2** | 🟢 ретест отправлен 22:55Z; жду их приёмки/след. письма | письмо sched 22:55Z |
|
||||
| sched CLI-F&F раунд | ✅ ЗАКРЫТ | — |
|
||||
| books-sched-integration (Phase 3) | ⚪ их работа; приёмка только по их пингу | — |
|
||||
|
||||
## Стенды (все живы на конец сессии)
|
||||
- **: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 в легаси-формате. Для контракта не годен.
|
||||
## Стенды
|
||||
- **:8127** — sched daemon **0.3.5**, no auth, db `/tmp/sched-acpy-stand/acpy.db` (перезапущен мной в этой сессии). ЖИВ — sched может юзать для ретеста; можно гасить.
|
||||
- :8128 — keyed 0.3.5 (F-1 проверки) — **погашен**.
|
||||
- :8080 — sched CLI-F&F стенд (0.3.4, SCHED_ADMIN_KEY=dev-key), не трогал.
|
||||
|
||||
## Заметки на будущее
|
||||
- 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-теста дёргать в фоновом треде.
|
||||
- В спеке `info.version` = 0.1.0 и в 0.1.2, и в 0.2.0 (версия только в package.json) — предложил sched поднять, «на усмотрение».
|
||||
- Wrapped-формы объявлены инлайн в components.responses → имена InlineObject..InlineObject4; если sched назовёт их в components.schemas — станет красивее (предложил).
|
||||
- Не стал добавлять F-1/F-5 тесты в сьют (нужен keyed-стенд) — предложил sched, «на усмотрение».
|
||||
|
||||
Reference in New Issue
Block a user