Files
admin/NEXT-SESSION-PROMPT.md
vitya acb1c8e126 chore(.tasks): iis-on-host-migration -> paused after rollback
Status: done (false) -> paused (true). Миграция была сделана,
сломала prod (Docker port-loop), откатили. Артефакты на хосте
остались inert для следующей попытки.

- STATUS: 🟢 done -> 🟡 paused с детальным where-I-stopped
- iis-on-host-migration: Phase 9 rollback задокументирован, что
  НЕ делать в следующей попытке (cross-ref на post-mortem)
- NEXT-SESSION-PROMPT: переписан для retry-сценария — обязательное
  чтение post-mortem перед началом, recipe из 5 пунктов

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 15:08:17 +03:00

58 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Prompt для следующей сессии
Скопируй этот блок и вставь как первое сообщение:
---
Привет! Возвращаемся к **iis-on-host-migration**. **Перед началом обязательно прочти**:
1. `.wiki/concepts/iis-migration-2026-05-19-postmortem.md` — почему предыдущая попытка сломала prod
2. `.wiki/sources/iis-host-migration-2026-05-19.md` (Phase 9 в конце — про rollback)
3. `.wiki/concepts/recovery-architecture-snapshot.md` (актуальный VM-chain)
**Кратко где мы сейчас (после rollback):**
- Prod снова через VM `snolla-recovery` (как было до session 2026-05-19). 11 main routes + 2 stayer routes в traefik → `host.docker.internal:18080/18180/18181` → VM IIS.
- На хосте есть **inert** артефакты предыдущей попытки миграции — НЕ удалять без явного решения:
- `C:\sites\{snolla, stostayer, stostayer.old, snolla-identity-manager}` — Web.config'и уже patched (sitePath, conn-strings).
- IIS sites/pools `snolla, stostayer, stostayer.old` готовы (.NET v4.0 Integrated, ApplicationPoolIdentity, ACL).
- Traefik backup-stamps `*.bak-phase3-2026-05-19`, `*.bak-stayer-switch-2026-05-19`, `*.bak-hostip-2026-05-19`.
**Цель повторной попытки** — выполнить миграцию по recipe из post-mortem, без повторения 10 ошибок:
1. **Backend port — НЕ :80.** Использовать `:18080` на хосте (старый VM NAT port forward, теперь свободен после `unregistervm` или после остановки VM). Или другой свободный (НЕ совпадающий с traefik publish-ports `:8000, :4443, :8080`). Это избегает Docker NAT loop.
2. **Smoke test с `-MaximumRedirection 0` / `--max-redirs 0`** + read first response. Если `Location` == request URL или близко → loop, fail fast.
3. **Тест из НЕ-LAN сети** (телефон через мобильный интернет, VPS curl) до commit'a — не доверять local smoke.
4. **Параллельный run VM x 24h+**НЕ savestate'ить VM на следующий же день. Держать как hot fallback хотя бы сутки реального трафика.
5. **Atomic revert plan ДО старта** — backup всех traefik yml, написать "если что — paste this" revert-команду заранее.
**Не делай без моего "да":**
- Любые traefik patches (меняет prod-трафик).
- Любые destructive операции на `C:\sites\`, `C:\nas-recovery\vm-sites\`, snolla.ova.
- Глушить VM до подтверждённой 24h+ стабильности host'а.
- Push в git (gitea пока на мёртвой синке, и autopush не разрешён в любом случае).
**Контекстные пароли** (в Web.config / .env, не в чате):
- MSSQL SA: `C:\Users\vitya\projects\docker\diskstation\mssql\.env`
- snolla CMS conn: user `snolla`, password в `C:\sites\snolla\Web.config` (`fXkH4@8O%3pc`)
- stostayer (новый): user `stayer_site`, password в `C:\sites\stostayer\Web.config` (`^I9D)LB)DK)8J#xBDG$t}W&amp;_ioaT!M!LF`, XML-escape!)
- VM SSH: `~/.ssh/id_ed25519_snolla_vm``vitya@127.0.0.1:8022` (NAT-forward)
- VM admin password: `Pryakhin9`
Поехали — но **сначала прочти post-mortem полностью**.
---
## Что почитать AI-агенту перед началом (для самопроверки контекста)
- `.wiki/overview.md` — точки входа
- **`.wiki/concepts/iis-migration-2026-05-19-postmortem.md`** ← critical (10 ошибок + recipe)
- `.wiki/sources/iis-host-migration-2026-05-19.md` (включая Phase 9 в конце)
- `.wiki/sources/nas-recovery-session-2026-05-18.md` — почему вообще этот хост
- `.wiki/concepts/recovery-architecture-snapshot.md` — актуальный VM-chain
- `.wiki/entities/snolla-recovery-vm.md` — VM active prod
- `.wiki/entities/windows-recovery-host.md` — host inert artifacts
- `.wiki/concepts/cms-config-rewrite-pattern.md` — UTF-8 BOM
- `.wiki/concepts/webconfig-password-xml-escape.md``&``&amp;` в conn-string
- `.tasks/STATUS.md`
- `.tasks/iis-on-host-migration.md` — Phase 1-9 история
- Это сообщение