Веб-UI: основной идентификатор карточек — download.id вместо infohash

В карточке списка и шапке /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>
This commit is contained in:
av
2026-07-04 09:47:27 +03:00
co-authored by Claude Opus 4.8
parent 80e725eb9a
commit 9ed732e49e
12 changed files with 220 additions and 64 deletions
@@ -0,0 +1,25 @@
## 1. Карточки: идентификатор = download.id
- [x] 1.1 `web/templates/index.html` — в карточке списка показать и копировать
`{{.ID}}` вместо infohash; убрать `{{if .Infohash}}`
- [x] 1.2 `web/templates/download.html` — в шапке страницы просмотра показать и
копировать `{{.ID}}` вместо infohash
- [x] 1.3 `internal/httpapi/httpapi.go`, `internal/httpapi/download.go` — удалить
осиротевшие поля `Infohash`/`InfohashShort` и хелпер `shortenHash`
- [x] 1.4 `web/static/js/app.js` — комментарий: функция копирования теперь про
идентификатор загрузки (не только infohash)
## 2. Поиск по любому идентификатору
- [x] 2.1 `internal/store/list.go` — добавить `download.id` в LIKE-условие
поиска (рядом с infohash/названием/контекстом); обновить комментарий `Query`
- [x] 2.2 `web/templates/index.html` — обновить плейсхолдер строки поиска
## 3. Спека и проверки
- [x] 3.1 Дельта-спека `web-ui`: MODIFIED «Страницы веб-UI» (поле поиска) и
«Клиентские взаимодействия без сборки» (копирование идентификатора)
- [x] 3.2 Обновить прозу `## Purpose` в live-спеке `openspec/specs/web-ui/spec.md`
(упоминание «копирование infohash») — при archive
- [x] 3.3 `openspec validate --strict` для change
- [x] 3.4 `task test` / `task lint` — зелёные