--- _last_updated_: 2026-07-13T19:50:00Z session_id: 2026-07-13-tandemmebel-8df10ee-deploy prev_session_id: 2026-07-13-stostayer-loader-deploy --- # Next session handoff ## Эта сессия — tandemmebel 8df10ee deploy (DONE, прод живой) 🟢 **[tandemmebel-deploy-drop-fb-tw-gplus-buttons] ЗАКРЫТА.** In-place template bump `0cd9351 → 8df10ee` на проде (стек 20), убраны FB/Twitter/Google+ share-кнопки (экстремистистская символика РФ), оставлены ВК+Одноклассники. Template-only (`apps/web/views/social_buttons.liquid`, 1 file 12 delet), snolla 0.42.1 НЕ менялся. - **Верификация поймала расхождение:** tandemmebel-записка утверждала live=`ed96b18`/0.42.0, фактически `0cd9351`/0.42.1. gitea `compare/0cd9351...8df10ee`=`total_commits:1` → фикс на правильной 0.42.1 базе, yarn.lock идентичен → регрессии sitemap нет. - Build на VDS (чистый gitea-архив 8df10ee, build-arg VERDACCIO_TOKEN=books-ci JWT), digest `sha256:30a7e5ab82f2bf371042f1b5fa0cd7ac5ceda71379d1da59e148dee8166bd560`. - Completeness-gate: sitemap NEW==PROD **184=184 identical**, 0 регрессий. Live-smoke 4 share-block страницы → vk+ok / fb-tw-gp=0. TLS-серт не дёрнут. - Swap через Portainer JWT (API-key `ptr_*` даёт 401 → workaround JWT), env 8/8 preserve, `prune:false, pullImage:true`. Tandemmebel-сессия подтвердила, discrepancy-урок усвоен. - **Records:** STATUS.md _Updated 2026-07-13; runbook секция In-place bump 8df10ee (`.wiki/concepts/tandemmebel-vds-deploy-runbook.md`); compose source-of-truth `host-stacks/vds-kzntsv/tandemmebel.compose.yml` = 8df10ee. Коммиты `632c843f` (records) + `fe8e5882` (tasks_close). - **Откат:** PUT стека 20 → `0cd9351` (0.42.1, {% order %} fix) / `ed96b18` (0.42.0, в registry, стёрт с VDS при disk-cleanup 2026-07-13 — `pullImage:true` дотянет) / `b02ca18`; ИЛИ revert DNS→80.64.31.36 (RUVDS IIS жив). ### Loose end (low priority, НЕ блокер) - **Portainer stack 20 file — устаревшие STAGING-комменты** (строки 16-17 «Домен: STAGING», 53 «STAGING-RULE. Cutover: после flip DNS сменить на Host(...)»). Сама `traefik...rule` (строка 55) уже LIVE, совпадает с label'ом контейнера — функционально нейтрально. При деплое 8df10ee обновлён только image-line коммент. При следующем full-sync выровнять Portainer file под git source-of-truth (косметика). ## Recent commits - fe8e5882 meta(tasks): close [tandemmebel-deploy-drop-fb-tw-gplus-buttons] in OpeItcLoc03/admin - 632c843f deploy(tandemmebel): 8df10ee LIVE — drop FB/Twitter/Google+ share buttons - 94e5d77c meta(tasks): create [tandemmebel-deploy-drop-fb-tw-gplus-buttons] in OpeItcLoc03/admin - 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 | |---|---|---| | 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'а - **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) - **НЕ 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 за сессию - **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.