## ADDED Requirements ### Requirement: Загрузка .torrent-файла на форме добавления Форма добавления загрузки веб-UI SHALL позволять выбрать локальный `.torrent`-файл рядом со строкой ввода источника (кнопка/поле выбора файла). При отправке формы с выбранным файлом система SHALL принять его байты (`multipart/form-data`) и провести приём по `.torrent` (см. `ingest` «Приём источника из .torrent-файла»); при пустом файловом поле — приём по тексту источника, как прежде. Файловый ввод SHALL деградировать без JavaScript: обычная отправка `multipart`-формы SHALL приводить к приёму файла и тем же результатом, что и htmx-путь (список обновляется/происходит редирект — как у существующего добавления). Размер принимаемого файла UI/обработчик SHALL ограничивать (см. ограничение размера в `ingest`); превышение SHALL давать понятную ошибку без создания загрузки. #### Scenario: Добавление выбором .torrent-файла - **GIVEN** пользователь открыл форму добавления и выбрал `.torrent`-файл - **WHEN** форма отправлена - **THEN** файл принимается байтами и заводится загрузка (`source_type = torrent`) - **AND** список загрузок отражает новую задачу (как при добавлении по magnet) #### Scenario: Файл не выбран — приём по тексту - **GIVEN** пользователь оставил файловое поле пустым и ввёл magnet/текст - **WHEN** форма отправлена - **THEN** выполняется приём по тексту источника, как прежде