## Why

Веб-UI показывал в карточках (список + шапка страницы просмотра) infohash с
кнопкой копирования. Но в логах основной ключ загрузки — `download_id` (ULID),
именно по нему удобно грепать и связывать события; infohash в логах второстепенен.
Пользователю нужно копировать из карточки то, что реально ищется в логах.

## What Changes

- В карточке списка и в шапке `/download/{id}` показываем и копируем
  `download.id` (ULID) вместо infohash — как основной идентификатор загрузки.
- Infohash остаётся видимым только в блоке «Информация о торренте» (без
  изменений), где ему место рядом с сырым источником.
- Поиск по списку расширяем: искать можно по **любому идентификатору**
  (`download.id` ИЛИ infohash), плюс прежние название/контекст. Плейсхолдер
  строки поиска обновлён.

## Capabilities

### New Capabilities
<!-- нет -->

### Modified Capabilities
- `web-ui`: основной копируемый идентификатор карточек — `download.id`, а не
  infohash (Requirement «Клиентские взаимодействия без сборки» и Scenario
  копирования); поиск по списку матчит любой идентификатор загрузки (Scenario
  «Серверный фильтр и поиск»).

## Impact

- Шаблоны: `web/templates/index.html`, `web/templates/download.html`.
- Поиск: `internal/store/list.go` (в LIKE-условие добавлен `download.id`).
- View: `internal/httpapi/httpapi.go`, `internal/httpapi/download.go` (удалены
  осиротевшие поля `Infohash`/`InfohashShort` и хелпер `shortenHash`).
- Клиент: `web/static/js/app.js` (комментарий — функция копирования теперь про
  идентификатор загрузки, не только infohash).
- Совместимость: чисто презентационно; API-DTO и модель данных не меняются.
