6.8 KiB
6.8 KiB
_last_updated_, session_id
| _last_updated_ | session_id |
|---|---|
| 2026-08-23T14:00:00Z | books-incident-sched-spin-closed-2026-08-23 |
Next session handoff
Что сделано в этой сессии (всё закрыто)
books sched: оба тенанта на file-managed (durable config) — DONE
Продолжение инцидента 2026-08-23 (спин ozonFbsPostingsSyncronization). Хронология этой сессии:
- Письмо books 13:14Z: slovo verify PASS (25 тасок, 23171 б, бэкап на месте); bookva-файл готов (commit
6d4f163bookva-overlay main, 23 таски, data{idSeller:1}, recipients у отчёта сохранены). - Bookva-деплой выполнен (13:49-13:55Z): файл → volume
bookva-sched-config(бэкапtasks.json.bak-pre-6d4f163; diff до заливки = только 3 Ozon-таски). Live-sync НЕ конвертирует runtime-таски (sync их не трогает — только API) →DELETE /api/tasks×3 +DELETE /api/schedules/:id×3 (все 204). Verify: 24 таски всеfileManaged:true, дублей 0, schedules data{idSeller:1}(report: recipients+idSeller:1), ручной триггер постинга →succeeded {sellersProcessed:2}. #991 закрыта (closing-note с verify). - Письмо books 13:35Z (после «ты висишь»): recipients отчёта восстановлены (books commit
854e381, 25 тасок) + SMTP-фикс:- Slovo-файл
854e381залит in-place в/opt/books/sched/tasks.json(бэкап.bak-pre-recipients), live-sync верифицирован (schedule report: data{idSeller:2, recipients:[3]}, fileManaged:true, next 07:00Z завтра). - SMTP:
/opt/books/task-runner/config/default.json→mailSettings.from+transport.auth.user/pass=e-16513832@yandex.ru/ app-pass (изpass snolla-smtp/full-env). ⚠️ Поменял иfrom(старыйnoreply@snolla.comмёртв — Yandex отключил протокол-доступ 14.08; SMTP требует from==auth-user). Бэкап.bak-pre-smtp-fix. books-task-runner перезапущен (config кэшируется при первом send — lazy initsendReportsByEmail.js).nodemailer.verify()→ SMTP_VERIFY_OK. - Пинг books отправлен (13:49Z) → ждём ручной прогон отчёта
emailSent: true.
- Slovo-файл
- Ghost
system-cleanup-task-runsудалён на ОБОИХ тенантах (books-sched + bookva-sched, 204×2) — disabled-сирота, books разрешал.
Итог: slovo (25 тасок, recipients live) + bookva (23 таски, idSeller:1) — оба file-managed, дублей 0. Финальное подтверждение books 14:07Z: их спот-чек сходится (23 таски, runtime 0, ghost 0, 3 Ozon fileManaged:true), emailSent:true, #991 done — закрыто обеими сторонами.
Открытые треки
| Трек | Статус | Entry-point |
|---|---|---|
emailSent: true (13:50Z, run 6fb9dc84, письмо abddcf07…@yandex.ru), books согласен с from-сменой |
🟢 закрыто | — |
| 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) |
| #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 контейнера. Роуты:GET /api/tasks|schedules|runs,DELETE /api/tasks/:name,DELETE /api/schedules/:id,POST /api/tasks/:name/run(runs-история сохраняется). Доступ через SSH на books-vds (~/.ssh/id_ed25519_books_ops, root@89.253.255.133). - Конфиги: slovo
/opt/books/sched/tasks.json(bind, in-place cp), bookva volume/var/lib/docker/volumes/bookva-sched-config/_data/tasks.json. Live-sync ≤60с, рестарт НЕ нужен для файла; task-runner config (/opt/books/task-runner/config/default.json) — кэшируется, рестарт обязателен. - SMTP рабочие креды:
pass show snolla-smtp/full-env(e-16513832@yandex.ru, app-pass). - Sched-демон: официальный
@sched/daemon(репоsched, packages/admin-api) — роуты вpackages/admin-api/src/admin-api.ts.
Не делать (guards)
- Не диспатчить сборки/деплои books без нового письма — все запрошенные выполнены.
- Не перезаписывать прод tasks.json сгенерированным — правки точечные, in-place (
sed > tmp && cat tmp > file, не mv). - Не трогать runtime-таски в сторе (fileManaged:false) без команды books.
- Не чистить legacy agendaJobs без отдельного запроса.
- Не архивировать handoff-файлы (sliding contract).
noreply@snolla.com— МЁРТВЫЙ ящик (Yandex отключил 14.08); не возвращать в конфиги.
Предложено юзеру (статус на конец сессии)
- ✅ Wiki-ingest выполнен (юзер «да»):
concepts/sched-runtime-to-file-managed-migration.mdсоздан, index.md+1, log.md, коммит5be661ac(вместе с handoff). - 🟡 Открытое предложение: выровнять frontmatter существующих .wiki-страниц (
related: [[...]]без кавычек ломает YAML-парсингknowledge.suggest_promote— упал наadmin-api-surface-normalization/namespace-consolidation-snollaи т.п.). Мелкая таска, если юзер захочет. - 🟡 #803 llm-web-proxy (дашборд-фиксы за прошлую сессию) — нота/закрытие на усмотрение юзера.