# Ручной regression checklist

## 1. Назначение

Этот документ фиксирует post-integration baseline для UI, auth, secrets и streaming slices.

Цель:

- дать воспроизводимый regression pass после крупных вертикальных срезов;
- отделить автоматический baseline от ручного smoke на стенде;
- не заставлять следующего агента заново собирать сценарии по всему проекту.

## 2. Автоматический baseline

Локальный regression baseline на `2026-04-07`:

- `cargo check --workspace` -> passed;
- `cd apps/ui && npm run e2e` -> `11 passed`;
- e2e стек поднимает:
  - `postgres`;
  - `admin-api`;
  - `mcp-server`;
  - fixture servers для streaming;
  - локальный UI proxy.

Покрытые автоматикой сценарии:

- login;
- operations catalog;
- agents;
- api keys;
- logs;
- usage;
- workspace/settings;
- wizard;
- REST window tool;
- gRPC session tools;
- async job tools.

## 3. Когда запускать этот pass

Запускать обязательно после изменений в:

- auth/session;
- workspace switching;
- operations/wizard;
- agents;
- secrets/auth profiles;
- streaming configuration;
- MCP transport;
- REST SSE, gRPC streaming, WebSocket, SOAP adapters;
- deploy routing/UI routes.

## 4. Обязательные команды перед ручным проходом

```bash
cargo check --workspace
cd apps/ui && npm run e2e
```

Если одна из команд не проходит, ручной regression pass не считается завершенным.

## 5. Ручной smoke checklist

### 5.1. Auth и shell

- открыть `/login`;
- проверить, что страница не зацикливается на redirect;
- проверить invalid login;
- войти bootstrap admin-пользователем;
- убедиться, что после входа открывается `/`;
- проверить logout;
- войти повторно;
- проверить header identity;
- проверить language switch;
- проверить workspace switch в navbar.

### 5.2. Operations

- открыть `/`;
- убедиться, что demo operations загружены;
- проверить search;
- проверить protocol/category/agent filters;
- открыть edit существующей operation;
- удалить operation из demo workspace только если это безопасно для текущего стенда;
- проверить success/error toasts;
- проверить clean routes без `/html/...`.

### 5.3. Wizard

- открыть `/wizard/`;
- переключить protocol cards:
  - `REST`
  - `GraphQL`
  - `gRPC`
  - `WebSocket`
  - `SOAP`
- для нового upstream проверить режимы auth:
  - `No auth`
  - `Use existing auth profile`
  - `Create auth profile now`
- создать quick secret из wizard;
- создать quick auth profile из wizard;
- сохранить upstream;
- убедиться, что `execution_config.auth_profile_ref` попадает в draft/test flow;
- проверить sample upload;
- проверить YAML export/import;
- проверить `Test run`;
- проверить `Publish`.

### 5.4. Agents

- открыть `/agents`;
- проверить cards и lifecycle badges;
- открыть drawer;
- проверить bindings;
- создать или обновить agent;
- проверить publish/unpublish/archive flow;
- проверить copy MCP endpoint.

### 5.5. API Keys

- открыть `/api-keys`;
- создать key;
- убедиться, что raw key показывается один раз;
- проверить copy;
- проверить revoke;
- проверить delete;
- проверить `last_used_at` после реального machine-auth вызова при необходимости.

### 5.6. Secrets

- открыть `/secrets`;
- проверить list/create/rotate/delete;
- создать:
  - `token`;
  - `username_password`;
  - `header`;
  - `generic`;
- убедиться, что plaintext не возвращается после create/rotate;
- проверить usage references через auth profiles;
- проверить, что wizard quick-create синхронизируется с этой страницей.

### 5.7. Logs и Usage

- открыть `/logs`;
- проверить loading/error/empty states;
- проверить detail expansion;
- открыть `/usage`;
- проверить summary cards;
- проверить timeline chart;
- проверить CSV export.

### 5.8. Workspace и Settings

- открыть `/workspace-setup`;
- проверить members;
- проверить invitations;
- проверить role change;
- проверить remove member;
- проверить export workspace;
- проверить delete workspace только на disposable workspace;
- открыть `/settings`;
- проверить profile update;
- проверить password change.

## 6. Protocol smoke pass

Для smoke-проверки MCP использовать готовые public targets из [public-smoke-targets.md](/home/a.tolmachev/code/rust/mcpaas/docs/public-smoke-targets.md).

Обязательные кейсы:

- REST: [rest-open-meteo.operation.json](/home/a.tolmachev/code/rust/mcpaas/examples/mcp-smoke/rest-open-meteo.operation.json)
- GraphQL: [graphql-countries.operation.json](/home/a.tolmachev/code/rust/mcpaas/examples/mcp-smoke/graphql-countries.operation.json)
- gRPC: [grpc-grpcb-add.operation.json](/home/a.tolmachev/code/rust/mcpaas/examples/mcp-smoke/grpc-grpcb-add.operation.json)

Streaming regression на локальном e2e стеке:

- REST SSE window tool;
- gRPC session tools;
- async job tools.

Ручной post-deploy pass должен дополнительно проверить:

- WebSocket window/session flow после появления real upstream;
- SOAP import/inspection/test run на disposable WSDL fixture.

## 7. Acceptance criteria

Regression pass считается завершенным, если одновременно выполнены условия:

- `cargo check --workspace` passed;
- Playwright suite passed;
- login/shell/manual navigation не ломаются;
- `Secrets -> Auth Profiles -> Wizard -> Test run` связка работает;
- public smoke targets проходят для `REST`, `GraphQL`, `gRPC`;
- streaming demo scenarios проходят на локальном e2e стеке;
- нет критичных UI regressions на clean routes, i18n и auth redirects.

## 8. Если что-то падает

- сначала фиксировать failing automated spec;
- потом чинить ручной smoke regression;
- после фикса повторять:
  - `cargo check --workspace`;
  - `cd apps/ui && npm run e2e`;
- только потом обновлять статус в `TASKS.md`.
