# План v3.1 — пофайловая обработка + прогресс в таблице (2026-07-12)

## Проблема
Фронтенд v3.0 отправляет все файлы одним запросом → долгий LLM-вызов → таймаут.
Нужно: обрабатывать по одному, прогресс в таблице, все результаты → один ZIP.

## Решение

### Фронтенд (index.html)
1. **XHR** вместо fetch — надёжнее для blob, явный timeout
2. **Колонка «Статус»** в таблице файлов
3. **По одному файлу:** цикл, каждый файл → отдельный XHR → ZIP
4. **Прогресс в таблице:** ⏳ → ✓ 2.1 сек (или ✗ ошибка)
5. **JSZip** — склеивает все полученные ZIP'ы в один
6. **Скачивание** — один файл `drhider_output.zip` в конце

### Статусы в таблице
| Статус | Отображение |
|---|---|
| Ожидание | ⏳ |
| Успех | ✓ 2.1 сек |
| Ошибка | ✗ сообщение |

### Бэкенд
Без изменений. API уже принимает один файл.

### НЕ трогать
- gunicorn не нужен (файлы по одному, каждый запрос ≤10 сек)
- app.run() — остаётся
- drhider пакет — без изменений
