handoff: r9 закрыт (их ack), openapi r2 закрыт (приёмка была), след. F&F по пингу

This commit is contained in:
2026-08-19 18:48:14 +03:00
parent 34e6e2c7ab
commit e2c88eb773

View File

@@ -1,34 +1,35 @@
--- ---
_last_updated_: 2026-08-18T23:00:00Z _last_updated_: 2026-08-19T15:20:00Z
session_id: 2026-08-18-pi-sched-openapi-round2-retest session_id: 2026-08-19-admin-alerts-webhook-fnf-r9
--- ---
# Next session handoff # Next session handoff
## Recent commits ## Recent commits
- 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 разрешён таской) - `.admin` коммитов в сессии нет — работа ушла в inbox'ы sched-репо)
- e24b100 (sched repo, их) fix(admin-api): openapi F&F round — wrapped shapes, open health, flat schedule - Репорт r9: `sched/.agents/inbox/2026-08-19T15-02-00Z-admin-alerts-webhook-fnf-r9.md`
- Их ack r9: `.admin/.agents/inbox/.read/2026-08-19T15-06-45Z-sched-alerts-r9-ack.md`
## Что сделано в этой сессии (F&F round 2 retest, письмо sched 19:35Z) - Их приёмка openapi r2 (была раньше, нашёл в .read): `2026-08-18T19-57-00Z-sched-openapi-round2-accepted.md`
- Ретест против **@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 треки ## Open треки
| Трек | Готовность | Entry-point | | Трек | Готовность | Entry-point |
|---|---|---| |---|---|---|
| **sched openapi-client F&F round 2** | 🟢 ретест отправлен 22:55Z; жду их приёмки/след. письма | письмо sched 22:55Z | | **sched F&F r9 webhook alerts** | 🟢 ЗАКРЫТ (их ack 15:06Z, коммит 5024fa1 доковый, ретест не просили) | — |
| **sched openapi-client F&F round 2** | 🟢 ЗАКРЫТ (их приёмка 5/5 уже была в .read — прошлый handoff был стейл, поправил) | — |
| sched CLI-F&F раунд | ✅ ЗАКРЫТ | — | | sched CLI-F&F раунд | ✅ ЗАКРЫТ | — |
| **Следующий sched F&F-цикл** | ⚪ стартует по их пингу (у них в очереди public-release 6×⚪) | их письмо |
| books-sched-integration (Phase 3) | ⚪ их работа; приёмка только по их пингу | — | | books-sched-integration (Phase 3) | ⚪ их работа; приёмка только по их пингу | — |
## Стенды ## Спроси user'а
- **: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), не трогал.
## Заметки на будущее ## Не делать (preemptive guards)
- В спеке `info.version` = 0.1.0 и в 0.1.2, и в 0.2.0 (версия только в package.json) — предложил sched поднять, «на усмотрение». - НЕ стартовать новый sched F&F-цикл без их пинга.
- Wrapped-формы объявлены инлайн в components.responses → имена InlineObject..InlineObject4; если sched назовёт их в components.schemas — станет красивее (предложил). - НЕ трогать sched public-release таски (готовятся к GitHub-переезду).
- Не стал добавлять F-1/F-5 тесты в сьют (нужен keyed-стенд) — предложил sched, «на усмотрение». - НЕ лазить в sched-репо в рабочем дереве (изменения только через их inbox/доску).
## Memory updates за сессию
- **F&F r9 результаты**: 6/6 лестница + 2 бонус-клейма PASS, багов нет. Замечания: `retry.backoffMs` де-факто required (их фикс: проза доков, `maxAttempts:1`+`backoffMs:0`); «catch-up on creation» — свежие расписания вообще не догоняют прошлые слоты (nextRunAt = будущее), гейт lastRunAt гасит history-less late dispatch (once-расписания с at в прошлом).
- **Рецепт стенда против verdaccio**: проектный `.npmrc``@sched:registry=https://verdaccio.kzntsv.site/` (токен уже в `~/.npmrc`), пакеты `@sched/core@0.43.0`/`@sched/daemon@0.4.1`. Приёмник `receiver.mjs` (режимы ok/503/400/seq) лежит в `%TEMP%\sched-alerts-stand\` — переиспользуем.
- **Процесс-раннер sched**: `command[0]` — абсолютный путь (env ребёнка заменяется, PATH не наследуется); node = `C:\nvm4w\nodejs\node.exe`.
- **Бухгалтерия**: r8/r9/openapi-r2 раунды НЕ записаны в `.admin/.tasks/STATUS.md` (верхний блок — r7) — предложено закрытие/запись в ритуале.