## Why Карточка загрузки в списке на главной сейчас показывает состояние, заголовок, идентификатор и (для качающихся) прогресс. Для решения «пора ли удалять раздачу» этого мало: пользователь удаляет по **возрасту** и по **рейтингу отдачи**, а этих полей в обзоре нет. Одновременно карточка тратит место на спойлер контекста, который логичнее смотреть на странице загрузки. Цель — сделать карточку кратким обзором жизненного цикла: от загрузки до момента, когда раздачу пора убирать. ## What Changes - Убрать из карточки списка спойлер «контекст»; контекст остаётся доступен на странице загрузки `/download/{id}`. - Дописать метку `ID:` перед идентификатором загрузки — чтобы было понятно, что за значение копируется. - Показывать в карточке **всегда** дату добавления раздачи в формате «`2026-06-30 · 5 дней назад`» (абсолютная + относительная). Источник — время добавления в источник (`source_added_at`, qBittorrent `added_on`) с фолбэком на время создания загрузки (`created_at`). - Показывать в карточке **рейтинг отдачи** (ratio) из живого снимка воркера; если торрента нет в qBittorrent — прочерк «—». - Показывать в карточке **размер раздачи**: из живого снимка (общий размер торрента), а когда торрента нет в qBittorrent — из суммарного размера разложенных файлов. - Расширить состав живой телеметрии общим размером раздачи (доступен для любой раздачи в снимке, не только сидирующей). - Раскладка при линковке SHALL сохранять размер каждого созданного файла — чтобы фолбэк размера работал и после исчезновения торрента (`orphaned`). Явно вне объёма: сиды/пиры, время сидирования и объём отданного в карточку не добавляем — пользователю для решения об удалении достаточно возраста и рейтинга. ## Capabilities ### New Capabilities Нет. ### Modified Capabilities - `web-ui`: карточка списка получает обзорную мета-строку (ID-метка, дата добавления всегда, размер, рейтинг); спойлер контекста уходит из карточки на страницу загрузки. - `live-status`: состав телеметрии дополняется общим размером раздачи, доступным для любой раздачи в снимке (не только сидирующей). - `file-layout`: раскладка сохраняет размер каждого разложенного файла (основа фолбэка размера раздачи, когда торрента нет в qBittorrent). ## Impact - `internal/qbt` — поле `TotalSize` (`json:"total_size"`) в `Torrent`. - `internal/worker` — `Live.TotalSize`, проброс из `qbt.Torrent`. - `internal/store` — колонка `file_link.size` (миграция goose), запись размера при линковке, чтение суммарного размера разложенных файлов для карточки. - `internal/httpapi` — новые поля `downloadView`, форматтеры даты/относительного времени/размера/рейтинга; `handleIndex` читает живой снимок для всех карточек списка, а не только качающихся. - `web/templates/index.html` — мета-строка карточки (+ возможный партиал), удаление спойлера контекста. - `docs/specs/database.md` — обновить ER-схему (новая колонка `file_link.size`).