## Why Сейчас прогресс скачивания в веб-UI виден только при ручной перезагрузке страницы, а статистики раздачи (рейтинг, сиды/пиры, отдано) нет вовсе — в фазе 1 секцию намеренно отложили до появления живых данных. Воркер уже опрашивает qBittorrent каждые несколько секунд и держит свежее состояние каждой задачи — нужно лишь сохранить эту телеметрию в памяти и показать её в UI без перезагрузки. Это «однооконный» сервис: смотреть, как идёт загрузка, должно быть видно вживую. ## What Changes - Воркер на каждом тике поллинга сохраняет **in-memory снимок** телеметрии всех известных раздач (прогресс, скорость загрузки, ETA + для раздачи: рейтинг, число сидов/пиров, отдано, скорость отдачи). Снимок волатильный, в БД не пишется. - `qbt.Torrent` дополняется полями телеметрии (`dlspeed`, `eta`, `ratio`, `num_seeds`, `num_leechs`, `uploaded`, `upspeed`) из `/torrents/info` — лишний сетевой вызов не добавляется, они приходят в том же ответе. - `httpapi` получает новую зависимость-источник телеметрии и **фрагмент-роут**; активные карточки на главной поллят свой прогресс через htmx и обновляют прогресс-бар/скорость/ETA на месте, без перезагрузки страницы и без сброса клиентских фильтров. - На странице загрузки `/download/{id}` появляется секция **«Раздача»** с живой статистикой (рейтинг, сиды/пиры, отдано, скорость отдачи) для задач, чей торрент сидирует. - htmx, который уже вендорится и грузится, впервые задействуется (`hx-*`). ## Capabilities ### New Capabilities - `live-status`: живая телеметрия загрузок и раздач — воркер как единственный сэмплер qBittorrent ведёт in-memory снимок прогресса/скорости/ETA и статистики раздачи; веб-UI отображает её в реальном времени (поллинг фрагментов) без перезагрузки страницы и без хранения в БД. ### Modified Capabilities - `web-ui`: страница загрузки `/download/{id}` получает секцию живой статистики раздачи (в фазе 1 явно вынесена из scope «вводится вместе с живыми обновлениями»); карточки активных загрузок на главной показывают живой прогресс-бар через htmx-поллинг. ## Impact - **Код:** `internal/qbt` (поля `Torrent`), `internal/worker` (снимок + геттер телеметрии под отдельным RWMutex), `internal/httpapi` (dep-интерфейс `LiveStatus`, фрагмент-роут, секция раздачи, прогресс во view), `cmd/jellybit` (инъекция снимка в `httpapi.Deps`), `web/templates` (прогресс-бар на карточках + htmx-атрибуты, секция «Раздача»), `web/static/css` при необходимости (стили прогресс-бара уже есть в дизайн-системе). - **БД:** изменений нет — телеметрия волатильна, миграций/ER не требуется. - **Внешние вызовы:** дополнительных нет (расширяется только разбор существующего ответа `/torrents/info`). - **Безопасность:** телеметрия не содержит секретов; контракт чтения снимка изолируется так, чтобы будущий апгрейд доставки до SSE не ломал API.