Files
admin/.tasks/NEXT_SESSION.md

5.9 KiB
Raw Blame History

_last_updated_, session_id
_last_updated_ session_id
2026-08-17T21:35:00Z 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, использовал их.