Files
admin/.tasks/NEXT_SESSION.md

44 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
_last_updated_: 2026-08-17T21:35:00Z
session_id: 2026-08-17-pi-sched-fnf-r7
---
# Next session handoff
## Recent commits
- `fix: r7-репорт перенесён в правильный инбокс sched/.agents/inbox (был victor/sched — не читался)`
- `tasks: sched-fnf-r7 — репорт отправлен (91/92 PASS + F1/F2), приёмка r6 16/16; ждём разбор`
- `tasks: sched-fnf-r6 — репорт отправлен (99/99 PASS + F1..F10), ждём приёмки` (предыдущая)
## Open треки
| Трек | Готовность | Entry-point |
|---|---|---|
| sched F&F раунд 7 — T1T5 на живом демоне | 🟢 репорт отправлен 21:17Z, ждёт разбора F1/F2 | `sched/.agents/inbox/2026-08-17T21-17-00Z-admin-fnf-r7-report.md` |
| Приёмка r6 (D1/F3/F5/F10) | 🟢 16/16 PASS, включена в репорт r7 | то же письмо |
| llm-router рестарт службы + verify routerai | 🔴 ждёт юзера (admin restart) | `.common/lib/llm-router-proxy/` + AppData-копия |
## Спроси user'а (при следующем контакте)
- Перезапусти `llm-router` службу (админская PowerShell) → скажи, проверю probe→routerai (висит с прошлых сессий).
- Если sched пришлёт retest-пинг по находкам r7 (F1/F2) — прогони стенд r7 снова.
## Не делать (preemptive guards)
- **НЕ пушить в sched, НЕ трогать их доску/NEXT_SESSION/wiki** — только письма в их inbox (правило F&F).
- **⚠️ Инбокс sched — только `C:/Users/vitya/projects/sched/.agents/inbox/`** (НЕ `victor/sched/` — там ничего не читается; урок r7, репорт пришлось переносить).
- Не трогать R2-стенд daemon :8080 (общий регресс-стенд, живёт).
- Не писать секреты в этот файл (git-tracked).
- В r7 стенде CLI-демоны убивать через `taskkill //PID <pid> //F //T` (cmd-обёртка не убивает дерево) — в t5 уже исправлено (killTree).
## Memory updates за сессию
- **sched r7 репорт отправлен: 91/92 PASS + F1/F2.** Стенд `.admin/.tmp/sched-r2/r7/` (core 0.34.0/daemon 0.1.28/mcp 0.3.9/storage-* 0.2.9/ui 0.1.13, verdaccio latest).
- T1 runtime-task-api 23/24: POST /tasks 201/200 upsert (paused preserved), fail-fast 4xx ×4, /tasks/:name/schedule nextRunAt+404.
- **F1:** runtime-таска дизаблится следующим syncTasks. Пинг r7 «НЕ дизаблятся (§148)» НЕ прав; 09.admin-api.md §140-141 («disabled by the next sync») + код (`syncTasks` дизаблит всё не из файла) согласны; 03.tasks.md §144-146 («on the next daemon start») вводит в заблуждение — live-sync (runSyncOnce/тик 60с) дизаблит тоже.
- T2 run-cancel 17/17: sync-ран 30с → cancel → cancelled, PID реально исчез из tasklist; 409 на завершённом; DELETE active 409 / finished 204+gone. Нюанс: POST /tasks/:name/run для sync-раннеров блокирующий (ждёт финала) — cancel тестил через interval-расписание.
- T3 live-sync-recovery 12/12: правка tasks.json подхватывается ≤1с (syncIntervalMs); ghost-ран → cancelled «orphaned run recovered» + лок снят сразу (новый триггер без ожидания lockTtl); битый JSON → демон жив, лог-ошибка, последнее доброе состояние, после починки файла — подхват без рестарта.
- T4 log-offset 13/13 sync + 8/8 async: offset 0 = весь лог (log:null), offset N = хвост + logTotalLength, ≥ total = пустой chunk; инкремент жив на async-пути (accepted+poll) — монотонный рост, только новые байты. Sync process-раннер пишет лог по завершении — mid-run читать нечего (by design).
- T5 lock-heartbeat 15/15: CLI-демон, lockTtl 20/heartbeat 5/watchdog 2s + sleep-30 sync-ран → на t=21s ровно 1 running, succeeded, лок снят, failCount 0; hard-kill демона → второй инстанс: orphan cancelled + ре-диспатч + ровно 1 active.
- **F2:** валидации `--lock-heartbeat < --lock-ttl` НЕТ`sched --lock-ttl 20 --lock-heartbeat 20` и `30` стартуют. Пинг + 12.cli.md («must be < lock-ttl») + 04.runs.md обещают отказ; в engine.ts (createEngine) и cli.ts (positiveNumber) сравнения нет. Риск: heartbeat ≥ ttl → долгий sync-ран рейпится вотчдогом (тот самый класс бага, ради которого фича). Рекомендация в репорте: throw в createEngine +/или отказ в cli.
- T6 chore 3/3: RunnerRunHooks type-only экспорт из published core (в рантайме нет — ожидаемо), tsc --noEmit exit 0 на strict-стенде.
- Приёмка r6 16/16: D1 createDaemon({storage}) работает (внешний адаптер, без dbPath); F3 ssh-пин называет received+expected отпечатки; F5 manual → lastRunId/lastRunAt, schedule untouched; F10 lastRunStatus в /schedules+/tasks + UI-колонка «last status» (проверено в published bundle ui 0.1.13).
- Харнессы: `t1..t6*.mjs` + `r6-acceptance.mjs` + `long-task.mjs` (воркер, пишет PID). CLI-демоны: `node_modules/.bin/sched.cmd` (shell:true).
- r7-пинг ссылался на «core 0.32.0 / daemon 0.1.26», фактически опубликованы 0.34.0 / 0.1.28 (письмо 20:57Z) — это latest, использовал их.