diff --git a/README.md b/README.md index a683420..48d5ca4 100644 --- a/README.md +++ b/README.md @@ -108,6 +108,7 @@ api/ auth_routes accounts mcp_tokens admin tg/ manager login_flow limits waveform mcp/ server context tools serializers + tests/ test_login_flow.py # стейт-машина логина (фейковый Telethon) frontend/src/ App.vue router.js api.js i18n/ pages/ ``` @@ -121,4 +122,14 @@ 4. base64 в JSON ≈ +33%: cap `TGCLIENT_MEDIA_MAX_BYTES` (по умолчанию 20 MB). 5. Повторный `send_code_request` на живую pending-сессию не дёргается; код/пароль не логируются и не хранятся. -6. FloodWait ≤60 с Telethon спит сам; длинный — 429 как данные + Synapse-репорт. \ No newline at end of file +6. FloodWait ≤60 с Telethon спит сам; длинный — 429 как данные + Synapse-репорт. +7. Завершённые/провальные логины живут в БД 2 мин в шаге `done`/`error` + (SPA-полл читает настоящий исход), затем чистит sweeper; строки без + RAM-клиента/waiter (рестарт сервиса) чистятся сразу. + +## Тесты + +```bash +cd backend && .venv/bin/pip install -e '.[dev]' +.venv/bin/python -m pytest tests/ -q # стейт-машина логина без реального ТГ +``` \ No newline at end of file