# Staging Regression Notes ## 2026-04-07 12:53 MSK — rmcp.itexp.me - deploy commit: `unknown` - checked by: `codex + operator` - smoke status: `partial` - scope: - auth - ui shell - mcp health - clean routes - legacy redirects ### Passed - `bash scripts/staging-smoke.sh https://rmcp.itexp.me` passed. - public routes returned `200`: - `/` - `/login` - `/agents` - `/secrets` - `/wizard/` - `/mcp/health` - `/api/auth/session` returned `401` with `application/json`, not HTML fallback: - `{"error":{"code":"unauthorized","message":"authentication required"}}` - legacy routes redirected correctly: - `/html/login.html` -> `/login` - `/html/agents.html` -> `/agents` - `/html/wizard/` -> `/wizard/` ### Findings - none in this pass ### Infra notes - this pass covered only unauthenticated public/staging smoke; - authenticated UI flows, MCP tool calls, secrets/auth-profile flows and protocol smoke were not exercised in this entry. ### Follow-up - run a full authenticated browser smoke after the next deploy; - record `REST`, `GraphQL`, `gRPC` protocol smoke results in the next entry; - add WebSocket/SOAP status as `not exercised` or `passed/failed` explicitly. ## 1. Назначение Этот документ фиксирует результаты ручных проверок на staging/production-like окружении после deploy. Он нужен для трех задач: - хранить пост-деплойные замечания вне чата; - отличать разовые сбои окружения от продуктовых регрессий; - дать следующему агенту нормальный handoff по реальному состоянию стенда. Использовать вместе с: - [deploy-and-staging-smoke.md](/home/a.tolmachev/code/rust/mcpaas/docs/deploy-and-staging-smoke.md) - [manual-regression-checklist.md](/home/a.tolmachev/code/rust/mcpaas/docs/manual-regression-checklist.md) - [authenticated-staging-pass.md](/home/a.tolmachev/code/rust/mcpaas/docs/authenticated-staging-pass.md) ## 2. Как вести записи Каждый deploy или ручной regression pass должен добавляться новым блоком в начало документа. На один блок фиксировать: - дата и время; - окружение; - commit/tag/image; - кто запускал pass; - какие smoke steps прошли; - какие дефекты подтверждены; - какие наблюдения являются только инфраструктурными; - какие follow-up fixes нужны. Если замечание исправлено, не удалять его из истории, а отметить: - `status: fixed` - `fixed_by: ` ## 3. Формат записи Использовать такой шаблон: ```md ## YYYY-MM-DD HH:MM TZ — - deploy commit: `` - checked by: `` - smoke status: `passed | partial | failed` - scope: - auth - ui shell - operations - wizard - agents - api keys - secrets - logs - usage - streaming - mcp smoke ### Passed - ... ### Findings 1. `` `` - area: `` - symptom: `...` - reproduction: `...` - expected: `...` - actual: `...` - status: `open | fixed | accepted` - fixed_by: `` ### Infra notes - ... ### Follow-up - ... ``` ## 4. Severity model Использовать только 4 уровня: - `critical` deploy unusable, login broken, MCP unavailable, data corruption risk - `high` primary flow broken, но система частично работает - `medium` заметный UX/runtime дефект с обходным путем - `low` косметика, wording, layout, docs mismatch ## 5. Что считать finding, а что нет ### Считать finding - broken routing; - redirect loop; - wrong auth/session behavior; - page-level JS exception; - incorrect MCP result; - secret/auth profile flow mismatch; - deploy route returning HTML instead of JSON; - streaming session/job inconsistency. ### Не считать product finding - разовый сетевой timeout; - локальный browser glitch без воспроизведения; - внешний upstream outage из публичного smoke target; - предупреждения, не влияющие на flow; - заранее известные `planned` capability blocks. Такие случаи писать в `Infra notes`, а не в `Findings`. ## 6. Open follow-up inventory Следующий полный проход должен заполнить минимум: - auth/login status; - clean routes status; - `Secrets -> Auth Profiles -> Wizard -> Test run` статус; - `REST`, `GraphQL`, `gRPC` smoke results; - streaming pages status; - WebSocket/SOAP note: - `not exercised` - или `failed/passed` с причиной. ## 7. Последняя актуальная запись На данный момент: - automated baseline локально зеленый; - helper-based staging smoke на `rmcp.itexp.me` прошел; - полный authenticated staging pass еще не занесен.