meta(handoff): session 2026-08-17 — sched F&F r3 (ssh-pin fix verified, UI cache-bug found), llm-router pool -> routerai+deepseek, pi models updated
This commit is contained in:
@@ -1,45 +1,46 @@
|
|||||||
---
|
---
|
||||||
_last_updated_: 2026-08-16T14:45:00Z
|
_last_updated_: 2026-08-17T08:15:00Z
|
||||||
session_id: 2026-08-16-sched-fnf-kickoff
|
session_id: 2026-08-17-pi-models-llm-router-fnf-r3
|
||||||
---
|
---
|
||||||
|
|
||||||
# Next session handoff
|
# Next session handoff
|
||||||
|
|
||||||
## Состояние: F&F-цикл sched ЗАКРЫТ (4/4 приняты) — ждём раунд 2 (docs-review)
|
## Состояние: три нитки, все в ожидании внешнего шага
|
||||||
|
|
||||||
**Сводка F&F** (эта сессия, 12:50Z–14:42Z): 4 таски → 4 приёмки, **6 фидбеков → 6 фич**:
|
**1. sched F&F раунд 3 — наша часть сделана, ждём от sched cache-фикс.**
|
||||||
1. `createDaemon` import — exports-map `@sched/daemon` (0.1.2)
|
Прогнано (стенд `.admin/.tmp/sched-r2/r3/`, изолированный node_modules: core 0.22.0 / daemon 0.1.15 / ui 0.1.8 из verdaccio):
|
||||||
2. UI-бандл 404 — UI отдельным пакетом `@sched/ui` + бин `sched-ui serve` (0.1.1), daemon headless (`--admin-static` выпилен)
|
- 4 новых раннера протестированы IRL: process ✅, mcp ✅ (vds-ops HTTP, env-токен), docker-envelope ✅, **ssh — найден критичный баг host-key pin** (`keyHash.replace is not a function`: ssh2 отдаёт в `hostVerifier` сырой Buffer, `hostHash` не задан) → sched починил в core 0.21.0 (`hostHash:'sha256'` + Buffer-safe fingerprintMatches), перетест ✅.
|
||||||
3. UI без токена — токен-бокс в морде (localStorage `sched-token` + `?token=`)
|
- Найден **UI cache-баг**: serve/daemon не шлют `Cache-Control` → браузер кэширует `/api/runs`, строки залипают на `running` (progress % виден, терминальный статус нет), лечится только Ctrl+F5. Воспроизведено live (DOM до/после `location.reload(true)`). sched подтвердил, фикс «в треке».
|
||||||
4. Allowlist на dispatch — `Runner.validateConfig`-хук, валидация на load (core 0.12.2)
|
- Live-прогресс (0.22/0.1.15) работает (API растёт 7→100, exit-code→100%, fail→N%), но его **маскирует cache-баг** — репорт с просьбой поднять приоритет отправлен.
|
||||||
5. ntfy только Bearer — basic `user`+`password` в createAlerts (core 0.12.2)
|
- Репорты (3): `victor/sched/.agents/inbox/2026-08-17T06-35-00Z-*`, `07-07-00Z-*`, `07-32-00Z-*`, `08-10-00Z-*`.
|
||||||
6. pollTimeoutMs не в daemon — `DaemonOptions.pollTimeoutMs/pollIntervalMs` + CLI `--poll-timeout` (daemon 0.1.4)
|
**Следующий шаг:** когда sched пингнёт cache-фикс — перетест: поднять `cd .admin/.tmp/sched-r2/r3 && node daemon.mjs` (порт 8082) + `node node_modules/@sched/ui/dist/serve.js --proxy http://127.0.0.1:8082 --port 8083`, проверить, что терминальные строки рендерятся **без Ctrl+F5**.
|
||||||
|
|
||||||
Версии: **core 0.12.2 / daemon 0.1.4 / ui 0.1.1 / mcp 0.1.1**, сьют 363 ✓.
|
**2. llm-router (failover-прокси pi) — конфиг готов, ждёт рестарт службы от юзера (admin).**
|
||||||
|
- Пул переконфигурен: **routerai (deepseek-v4-flash-0731 / deepseek-v4-pro-0813) → deepseek (chat/reasoner)**; teamorouter/orcarouter/anymodel убраны.
|
||||||
|
- **ВАЖНО: служба winsw читает фабричную копию `C:\Users\vitya\AppData\Local\llm-router\config\llm-router.json`**, НЕ проектную `.common/lib/llm-router-proxy/config/`. Обе обновлены (gotcha в `.common/.wiki/concepts/llm-router-failover-proxy.md`).
|
||||||
|
- Ключи: routerai+deepseek в `~/.pi/agent/auth.json` (orcarouter/teamorouter ключи удалены).
|
||||||
|
- **Ждёт:** `Restart-Service llm-router` (админская PS) → потом проверить `curl :8787/health` + minimal probe: в логе `upstream=routerai` (не teamorouter).
|
||||||
|
|
||||||
## 🔴 Следующая сессия: раунд 2 — docs-review после storage-сплита (пинг от sched)
|
**3. pi models.json — готово.** orcarouter/teamorouter убраны, в `routerai` добавлены deepseek/deepseek-v4-flash-0731 + deepseek-v4-pro-0813. Цены от юзера даны в рублях, **переведены в USD** (pi рендерит `$`; курс 83.44 ₽/$): flash 0.0839/0.1678/0.0175, pro 1.594/3.2/0.132. Релоад — при открытии `/model`.
|
||||||
|
|
||||||
Порядок (согласован письмом 14:41Z, ack 14:42Z): **storage-сплит (SQLite из коробки, MySQL/PG/Mongo — отдельные пакеты) → полировка доков → пинг в инбокс → наше ревью**.
|
## Open треки
|
||||||
|
|
||||||
- Формат: что делал → что ожидал → что получил → ссылка на раздел доки.
|
|
||||||
- Фокусы (зафиксированы sched'ом как их чек-лист): **02.quick-start** (все три пути после сплита), **07.storage.md** (выбор адаптера), **10.cli.md / 13.ui.md** (если поверхность менялась).
|
|
||||||
- Репорты → `victor/sched/.agents/inbox/` (файл, gitignored — их монитор подхватывает).
|
|
||||||
|
|
||||||
## Контекст для ревью (накопленное знание)
|
|
||||||
|
|
||||||
- Стенд F&F: `.admin/.tmp/sched-fnf-01/` — daemon.js (custom runner dirSizeWatch), daemon2.js (docker), daemon3.js+worker.js (async/poll), embedded4.mjs (embedded+alerts+retry). Фоновые процессы убиты. sched.db/sched2.db/sched3.db/sched4.db — история ранов.
|
|
||||||
- Пакеты установлены в стенде из verdaccio (registry `https://verdaccio.kzntsv.site/`, npmrc с токеном).
|
|
||||||
- ntfy: `ntfy.vds.kzntsv.site`, basic auth vitya (pass `vds-kzntsv/full-env`), топик `sched-fnf` (admin role → любой топик).
|
|
||||||
- kreknin SSH: `vitya@195.19.90.188`, ключ `~/.ssh/id_ed25519_kreknin`, бэкапы `/volume1/NetBackup/{vds-kzntsv,books-vds}/latest`.
|
|
||||||
- **Правило (рявк 12:46Z): НЕ пушить в victor/sched, НЕ трогать их доску/NEXT_SESSION/wiki. Всё — письмом в их инбокс.**
|
|
||||||
|
|
||||||
## Open треки (не sched)
|
|
||||||
| Трек | Готовность | Entry-point |
|
| Трек | Готовность | Entry-point |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| pilonuxt prod (стек 16) — образ `64c2539`, откаты: `1128ddc`→`f876e70`→`24a13da`→`40806b1`→`340c0e7`→`8b7e8c4` | 🟢 live | `host-stacks/vds-kzntsv/pilonuxt.compose.yml` |
|
| sched F&F r3 cache-фикс перетест | ⚪ ждёт пинг sched | `.admin/.tmp/sched-r2/r3/` + их инбокс |
|
||||||
| pilorama-yandex-business-renewal — ответ Анастасии **до 17.08** | 🔴 active | `.tasks/STATUS.md` монорепы |
|
| llm-router рестарт службы + verify routerai | 🔴 ждёт юзера (admin restart) | `.common/lib/llm-router-proxy/` + AppData-копия |
|
||||||
| pilorama-seo-crawl-audit — GSC-замер через 2-4 нед | 🔴 active | `.tasks/STATUS.md` монорепы |
|
| pi models.json | 🟢 done | `~/.pi/agent/models.json` |
|
||||||
| storage-сплит sched (у них) → docs-review (у нас) | ⚪ ждёт пинг | `victor/sched/.agents/inbox/` |
|
|
||||||
|
|
||||||
## Спроси user'а
|
## Спроси user'а
|
||||||
- F&F закрыт, раунд 2 зарегистрирован. Если до пинга sched появится другая работа (pilorama/монорепа) — обрабатывать по обычной схеме.
|
- **Перезапусти `llm-router` службу** (админская PowerShell) → скажи, я проверю probe→routerai.
|
||||||
|
- Ритуал закрытия (ниже в ответе): ингестить ли знание в вики (см. Memory updates), закрывать ли что-то.
|
||||||
|
|
||||||
|
## Не делать (preemptive guards)
|
||||||
|
- **НЕ пушить в victor/sched, НЕ трогать их доску/NEXT_SESSION/wiki** — только письма в их инбокс (правило F&F).
|
||||||
|
- Не трогать R2-стенд daemon :8080 (общий регресс-стенд, живёт).
|
||||||
|
- Не писать секреты в этот файл (git-tracked).
|
||||||
|
|
||||||
|
## Memory updates за сессию
|
||||||
|
- `.common/.wiki/concepts/llm-router-failover-proxy.md` — секция «Две копии конфига» (служба читает AppData-копию) + актуальный пул routerai→deepseek.
|
||||||
|
- **pi cost = USD** (рендер `$`): рубли от юзера конвертировать по курсу, иначе оценка в ~83 раза выше. (кандидат в вики)
|
||||||
|
- **HTTP_PROXY на этой машине**: `curl 127.0.0.1` уходит в прокси (503 маскирует «down»). Проверки локальных портов — `curl --noproxy '*'` + `netstat`. (кандидат в вики)
|
||||||
|
- sched ssh-runner паттерн: ssh2 `hostVerifier` получает Buffer, hex-диджест — только с `hostHash:'sha256'`; UI: отсутствие `Cache-Control` замораживает таблицы на промежуточном состоянии. (кандидат в вики, если закрепить)
|
||||||
|
|||||||
Reference in New Issue
Block a user