Files

55 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Conol Self-Healing Auto-Repair Daemon
`eni_repair_daemon.py` — непрерывный мониторинг и авто-ремонт пула аккаунтов.
## Запуск
```bash
cd C:\Users\User\Desktop\conol_autoreg
python eni_repair_daemon.py # непрерывный демон (каждые 5 мин)
python eni_repair_daemon.py --once # разовый чек + ремонт
```
Из `start.bat`: пункты **7** (демон) и **8** (разовый).
## Фазы цикла
### Phase 1: Health Check
Проверяет `POST /api/sessions` на всех аккаунтах параллельно (5 конкурентов), timeout 15s.
### Phase 2: Server-Down Detection
Если >80% не-cookie ошибок = HTTP 500 → **пропускает весь ремонт**. Это conol.ai серверная проблема, не наши куки. Логируется `server_down`. Когда сервер оживает — `server_up`.
**Отличие от per-account ошибок:**
- 1-2 аккаунта 500 = индивидуальный сбой → repair
- 80%+ аккаунтов 500 = сервер мёртв → ждать
### Phase 3: Individual Repair
Аккаунт провалил `MAX_FAIL_STREAK=3` проверок подряд:
| Ошибка | Стратегия | Инструмент |
|--------|-----------|------------|
| HTTP 401 / "unauthorized" / "cookie" | Re-login через CDP | `relogin_account()` |
| "no_cookies" (статус 0) | Re-register | `eni_conol.py reg 1` |
### Phase 4: Credit Monitoring
Баланс < 100 cr → авто-фарм квестов на этом аккаунте.
### Phase 5: Gateway Health
Если гейтвей не отвечает → `taskkill` старого + запуск `gateway.py`. До 3 попыток с паузой 30s. После успешного перезапуска — `POST /pool/reload` для подхвата изменений.
## Логи и состояние
- `eni_repair_log.jsonl` — все события (health_ok, health_fail, repair_login, repair_farm, server_down, gateway_restart, ...)
- `eni_repair_state.json` — состояние между циклами (fail-счётчики, consecutive_server_downs, время последнего цикла)
## Пороги
| Параметр | Значение | ENV override |
|----------|----------|-------------|
| Интервал проверки | 300s (5 мин) | `ENI_REPAIR_INTERVAL` |
| Низкий баланс | < 100 cr | `CREDIT_LOW_THRESHOLD` |
| Мёртвый баланс | 0 cr | `CREDIT_DEAD_THRESHOLD` |
| Попыток до ремонта | 3 | `MAX_FAIL_STREAK` |
| Попыток перезапуска GW | 3 | `GATEWAY_RESTART_ATTEMPTS` |