tasks(NEXT_SESSION): handoff — 0.4.0 deployed, journalctl verify after 06:21 Sun

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-30 09:03:48 +03:00
parent b8a07fee85
commit fea9fd4f53

View File

@@ -1,53 +1,65 @@
--- ---
_last_updated_: 2026-05-29T13:30:00+03:00 _last_updated_: 2026-05-30T15:00:00+03:00
session_id: 2026-05-29-labtools-slow-noissue session_id: 2026-05-30-vehicles-loader-0.4.0-deploy
--- ---
# Next session handoff # Next session handoff
_Сессия: разбор «labtools.ru тормозит после переезда на RUVDS». Итог — **non-issue**: _Сессия: деплой `vehicles-loader 0.4.0` (progress-logging) на прод СТО Стайер. Build здесь →
прод на RUVDS быстрый (~0.35s TTFB), «медленно» было артефактом замера с воркстейшн push в `docker.stostayer.ru` → на хосте клиента pull + re-tag `:latest`=0.4.0. **Деплой выполнен,
(LAN-DNS резолвит домен в локальную stale-копию). Инфру не трогал, traefik не правил. осталась только live-verify** на боевом прогоне таймера — он по природе требует changed-выгрузки,
Открытые ES-incident треки прошлой сессии перенесены ниже — ещё живые._ а сегодняшняя уже импортнута на 0.3.0. User выбрал ждать natural 06:20 (не форсить baseline)._
## ГЛАВНОЕ для след. сессии — live-verify (после 06:21 MSK Sun 2026-05-31)
Таймер `vehicles-loader.timer` next trigger = **Sun 2026-05-31 06:21:36 MSK**. После него:
```
plink -ssh -P 20435 -batch victor@new.stostayer.ru -pw '<pass stostayer/client ssh_pass>' \
"echo '<ssh_pass>' | sudo -S journalctl -u vehicles-loader.service --since '2026-05-31 06:00' --no-pager"
```
(docker/journalctl на хосте — через `sudo -S`, victor не в docker/adm-группе; `-batch` чтобы plink не висел на host-key промпте — ключ уже закэширован.)
**Acceptance to confirm (закрывает таску 🟢):**
- В логе видно движение: `▶ <phase> — start`, периодический батч-прогресс (`manufacturers: 18/183 …`), `✓ <phase> — done: N rows`, per-model `delete-sweep`. **НЕ тишина** после трёх `Total …`.
- Прогон шёл на 0.4.0 (не skipped-unchanged) — т.е. 1С перезаписала файл в 6:00 и checksum разошёлся.
- `importRun` новый `ok`-ряд (MariaDB `stostayer`, creds `pass stostayer/client`).
- Email-отчёт ушёл (попутно закрывает остаток email-SEND из `vehicles-loader-image-distribution`).
Если прогон оказался `skipped-unchanged` (1С не обновила файл) → подождать след. суток ИЛИ обсудить с user форс baseline-reset.
## Recent commits ## Recent commits
- `063910e2` incident(books-vds-es): true RCA — ransom-бот через открытый :9200 - `b8a07fee` tasks(vehicles-loader-progress-deploy): 0.4.0 deployed, verify pending 06:21
- `63708fe6` tasks(NEXT_SESSION): session-close — ES restore + 2 preventive controls live - `7ec62009` tasks(vehicles-loader-progress-deploy): new task — deploy 0.4.0 + live-verify
- `48a5cf39` tasks(restore-es-indices-books-vds): closed — snapshot restore + 2 controls
## Что сделали в эту сессию (labtools) ## Состояние деплоя (что уже сделано)
- Жалоба: labtools.ru медленно отдаётся на RUVDS, pilorama98.ru норм. - Образ `docker.stostayer.ru/vehicles-loader:0.4.0` собран здесь (811MB, digest `f2e10b1f0…`), запушен.
- **Root cause = артефакт замера, не дефект прода.** Публичный DNS labtools.ru/pilorama98.ru → RUVDS `80.64.31.36`; прод TTFB ~0.35s (curl --resolve), картинки 0.130.5s — быстро. Но с этой воркстейшн LAN-DNS резолвит домены в **локальную stale-копию** (home traefik :4443 → IIS :8089), которая тормозит для тенанта labtools (HTML TTFB 1.45s vs pilorama 0.25s на том же :8089). - На хосте: `vehicles-loader:latest``0f8a4dd46236` = 0.4.0; `0.3.0` (`5407c0563e44`) retained для rollback (re-tag обратно если регресс).
- traefik-конфиги `labtools.yml``pilorama98.yml` побайтово (оба → host.docker.internal:8089) → в traefik чинить нечего. - timer `enabled`, `active (waiting)`.
- К концу сессии user подтвердил «labtools.ru стал отдаваться нормально» (видимо дорезолвился кэш на RUVDS). **Ничего не менял.**
- Memory сохранён: `workstation-lan-dns-serves-local-cms-copy` (валидировать прод только через `curl --resolve` / не-LAN, браузер через MCP тоже бьёт в локальную копию).
## Open треки (перенос из ES-incident сессии — ещё живые) ## Открытые треки (перенос, ещё живые)
| Трек | Готовность | Entry-point | | Трек | Готовность | Entry-point |
|---|---|---| |---|---|---|
| `harden-books-vds-exposed-ports` | ⚪ ready — exposure-audit сделан | `.tasks/harden-books-vds-exposed-ports.md` | | `harden-books-vds-exposed-ports` | ⚪ ready (user сказал «пока нет» на mongo-allowlist) | `.tasks/harden-books-vds-exposed-ports.md` |
| `books-bookva-user-whitelist-gathering` | ⚪ ready — gathering от учредителя Bookva | `.tasks/STATUS.md` | | `books-bookva-user-whitelist-gathering` | ⚪ ready — gathering от учредителя | `.tasks/STATUS.md` |
| `stateful-split-volume-copy` | ⚪ ready — maintenance window 510 мин | `.tasks/STATUS.md` | | `stateful-split-volume-copy` / `infra-inventory` | ⚪ ready | `.tasks/STATUS.md` |
| `infra-inventory` | ⚪ ready — two-tier (public + admin) | `.tasks/STATUS.md` |
| `books-stateful-split-execution` / `books-vds-bookva-bootstrap` / `books-dns-cutover-bookva` | 🔵 blocked | `.tasks/STATUS.md` |
## Спроси user'а ## Спроси user'а
- **epz-поиск end-to-end не подтверждён руками** (из прошлой сессии) — починено место падения (`tenant undefined`), но аутентифицированный запрос из UI не делался. Проверить epz в обоих UI (bookseller.kzntsv.site = bookva, bookva.kzntsv.site = slovo). Downstream → логи `books-web`/`bookva-web`. - (deploy) Ничего блокирующего — verify автоматом по таймеру. Если хочешь форс-проверку раньше 31.05 — нужен baseline-reset (внеплановое email клиенту).
- **harden-ports**: user сказал «пока нет» на немедленный mongo-allowlist. Не начинать без явного запроса.
## Не делать (preemptive guards) ## Не делать (preemptive guards)
- **Не возвращать публикацию `:9200`** (и stateful-портов) на `0.0.0.0` без IP-allowlist — free-ES без auth, ransom-бот уже отметился. - **Не форсить baseline-reset** vehicles-loader без явного запроса — шлёт клиенту внеплановое email-письмо.
- **Не трогать mongo/mariadb/minio порты** без подтверждения user'а. - **Не возвращать `:9200` / stateful-порты на `0.0.0.0`** без IP-allowlist (books VDS, ransom-бот).
- **Не использовать `ssh + docker compose up -d`** на VDS для Portainer-stacks — только Portainer API. Исключение: traefik/portainer (management-plane). - **Не `ssh + docker compose up -d`** на VDS Portainer-stacks — только Portainer API (искл. traefik/portainer).
- **Не «чинить» traefik labtools.yml вслепую** — он корректен, идентичен рабочему pilorama; медленность была локальной DNS-копией, не конфигом. - **branch ahead от origin** — push без явного grant'а (Rule 4). Этой сессии grant НЕ давали.
- **branch ahead от origin** — push без явного grant'а (project-discipline Rule 4). Этой сессии grant НЕ давали.
## Memory updates за сессию ## Memory updates за сессию
- `workstation-lan-dns-serves-local-cms-copy` (новый) — мигрированные CMS-домены с воркстейшн резолвятся в локальную stale-копию, не RUVDS; валидировать прод через `curl --resolve`/off-LAN. - (нет нового на этом раунде) — схема деплоя и обе инфра-гочи уже в `stostayer.new/.wiki/concepts/client-infra-access.md` + `vehicles-loader-docker-deploy.md`.
- Кандидат с прошлой сессии (НЕ сохранён): books VDS — docker port-publish обходит firewalld; stateful-сервисы наружу = vector. </content>
</invoke>