7.0 KiB
7.0 KiB
_last_updated_, session_id
| _last_updated_ | session_id |
|---|---|
| 2026-08-23T11:32:43Z | books-incident-sched-spin-closed-2026-08-23 |
Next session handoff
Что сделано в этой сессии (всё закрыто)
LWP (llm-web-proxy) — дашборд, 3 фикса (v0.1.13→v0.1.15, запушены, сервер перезапущен)
- v0.1.13: таймлайн «Запросы по времени» был фейковым (бары =
reqs/24плоская константа → все одинаковые).metrics.jsтеперь бакетит реальные tsreq-событий →timeline {startMs,endMs,buckets}(null при нуле); дашборд рисует гистограмму, нулевые бакеты тёмные, empty-state «нет запросов». +4 теста, 120/120. - v0.1.14: метки над барами были «29791275м» (минуты с эпохи) → локальное HH:MM (
toLocaleTimeString). - v0.1.15: убран лишний суффикс «м».
- Локальный репо:
C:/Users/vitya/projects/.common/lib/llm-web-proxy(симлинк глобальной установки; бинарьlwp, сервер 127.0.0.1:8788, autostart vbs).
books инцидент (спин ozonFbsPostingsSyncronization, ~75 req/сек) — ЗАКРЫТ
Полная цепочка (переписка в books/.agents/inbox/, отчёты .admin 10:22→11:35Z):
- Деплой #974/#975 (sched tenant=all, run #565): CORE_SHA-инъекция + slovo bind-директории
/opt/books/sched:/app/config:ro+--tasks /app/config/tasks.json+DOCKER_CONFIG; bookva-overlayDEPLOY_AT. Live-sync #975 верифицирован на обоих тенантах (in-place правка → подхват ≤60с, RestartCount 0). #977 (bookva probe) тоже. - Спин-инцидент: корень = slovo-БД seller 1 (Bookva, 50542) держал ключ Slovo (артефакт tenant-split; оба ключа были d6227b). Фикс:
UPDATE books.sellers SET api_key=<ключ Bookva ddc24146…/f700f3> WHERE id_seller=1(взят из bookva-db; хэш-верификация до/после). - Флуд:
docker restart books-task-runner+POST /tasks/ozon fbs postings syncronization/pause(10:40Z). Мёртв, 0 ошибок с тех пор. - Миграции расписаний (
packages/tools/sched-schedules-create.js): slovo 5+5, bookva 3+3, errors 0, dedupKeyagenda:*(идемпотентно). Schedules несутdata {idSeller:2}из agendaJobs. Стуктура: стора sched = mongoagendaDb(sched_tasks/sched_schedules); runtime-таски fileManaged:false по дизайну (RUNTIME_TASK_NAMES) — НЕ возвращать в tasks.json. - Код-фикс
2a38fb5(break в outer catch) — собран (#566, реестр digest 83c263b9→8c3a4d9b) и задеплоен на ОБА task-runner (образ4de2c54d). ⚠️ slovo task-runner пересоздаётся только через job-scheduler-стек (STACK_ID_SLOVO_TASK_RUNNERпуст); bookva — через task-runner-стек. Первый деплой был преждевременным (до конца сборки) — повторный деплой исправил. - Resume постинга + смоук-ран:
succeeded {sellersProcessed: 2}, спин-сигнатуры нет, Invalid Api-Key 0. Часовое расписание армировано (12:01Z). - ⚠️ ОТКАТ ключа (12:07Z): БД-фикс seller 1 был ошибкой — slovo-ключ у seller 1 (Bookva) в slovo-БД — НАМЕРЕННАЯ заглушка (анти-утечка: slovo-стек не должен ходить в Ozon под Bookva-кабинетом). Откатил
968302d1…обратно (books подтвердил владелец). НЕ «чинить» снова: slovo-БД seller 1 (50542) = slovo-ключ (d6227b) — это контракт. Код-фикс break-on-error делает заглушку безопасной (фейл-фаст, не спин).
Открытые треки
| Трек | Статус | Entry-point |
|---|---|---|
| books #990/#991 (restore/durable-config, runtime-owned) | 🟡 на books-доске | их сторона; фоллоу-ап: перевод 5 runtime-тасок в file-managed ИЛИ документирование runtime-контракта |
| legacy agendaJobs (60 «posting»-сирот в agendaDb slovo+bookva) | 🟡 | чистка отдельно (не трогал, согласовано) |
fbsPostings.js:73 TypeError (undefined.stocks, per-posting edge case) |
🟡 | флагнул books в отчёте 11:35Z |
| meeting-room — merge-conflict (UU) | 🟡 | разрешить → миграция 2 тасок + 12 файлов |
| coworker-skill push на github | 🟡 ждёт решения | meta-leak риск; решение за оператором |
| [#803 llm-web-proxy] (доска) | 🔴 active | next action в STATUS.md (executors/translators из omniroute); дашборд-фиксы v0.1.13-15 не влияют на задачу |
| #301 fix-nl-vds-reality-pq-dest | 🟡 | server-side done, ждёт client-side |
| MCP-кэш (meta_status) | 🟡 | synced 2026-08-22 22:19 |
Полезные факты (креды/доступы — pass, не wiki)
- Portainer books VDS:
https://portainer.kzntsv.site(X-API-Key изpass show books-vds/full-env), endpoint 1. - Sched admin API: контейнерные IPs в сети
proxy(books-sched 172.20.0.20:3031, bookva-sched 172.20.0.12:3031), Bearer =SCHED_ADMIN_KEYиз env контейнера. Доступ только через SSH-туннель на books-vds (~/.ssh/id_ed25519_books_ops). ⚠️ локальный порт 27017 занят docker-контейнером — туннели на другие порты (37017+). - Schedules/migrations:
packages/tools/sched-schedules-create.{slovo,bookva}.cmd(mongo agendaDb, tz slovo=Europe/Moscow / bookva=UTC).
Не делать (guards)
- Не диспатчить сборки/деплои books без нового письма — все запрошенные выполнены.
- Не перезаписывать прод tasks.json сгенерированным — правки точечные, in-place (
sed > tmp && cat tmp > file, не mv). - Не трогать runtime-таски в сторе (fileManaged:false) без команды books.
- Не чистить legacy agendaJobs без отдельного запроса.
- Не архивировать handoff-файлы (sliding contract).
Предложено юзеру (не сделано — жду ратификации)
- Wiki-ingest: краткий concept про sched runtime-таски + инцидент 2026-08-23 (в .admin/.wiki/concepts или shared wiki).
- Закрытие/нотка на #803 llm-web-proxy (дашборд-фиксы за сессию).