From 816c0e027dbaca6d06bf2dc273a1db35014366e5 Mon Sep 17 00:00:00 2001 From: vitya Date: Mon, 13 Jul 2026 18:46:56 +0300 Subject: [PATCH] =?UTF-8?q?chore(handoff):=20next-session=20note=20?= =?UTF-8?q?=E2=80=94=20vehicles-loader=200.4.1=20verify=20pending=20+=20bo?= =?UTF-8?q?oks-vds=20consolidation=20eval?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude --- .tasks/NEXT_SESSION.md | 54 +++++++++++++++++------------------------- 1 file changed, 22 insertions(+), 32 deletions(-) diff --git a/.tasks/NEXT_SESSION.md b/.tasks/NEXT_SESSION.md index ae14b3d..c7ef6f4 100644 --- a/.tasks/NEXT_SESSION.md +++ b/.tasks/NEXT_SESSION.md @@ -1,48 +1,38 @@ --- -_last_updated_: 2026-07-12T00:00:00Z -session_id: 2026-07-12-tandemmebel-cutover-live +_last_updated_: 2026-07-13T14:30:00Z +session_id: 2026-07-13-stostayer-loader-deploy --- # Next session handoff -## Итог сессии: tandemmebel.ru cutover → LIVE на VDS (тираж snolla 0.42.x закрыт полностью) - -Финальный сайт тиража. Владелец флипанул DNS reg.ru → собрал контекст по вики/борду/рунбуку → cutover. Порядок из `snolla-live-prod-inplace-image-bump` / `[tandemmebel-web-vds-deploy]` соблюдён строго (LE-критичность): - -1. **Verify авторит.NS** — `nslookup tandemmebel.ru ns1/ns2.reg.ru` = оба `89.253.255.94` (apex + www), не только резолвер. -2. **GET стек 20** — образ `tandemmebel:ed96b18` (0.42.0), env 8/8, rule staging `Host(tandemmebel.vds.kzntsv.site)`. -3. **PUT стек 20** — `Host(tandemmebel.ru) || Host(www.tandemmebel.ru)`, env-preserving (name+value), `prune:false`, `pullImage:false`. Python urllib UTF-8 (НЕ PS Invoke-RestMethod — gotcha кириллицы). → 200. -4. **Poll** — контейнер `healthy`, LE-серт issued on first hit: CN=tandemmebel.ru, SAN оба, issuer YR2, until 2026-10-10. -5. **Live-smoke С VDS** — GREEN (см. STATUS top-line). -6. Compose source-of-truth + борд обновлены. - -**Решение оператора:** бамп до 0.42.1 НЕ делаем — катим 0.42.0 как есть, без пересборки (образ уже стоял). Версии тиража разъехались: kupimknigi (21) + tandemmebel (20) на 0.42.0, три остальных на 0.42.1 (order-фикс) — принято. - -**Латентный прод-баг починен cutover'ом:** `Gotham-Pro.css` был 0B на RUVDS → теперь 200/4436B. - -Rollback = revert DNS → 80.64.31.36 (RUVDS IIS жив, не тронут) ИЛИ PUT стека 20 назад на staging-host. +## Recent commits +- 7e02d611 docs(wiki): vds-kzntsv disk cleanup 94%→74% + container-log rotation guard +- 8230f891 / 2e180029 meta(tasks): vehicles-loader-redeploy-per-group-rate-diff (create + update) +- 135da254 chore: gitignore .zcode/ ## Open треки + | Трек | Готовность | Entry-point | |---|---|---| -| **tandemmebel.ru cutover** | 🟢 **DONE 2026-07-12** — LIVE на VDS, см. итог сессии выше | — (закрыт) | -| **0.42.1-бамп kupimknigi+tandemmebel** | ⚪ решено: НЕ делаем (оператор) — катим 0.42.0 | — (закрыт) | -| morethencms-s3-filestorage-provider | 🟡 ждёт `.dll` от прога MoreThenCms | STATUS.md-блок | -| fix-nl-vds-reality-pq-dest | 🟡 ждёт client-side (user меняет SNI) | STATUS.md-блок | -| harden-books-vds-exposed-ports / kreknin-self-backup | ⚪ backlog | STATUS.md-блоки | +| vehicles-loader 0.4.1 runtime verify | 🔴 active — deployed, verify pending | После **07-14 06:21 MSK**: SSH `new.stostayer.ru:20435` (victor, креды `pass stostayer/client`), проверить новый `importRun` `status=ok` + `counts.serviceGenerationRate={replaced:<сотни>, skipped:<~41k>}`, `serviceModificationRate={replaced:<сотни>, skipped:<~5k>}`, `duration < ~93 мин`. Если `replaced` ~44k/6.7k — образ из старого кода (но code-verify уже GREEN: rateDiff.js/replaceGroup.js в образе есть). Откат: `docker tag docker.stostayer.ru/vehicles-loader:0.4.0 vehicles-loader:latest`. User сказал «завтра посмотрим вместе». | +| books-vds → vds-kzntsv консолидация | оценено, НЕ хватает ресурсов | RAM: .94 free 1.7 GiB (swap=0) vs books 2–3+ GiB (на .133 уходит 3.3 GiB в swap). Диск: .94 было 11 GiB free (94%), после чистки 39 GiB; books тащит ~15–20 GiB. CPU хватает (6 ядер idle). Решение за user. | +| ntfy push.kzntsv.site cert-pinning | починено на телефоне (pin убран) | Повтор при каждом LE-renewal ~90д, если pin снова включат. Сервер НЕ трогать. | ## Спроси user'а -- Опционально: периодический снапшот RAM трёх свежих (17/18/19) на пару суток, чтобы поймать дрейф во времени (одним снимком течь за дни не доказать). Не просили — предложение висит. + +- **books-vds консолидация**: свежий Ubuntu-VDS под books, апгрейд тарифа .94 (Rusonyx: +RAM/+disk), или оставить на EOL CentOS 7 (.133)? Оценка этой сессии — на .94 не лезет (RAM+диск). +- **Durable build-fix в stostayer.new** (cross-project): `packages/vehicles-loader/Dockerfile` — добавить `ENV VERDACCIO_TOKEN=unused` в deps-стейдж (сеть off → токен не нужен) + закоммитить root `.dockerignore`. Сейчас build ломается на unresolved `${VERDACCIO_TOKEN}` (committed в `393b7d3` после Dockerfile) и тащит жирный контекст (node_modules/.worktrees). Делаем коммит в `victor/stostayer.new`? ## Не делать (preemptive guards) -- **RUVDS IIS 80.64.31.36** — НЕ декоммишн (rollback всех мигрированных). Биндинги оставлены как rollback, в т.ч. tandemmebel/labtools.ru/pro. -- Новые app-стеки / правки существующих — **всегда с `mem_limit`** (см. вики-конвенцию), синхронно в Portainer И compose-копию. -- Смоук snolla-доменов гнать **С VDS** (воркстейшн ловит LAN-DNS-перехват прод-доменов). -## Recent commits -- _(этот коммит)_ feat(tandemmebel): cutover LIVE — traefik Host-rule staging→boevoy + compose/board/wiki -- `9a92ff0b` chore(vds): mem_limit 512m всему тиражу snolla (5 стеков + compose + вики) -- `3adbe839` meta(handoff): mem_limit 512m тираж snolla + durable-конвенция +- **НЕ retry-push** в `docker.stostayer.ru` — один push, сбой → стоп + к человеку. Инцидент 2026-06-17: retry-шторм забанил VPN-IP, весь дом→хост :443 лёг. +- **НЕ деплоить vehicles-loader** из кода без rateDiff (`85ca936`). Перед deploy — verify что в образе есть `src/sync/rateDiff.js` (rateSetsEqual) + `src/sync/replaceGroup.js` (replaceRatesForGroups). +- **НЕ чинить ntfy-пин на сервере** — это client-side (телефон). Сервер: cert валиден, ntfy healthy, `/healthz` 200. +- На **vds-kzntsv НЕ netplan** (anti-pattern, outage 2026-05-28). +- **НЕ сжимать** books-стек на .94 — RAM/disk не хватает (оценено этой сессией). +- **pull перед работой** — admin чист (local==origin `7e02d611`); stostayer.new на `b86ed40`. Не забывать pull (user поправлял этой сессией). ## Memory updates за сессию -- Подтвердились: `ps51-iso8859-corrupts-portainer-stackfile` (обошёл PS-грабли, PUT слал UTF-8-байтами через python urllib), `workstation-lan-dns-serves-local-cms-copy` (smoke гнал С VDS по SSH), `vds-app-stacks-need-mem-limit` (стек 20 уже нёс 512m, не трогал). + +- **new**: `ntfy-android-cert-pinning-breaks-on-le-renewal.md` — LE-renewal (~90д) ломает pinned ntfy-клиент («fingerprint mismatch / connection lost»); фикс на телефоне (re-pin или отключить pinning → system CA), сервер не трогать. +- **wiki**: `entities/vds-kzntsv.md` — Known issues += 2026-07-13 disk cleanup (контейнерные логи 19 GiB, owncloud 13 GiB) + logrotate guard (`/etc/logrotate.d/docker-containers`, copytruncate 200M hourly) + hourly cron; Open issues — GC-cron срочность снижена (94%→74%), container-log rotation DONE. \ No newline at end of file