В карточке списка и шапке /download/{id} показываем и копируем download.id
(ULID) — тот же ключ, что в логах (download_id), удобно грепать. Infohash
остаётся в блоке «Информация о торренте». Поиск по списку расширен: матчит
любой идентификатор (download.id ИЛИ infohash), плюс название/контекст.
Удалены осиротевшие поля Infohash/InfohashShort и хелпер shortenHash.
Дельта web-ui влита в спеки, change заархивирован.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
38 lines
2.4 KiB
Markdown
38 lines
2.4 KiB
Markdown
## 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 и модель данных не меняются.
|