# Ручной regression checklist

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

Этот документ фиксирует post-integration baseline для Community UI, auth, secrets и REST/MCP 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`;
  - локальный UI proxy.

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

- login;
- operations catalog;
- agents;
- api keys;
- logs;
- usage;
- workspace/settings;
- wizard;
- REST draft/test/publish flow.

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

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

- auth/session;
- workspace switching;
- operations/wizard;
- agents;
- secrets/auth profiles;
- MCP transport;
- 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/`;
- убедиться, что доступна только `REST` protocol card;
- для нового 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`;
- проверить редактирование имени, slug, описания и цвета единственного workspace;
- проверить, что интерфейса приглашений, ролей и управления пользователями нет;
- проверить export workspace;
- проверить, что delete workspace не отображается;
- открыть `/settings`;
- проверить profile update;
- проверить password change.

## 6. Protocol smoke pass

Для smoke-проверки MCP использовать готовый public target из [public-smoke-targets.md](public-smoke-targets.md).

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

- REST: [rest-open-meteo.operation.json](../examples/mcp-smoke/rest-open-meteo.operation.json)

## 7. Acceptance criteria

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

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

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

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