meta(tasks): round 2 docs-review registered (after sched storage-split); NEXT_SESSION updated
This commit is contained in:
@@ -1,59 +1,45 @@
|
||||
---
|
||||
_last_updated_: 2026-08-16T12:50:00Z
|
||||
_last_updated_: 2026-08-16T14:45:00Z
|
||||
session_id: 2026-08-16-sched-fnf-kickoff
|
||||
---
|
||||
|
||||
# Next session handoff
|
||||
|
||||
## 🔴 Следующая сессия: F&F-тестирование sched — таска №1 `dir-size-watch` (старт одобрен vitya)
|
||||
## Состояние: F&F-цикл sched ЗАКРЫТ (4/4 приняты) — ждём раунд 2 (docs-review)
|
||||
|
||||
Вводное письмо sched: `.admin/.agents/inbox/.read/2026-08-16T12-36-34Z-sched-fnf-intro.md`. Мы — первый внешний тестер sched перед продакшеном. **Решаем реальные таски, читая доки самостоятельно** — доки (`docs/content/docs/` в victor/sched, 01.introduction → 12.logging) и есть предмет теста.
|
||||
**Сводка F&F** (эта сессия, 12:50Z–14:42Z): 4 таски → 4 приёмки, **6 фидбеков → 6 фич**:
|
||||
1. `createDaemon` import — exports-map `@sched/daemon` (0.1.2)
|
||||
2. UI-бандл 404 — UI отдельным пакетом `@sched/ui` + бин `sched-ui serve` (0.1.1), daemon headless (`--admin-static` выпилен)
|
||||
3. UI без токена — токен-бокс в морде (localStorage `sched-token` + `?token=`)
|
||||
4. Allowlist на dispatch — `Runner.validateConfig`-хук, валидация на load (core 0.12.2)
|
||||
5. ntfy только Bearer — basic `user`+`password` в createAlerts (core 0.12.2)
|
||||
6. pollTimeoutMs не в daemon — `DaemonOptions.pollTimeoutMs/pollIntervalMs` + CLI `--poll-timeout` (daemon 0.1.4)
|
||||
|
||||
**№1 `dir-size-watch`** (доска victor/sched, ⚪ ready):
|
||||
- Раз в 6 часов посчитать размер каталога (предлагается `C:\sites\snolla\App_Data`, можно свой) → отправить результат в ntfy-топик (напр. `sched-fnf`).
|
||||
- Превышение порога → отдельное алерт-сообщение.
|
||||
- Проверить историю ранов в admin UI.
|
||||
- **Путь решения выбираем сами** — это и есть тест доков.
|
||||
Версии: **core 0.12.2 / daemon 0.1.4 / ui 0.1.1 / mcp 0.1.1**, сьют 363 ✓.
|
||||
|
||||
**Отчёт** (в письме sched): косяк доки/кода/непонятное место → письмо в `victor/sched/.agents/inbox/` (файл + коммит в их репо? — sched пишет «коммит», уточнить механизм при первой отправке; мы писали файлом в `.agents/inbox/`, gitignored — sched-монитор подхватывает). Формат: что делал → что ожидал → что получил → ссылка на раздел доки. Гладкое — пара строк тоже. **Мутации разрешены** (vitya подтвердил): таски могут слать письма vitya, класть артефакты в minio.
|
||||
## 🔴 Следующая сессия: раунд 2 — docs-review после storage-сплита (пинг от sched)
|
||||
|
||||
**Таски выдаются по одной** — после приёмки №1 придёт №2 (docker-runner → async/poll → custom/embedded).
|
||||
Порядок (согласован письмом 14:41Z, ack 14:42Z): **storage-сплит (SQLite из коробки, MySQL/PG/Mongo — отдельные пакеты) → полировка доков → пинг в инбокс → наше ревью**.
|
||||
|
||||
## Контекст этой сессии (sched-инбокс)
|
||||
- Формат: что делал → что ожидал → что получил → ссылка на раздел доки.
|
||||
- Фокусы (зафиксированы sched'ом как их чек-лист): **02.quick-start** (все три пути после сплита), **07.storage.md** (выбор адаптера), **10.cli.md / 13.ui.md** (если поверхность менялась).
|
||||
- Репорты → `victor/sched/.agents/inbox/` (файл, gitignored — их монитор подхватывает).
|
||||
|
||||
- Верифицировал ответ sched на моё peer-ревью (11:10Z): `0ce7e66`, сьют 345 ✓, typecheck чист, 🔴-фиксы в коде подтверждены (polling-guard, triggerTask enqueued?, tick error-boundary).
|
||||
- Решение vitya по `review-poll-timeout-vs-lockttl`: сделать запас — дефолт `pollTimeoutMs` 25min < `lockTtlMs` 30min. **Сделано мной напрямую в victor/sched** (коммит `8c1e8da`, core 0.12.1, сьют 346 ✓) — vitya отчитал за прямое редактирование чужого репо, извинение sched отправлено (`.agents/inbox/2026-08-16T12-43-20Z-admin.md`). **Правило на будущее: решение по чужому репо → таска на их доску, делают они.**
|
||||
- Готча: публикация в verdaccio ушла со stale-dist (билд не пересобран) → 409, unpublish + rebuild + republish. **Перед publish: `yarn build` + проверка dist.**
|
||||
## Контекст для ревью (накопленное знание)
|
||||
|
||||
## Recent commits (admin)
|
||||
- (эта сессия — коммитов в .admin нет; работа велась в victor/sched: `8c1e8da`)
|
||||
- `71a8a607` chore(ops): pilonuxt restart — content-api viewModel cache reset, volume_price renders
|
||||
- `5b3a1b2f` chore(deploy): pilonuxt 64c2539 LIVE — admin-api 0.11.0 array-canon
|
||||
- `3133c0e8` chore(deploy): pilonuxt 1128ddc LIVE — core 0.26.7 fixes new-products 500
|
||||
- `070431df` chore(deploy): pilonuxt f876e70 LIVE — remaining 3 catalog placeholders -> real photos
|
||||
- `694a4a96`, `c860da3f`, `b9a626e6`, `ac647241`, `a21b0491` — см. git log
|
||||
- Стенд 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 треки
|
||||
## Open треки (не sched)
|
||||
| Трек | Готовность | Entry-point |
|
||||
|---|---|---|
|
||||
| **sched F&F №1 dir-size-watch** (см. блок выше) | ⚪ ready, ждёт новую сессию | `victor/sched/.tasks/STATUS.md` + `.agents/inbox/.read/2026-08-16T12-36-34Z-sched-fnf-intro.md` |
|
||||
| pilonuxt prod (стек 16) — **образ `64c2539`** (admin-api 0.11.0 array-canon), откаты: `1128ddc`→`f876e70`→`24a13da`→`40806b1`→`340c0e7`→`8b7e8c4` | 🟢 live | `host-stacks/vds-kzntsv/pilonuxt.compose.yml` + `apps/web/.wiki/concepts/docker-deploy.md` (монорепа) |
|
||||
| loader-new-products (монорепа) — закрыта прогером 🟢 | done | `.tasks/STATUS.md` монорепы |
|
||||
| pilonuxt prod (стек 16) — образ `64c2539`, откаты: `1128ddc`→`f876e70`→`24a13da`→`40806b1`→`340c0e7`→`8b7e8c4` | 🟢 live | `host-stacks/vds-kzntsv/pilonuxt.compose.yml` |
|
||||
| pilorama-yandex-business-renewal — ответ Анастасии **до 17.08** | 🔴 active | `.tasks/STATUS.md` монорепы |
|
||||
| pilorama-seo-crawl-audit — GSC-замер через 2-4 нед | 🔴 active | `.tasks/STATUS.md` монорепы |
|
||||
| storage-сплит sched (у них) → docs-review (у нас) | ⚪ ждёт пинг | `victor/sched/.agents/inbox/` |
|
||||
|
||||
## Спроси user'а
|
||||
- F&F №1: каталог для замера — `C:\sites\snolla\App_Data` (как предлагает sched) или свой? Порог алерта — какой?
|
||||
- (если придёт письмо от прогера с новым sha) — пересборка стека 16 по обычной схеме: ff-merge → build (secret verdaccio_token) → push → Portainer PUT (скрипт `.tmp/redeploy-stack16.ps1 -OldTag X -NewTag Y`, пароль из `pass vds-kzntsv/full-env` PORTAINER_ADMIN_PASS) → verify мимо LAN-DNS (`--resolve 89.253.255.94`).
|
||||
- Простые рестарты (без пересборки) — `.tmp/restart-stack16.ps1`.
|
||||
|
||||
## Не делать (preemptive guards)
|
||||
- НЕ редактировать victor/sched напрямую по своим решениям — только через таски на их доску (см. инцидент этой сессии).
|
||||
- НЕ деплоить/рестартить pilonuxt без письма от прогера или слова vitya.
|
||||
- НЕ трогать контент CMS (MoreThenCms) — прогер работает с данными через admin-api/loader.
|
||||
- НЕ писать в монорепу pilorama98.ru (`.tasks`/`.wiki`) без явного запроса — прогер ведёт свою сторону сам.
|
||||
|
||||
## Memory updates за сессию
|
||||
- (эта сессия — wiki-ингест НЕ делался; кандидаты на промоушен в shared-wiki см. предложение в чате: verdaccio stale-dist gotcha + inbox-reply конвенция)
|
||||
- NEW `concepts/pilonuxt-restart-vs-redeploy-2026-08-16.md` — семантика рестарт vs деплой на стеке 16 (in-memory viewModel кэш content-api сбрасывается рестартом; деплой — только для кода). +log.md +index.md.
|
||||
- Монорепа (прогер): `lazy-data-not-found-404.md` (soft-404 fix), `admin-api-content-wire.md` (array-canon 0.11.0), `cms-edits-cache-restart.md`, `v-html-on-component-ssr.md`, `admin-api-content-edit.md` — заингестено его стороной, НЕ дублировать.
|
||||
- F&F закрыт, раунд 2 зарегистрирован. Если до пинга sched появится другая работа (pilorama/монорепа) — обрабатывать по обычной схеме.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Admin Task Board
|
||||
_Updated: 2026-08-16 (14) — 🟢 **[sched-fnf-04-embedded-alerts] ACCEPTED — F&F цикл закрыт.** Приёмка №4 (14:40Z): замечаний нет. Итоги sched: 6 багов/пробелов → 6 фич (exports-map 0.1.2, @sched/ui serve 0.1.1 + токен-бокс, validateConfig 0.12.2, ntfy basic 0.12.2, pollTimeoutMs 0.1.4). Версии: core 0.12.2 / daemon 0.1.4 / ui 0.1.1 / mcp 0.1.1, сьют 363 ✓. У них дальше: storage-сплит (по фидбеку) + полировка доков; приглашение на след. раунд — инбокс открыт.
|
||||
_Updated: 2026-08-16 (14) — 🟢 **[sched-fnf-04-embedded-alerts] ACCEPTED — F&F цикл закрыт.** Приёмка №4 (14:40Z): замечаний нет. Итоги sched: 6 багов/пробелов → 6 фич (exports-map 0.1.2, @sched/ui serve 0.1.1 + токен-бокс, validateConfig 0.12.2, ntfy basic 0.12.2, pollTimeoutMs 0.1.4). Версии: core 0.12.2 / daemon 0.1.4 / ui 0.1.1 / mcp 0.1.1, сьют 363 ✓. У них дальше: storage-сплит (по фидбеку) + полировка доков; раунд 2 согласован: docs-review после storage-сплита + полировки (пинг от sched, формат делал/ожидал/получил/раздел, фокусы: quick-start все пути, 07.storage, 10.cli, 13.ui)
|
||||
_Updated: 2026-08-16 (13) — 🟢 **[sched-fnf-03-async-poll] ACCEPTED + 🟡 [sched-fnf-04-embedded-alerts] DONE (репорт отправлен).** Приёмка №3 (14:31Z): pollTimeoutMs проброшен в daemon (0.1.4, +pollIntervalMs, CLI --poll-timeout), доки 10.cli.md/05.protocol.md. №4 embedded (финальная): createEngine+internal runner+sqlite+syncTasks в одном скрипте — реальная проверка свежести бэкапов kreknin по SSH (vds-kzntsv 12.4h / books-vds 11.4h → succeeded; порог 1h → failed «STALE backups»); retry 3x (a1 fail → a2 fail → a3 succeed, triggerTask не ретраится — доки честны); createAlerts ntfy **basic auth работает** («[sched] backup-freshness failed» в топике). Цикл F&F закрыт, замечаний нет. Репорт: `victor/sched/.agents/inbox/2026-08-16T14-36-01Z-admin-fnf-04-report.md`._
|
||||
_Updated: 2026-08-16 (12) — 🟢 **[sched-fnf-02-docker-runner] ACCEPTED + 🟡 [sched-fnf-03-async-poll] DONE (репорт отправлен).** Приёмка №2 (14:24Z): оба замечания стали фичами — validateConfig-хук (allowlist на load, abort при старте, core 0.12.2) + ntfy basic auth (user+password в createAlerts, daemon 0.1.3), сьют 362 ✓. №3 async/poll: свой воркер (:8293) envelope accepted+poll — happy path queued→running(50)→succeeded (progress 100, 3.5s), timeout-кейс hung → failed «poll timeout after 15000ms» (через createEngine, т.к. daemon не пробрасывает pollTimeoutMs — замечание в репорт). Фиксы №2 подтверждены (abort на load + ntfy basic в коде). Репорт: `victor/sched/.agents/inbox/2026-08-16T14-27-54Z-admin-fnf-03-report.md`._
|
||||
_Updated: 2026-08-16 (11) — 🟢 **[sched-fnf-01-dir-size-watch] ACCEPTED + 🟡 [sched-fnf-02-docker-runner] DONE (репорт отправлен).** Приёмка №1 (13:54Z): 3 бага дистрибутива починены — exports-map `@sched/daemon` (0.1.2), UI в `@sched/ui` 0.1.1 с бином `sched-ui serve` (daemon headless, --admin-static удалён), токен-бокс в морде, /api/health доки. №2 docker-runner: one-shot alpine:3.20 `wget --spider` на pilorama98.ru → ntfy sched-fnf, exit code → status (0=succeeded / 1=failed+алерт). Обе ветки + allowlist (busybox → fail-fast «not in allowlist», контейнер не спавнился) + новый UI (sched-ui serve --proxy, токен-бокс localStorage, Runs=2). Репорт: `victor/sched/.agents/inbox/2026-08-16T14-17-55Z-admin-fnf-02-report.md`. 2 замечания: allowlist проверяется на dispatch не на load (доки 03.tasks.md обещают load-time validation); createAlerts ntfy только Bearer, basic не поддержан._
|
||||
|
||||
Reference in New Issue
Block a user