# Rehearsal v1.0 — 30-minute execution plan Контрольований rehearsal без змін коду: перевірка **процесу релізу** (preflight → restart → smoke → observation → evidence). **Release window:** виділений слот 30–60 хв (наприклад сьогодні 20:00–21:00 UTC або завтра зранку). --- ## ⏱ 0–5 хв — Preflight ```bash STRICT=1 bash ops/preflight_sofiia_console.sh ``` **Очікування:** PASS або лише не-критичні WARN. Якщо FAIL → зупиняємось і виправляємо. **Зафіксувати:** результат (PASS / WARN / FAIL), коротко що було. --- ## ⏱ 5–10 хв — Controlled Restart Перезапусти sofiia-console (як прийнято: systemd/docker). Після старту: ```bash curl -i http://127.0.0.1:8002/api/health curl -i http://127.0.0.1:8002/metrics ``` **Очікування:** 200 OK, без 500, metrics доступні. --- ## ⏱ 10–15 хв — Smoke (функціональний) ### Idempotency A/B (якщо Redis backend) ```bash bash ops/redis_idempotency_smoke.sh ``` **Очікування:** `message_id` однаковий, `replayed=true` на другому запиті. ### Audit auth Без key: ```bash curl -i http://127.0.0.1:8002/api/audit ``` → **401** З key: ```bash curl -H "X-API-Key: " http://127.0.0.1:8002/api/audit ``` → **200** --- ## ⏱ 15–25 хв — Observation Window Спостерігай 10 хв. Мінімум перевірити: - Чи є 5xx? - Чи росте `sofiia_rate_limited_total` неочікувано? - Чи росте `sofiia_idempotency_replays_total` аномально? - Чи відповідає send стабільно? Якщо можливо — зафіксуй приблизний p95 latency (на око по логах достатньо). --- ## ⏱ 25–30 хв — Evidence ```bash bash ops/generate_release_evidence.sh ``` Перевір, що файл створено. Доповни вручну: smoke A/B, post-release checks, rollback notes (якщо були). --- # Критерії успіху rehearsal | Перевірка | Результат | |-----------|-----------| | Preflight | PASS | | Health + metrics | OK | | Idempotency smoke | PASS | | Audit strict auth | 401 без key / 200 з key | | 5xx | нема | | Rate-limit / replay сплески | нема дивних | Якщо все зелено — **v1 процес релізу вважається стабільним**. --- # Після rehearsal — що принести далі Для decision-матриці (Phase 6 / HA / policy / dashboards) потрібно: - 5xx count (total + send) - replay delta - rate_limit delta (chat / operator) - приблизна latency (p95) - audit events volume - будь-які WARN з preflight - friction моменти (що було неочевидним) Див. також: `docs/release/sofiia-console-post-release-review-template.md`.