Files
admin/.tasks/NEXT_SESSION.md
vitya 23b1a47c14 wiki(stostayer): ingest stostayer-admin-minio-config — :8090 admin on stostayer MinIO
Fix 2026-07-22: local .NET admin (C:\sites\stostayer\Web.config) S3 providers
re-pointed to stostayer MinIO. 3 bugs in original config: wrong creds
(AKIAJ2YJP72W6ZHCRE6Q = books-vds root, not stayer_minio), wrong endpoint
(minio.stostayer.ru is not S3 API port; prod uses minio-api.stostayer.ru),
wrong region (local -> AmazonS3Exception expecting us-west-1). Creds NOT in
pass — live in stostayer.new config/default.json. Admin now shares prod
storage; manual App_Data mirroring retired.

+ index.md, log.md. Also carries pending handoff (NEXT_SESSION) + runbook
update from 2026-07-21 stostayer-web 0.3.20 deploy session.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 10:45:13 +03:00

6.9 KiB
Raw Permalink Blame History

_last_updated_, session_id, prev_session_id
_last_updated_ session_id prev_session_id
2026-07-21T14:45:00Z 2026-07-21-stostayer-web-0320-deploy 2026-07-21-ruvds-decomm

Next session handoff

Эта сессия — деплой цен кондиционеров на stostayer.ru (legacy-web 0.3.20). ЗАВЕРШЁН

stostayer.new прислал deploy-request (повышение цен в packages/web/components/ConditionerPrice.vue, commit 4bbdbbf). Задеплоено на прод. По ходу вскрылся и разрешён давний ESM-блокер.

Что сделано

  • ESM-блокер подтверждён + разрешён. packages/web (Nuxt2/CJS) не собирался с master (ESM-миграция c805e7e data/api + ESM-переиздание snolla). Ретрофит 5 require()→dynamic import() (nuxt.config.js, server/index.js, 2 serverMiddleware→CJS). snolla-сессия починила bare-get-баг → опубликовала @snollajs/snolla@0.7.6. Образ 0.3.20 собран, build+runtime зелёные.
  • Деплой на прод. Push 0.3.20 в docker.stostayer.ru, redeploy стека 16 (0.3.180.3.20, Portainer PUT через SSH:20435 + внутренний IP portainer). Контейнер Up, RestartCount=0, обслуживает реальный трафик.
  • Verify. /remont-kondicionerov/{zapravka,diagnostika}-kondicionera → 200, компонент ConditionerPrice рендерит новые цены (4790/3290/6190/3990/7890/4840), старые (4400/2900/5800/7500/4450) ушли. Bare /remont-kondicionerov 301→/remont/remont-kondicionerov (CMS, без компонента) — verify по sub-страницам.

Инцидент по ходу (разрешён)

Первый push 3.33GB с VPN → VPN-IP бан у провайдера хоста → :443 к хосту TLS-fail с операторского IP (сайт для остальных работал). Остановил push, оператор убрал VPN, resume-push добил остаток малым egress → без повторного бана. Урок: единичный large-push тоже триггерит бан (не только retry-storm). Memory stostayer-push-ban-single-large-push.

ОСТАЁТСЯ (follow-up)

  • 🔴 ESM-ретрофит НЕ закоммичен/НЕ запушен в stostayer.new master. stostayer.new-сессия сказала «коммить и пушь ты» (у неё изменений нет локально, ретрофит делался в working-tree .admin-сессии на этой воркстейшн). Commit-message одобрен stostayer.new. Оператор НЕ дал «го» на пуш в эту сессию (Rule 4 — пуш в git-master = outward). → Ретрофит лежит незакоммиченным в C:/Users/vitya/projects/stostayer.new working-tree (5 файлов + package.json snolla ^0.7.6 + yarn.lock + .dockerignore; .yarnrc.yml восстановлен в оригинал — чист; .tasks/* не трогать — ими stostayer.new управляет). Следующая сессия: получить «го» оператора → git add ретрофит-файлов → commit (message ниже) → git push origin master. НЕ делать git checkout/stash/clean в stostayer.new до коммита — потеряешь ретрофит. Если потерян — реконструируем из образа 0.3.20 (client registry) + ранбука + memory stostayer-web-esm-retrofit-snolla-076.
    • Commit-message (одобрен stostayer.new): fix(web): ESM-deps retrofit — require()→dynamic import(), pin snolla ^0.7.6 + body (см. письмо stostayer.new/.claude-inbox/2026-07-21T14-28-00Z-admin.md).
    • После пуша stostayer.new тянет master + verify packages/web собирается.
  • snolla yank 0.7.5 — DONE. snolla-сессия сняла @snollajs/snolla@0.7.5 с verdaccio (npm unpublish --force), verify: 0.7.x = только 0.7.6, latest=0.42.1 не сбит, exact-0.7.5 консьюмеров не было. Линия 0.7.x полностью закрыта.
  • Операторский IP 46.151.25.64 может ещё флапать по :443 к stostayer-хосту (бан egress-IP с инцидента) — для оператора; для посетителей сайта ограничений нет. Проходит само.
  • Побочная нота (не чинил): vds-ops ops.docker.logs на контейнере verdaccio висит 300с (docker-socket-proxy + тяжёлый stdout) — snolla-сессия не смогла взять verdaccio-логи через MCP. Если понадобится独立-verify verdaccio-логов — чинить vds-ops (таймаут/стрим) или грепнуть лог-файл на хосте.

Wiki / memory обновлено

  • Ранбук .wiki/concepts/stostayer-web-deploy-runbook.md: БЛОКЕР→RESOLVED, push-секция (single-large-push gotcha), verify-секция (sub-страницы + smoke→prod-DB gotcha).
  • Memory: stostayer-web-esm-retrofit-snolla-076, stostayer-push-ban-single-large-push, stostayer-smoke-hits-prod-db.

Креды/доступы — не менялись

snolla-сессия: commit 63e5c60 (snolla repo, branch fix/snolla-0.7.6-s3-get), 0.7.6 в verdaccio. snolla-задача snolla-074-get-bugfix-republish закрыта (commit 46fe4040 в victor/snolla .tasks).

Open треки

Трек Готовность Entry-point
stostayer.new закоммитить ESM-ретрофит за stostayer.new working-tree stostayer.new (5 файлов + lockfile + .dockerignore)
snolla yank 0.7.5 за snolla (го дано) snolla выполнит npm unpublish @snollajs/snolla@0.7.5 --force
books-vds → vds-kzntsv консолидация оценено, не лезет по RAM/disk За user.
MinIO upload-acceptance on.snolla follow-up оператора из prev handoff

Спроси user'а

  • «го» на коммит+пуш ESM-ретрофита в victor/stostayer.new master (незакоммичен в working-tree, stostayer.new ждёт пуш чтобы подтянуть+verify). Без него следующий legacy-web деплой упрётся в ту же ESM-стену.

Не делать

  • НЕ пушить упавший push повторно с того же egress (VPN-ban).
  • НЕ коммитить в stostayer.new master без координации с stostayer.new-сессией (их репо, их ESM-стратегия) — я оставил ретрофит в working-tree, они коммитят.
  • snolla 0.7.5 yank — за snolla-сессией (го дано, но она исполняет).