Убрал из беклога реализованные UI/UX-задачи (docs)
Сделаны в change web-ui-list-detail и убраны из беклога: - «Главная: список загрузок вместо таблицы» - «Расширенная информация о загрузке в web-UI» - «Список загрузок: фильтр, поиск, пагинация» - «Полировка веб-UI: список и карточка загрузки» «Улучшения UI: показывать матч» сужено до Telegram (web-сторона сделана). Поправлены перекрёстные ссылки в оставшихся пунктах, чтобы не висли на удалённые якоря. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+11
-68
@@ -62,9 +62,9 @@ qBittorrent с файлами), подтверждение осознаннос
|
|||||||
- при выборе/переключении — **предпросмотр полей** (название, режиссёр,
|
- при выборе/переключении — **предпросмотр полей** (название, режиссёр,
|
||||||
год) и **предпросмотр раскладки** (целевые пути) до применения.
|
год) и **предпросмотр раскладки** (целевые пути) до применения.
|
||||||
|
|
||||||
Развивает «показывать матч с записью метабазы» (web-сторона), пересекается
|
Развивает уже реализованный показ матча в вебе (страница загрузки и экран
|
||||||
с «Расширенной информацией о загрузке» (детальный экран) и быстрым выбором
|
ревью — провайдер, id, ссылка на запись) и детальный экран `/download/{id}`;
|
||||||
в Telegram. Веб остаётся точкой точных правок.
|
пересекается с быстрым выбором в Telegram. Веб остаётся точкой точных правок.
|
||||||
|
|
||||||
Связано: [review-ux.md](specs/review-ux.md) (выбор кандидата, «без базы»,
|
Связано: [review-ux.md](specs/review-ux.md) (выбор кандидата, «без базы»,
|
||||||
переключатель типа), [recognition.md](specs/recognition.md) (кандидаты
|
переключатель типа), [recognition.md](specs/recognition.md) (кандидаты
|
||||||
@@ -192,39 +192,12 @@ qBittorrent, пул LLM-вызовов и запись в SQLite спроект
|
|||||||
карточке/расширенной информации и фундамент для метрик длительности стадий.
|
карточке/расширенной информации и фундамент для метрик длительности стадий.
|
||||||
Естественно ложится на собственный идентификатор загрузки.
|
Естественно ложится на собственный идентификатор загрузки.
|
||||||
|
|
||||||
Связано: [«Расширенная информация о загрузке»](#расширенная-информация-о-загрузке-в-web-ui)
|
Связано: детальный экран загрузки (`/download/{id}`) уже реализован — лог
|
||||||
(лог переходов), [workflow.md](specs/workflow.md) (граф состояний),
|
переходов ложится в него; [workflow.md](specs/workflow.md) (граф состояний),
|
||||||
[«Наблюдаемость: метрики»](#наблюдаемость-метрики-и-учёт-стоимости-llm)
|
[«Наблюдаемость: метрики»](#наблюдаемость-метрики-и-учёт-стоимости-llm)
|
||||||
(длительности стадий), [database.md](specs/database.md), пакеты `worker`,
|
(длительности стадий), [database.md](specs/database.md), пакеты `worker`,
|
||||||
`store`.
|
`store`.
|
||||||
|
|
||||||
### Главная: список загрузок вместо таблицы
|
|
||||||
|
|
||||||
Переделать главную страницу из таблицы в **список** карточек. Для каждой
|
|
||||||
загрузки: название (как распознали при добавлении в qBittorrent), `infohash`
|
|
||||||
с кнопкой быстрого копирования, статус и кнопки действий. Контекст (исходное
|
|
||||||
сообщение/magnet) спрятать под спойлер или вынести на отдельный детальный
|
|
||||||
экран (см. «Расширенная информация о загрузке»). Естественно сочетается с
|
|
||||||
фильтром/поиском/пагинацией по мере роста БД.
|
|
||||||
|
|
||||||
Связано: [«Расширенная информация о загрузке в web-UI»](#расширенная-информация-о-загрузке-в-web-ui),
|
|
||||||
[«Список загрузок: фильтр, поиск, пагинация»](#список-загрузок-фильтр-поиск-пагинация),
|
|
||||||
[review-ux.md](specs/review-ux.md), пакет `httpapi`.
|
|
||||||
|
|
||||||
### Расширенная информация о загрузке в web-UI
|
|
||||||
|
|
||||||
Отдельная страница просмотра одной загрузки — целиком отображение того, что
|
|
||||||
лежит в БД по задаче: актуальный статус (текущее состояние + лог переходов),
|
|
||||||
исходный контекст и magnet, распознанные данные и матч в метабазе (см.
|
|
||||||
«показывать матч»), а также **точная раскладка, если есть** — целевые пути и
|
|
||||||
созданные хардлинки. Помогает разбираться, когда что-то пошло не так, без
|
|
||||||
чтения логов сервера. Сюда же выносится контекст с карточки в списке
|
|
||||||
загрузок.
|
|
||||||
|
|
||||||
Связано: [«Главная: список загрузок»](#главная-список-загрузок-вместо-таблицы),
|
|
||||||
[review-ux.md](specs/review-ux.md), [architecture.md](specs/architecture.md)
|
|
||||||
→ «Хранилище» (`download`/`recognition`/`file_link`), пакет `httpapi`.
|
|
||||||
|
|
||||||
### Машина состояний на go-библиотеке
|
### Машина состояний на go-библиотеке
|
||||||
|
|
||||||
Сейчас FSM реализована вручную в `worker`. Выбрать подходящую go-библиотеку
|
Сейчас FSM реализована вручную в `worker`. Выбрать подходящую go-библиотеку
|
||||||
@@ -268,11 +241,12 @@ qBittorrent, пул LLM-вызовов и запись в SQLite спроект
|
|||||||
|
|
||||||
### Улучшения UI: показывать матч с записью метабазы
|
### Улучшения UI: показывать матч с записью метабазы
|
||||||
|
|
||||||
Во всех транспортах (веб, Telegram) показывать, **с какой именно записью**
|
Web-сторона реализована: страница загрузки `/download/{id}` и экран ревью
|
||||||
метабазы (TMDB/TVDB) сматчилась загрузка: название, год, провайдер-id,
|
показывают, **с какой именно записью** метабазы (TMDB/TVDB/IMDb) сматчилась
|
||||||
ссылку. Сейчас результат распознавания непрозрачен — пользователь не видит,
|
загрузка — провайдер, id и ссылку на запись. Осталось довести то же в
|
||||||
к чему привязались, и не может быстро поймать ошибочный матч. На web-стороне
|
**Telegram**: в уведомлениях/подтверждениях показывать запись матча (название,
|
||||||
развивается в полноценный выбор источника — см. [«Ревью: выбор источника
|
год, провайдер-id, ссылку), чтобы ошибочную привязку было видно и из бота.
|
||||||
|
Полный выбор источника в вебе — см. [«Ревью: выбор источника
|
||||||
совпадения»](#ревью-выбор-источника-совпадения-и-предпросмотр).
|
совпадения»](#ревью-выбор-источника-совпадения-и-предпросмотр).
|
||||||
|
|
||||||
Связано: [review-ux.md](specs/review-ux.md), [recognition.md](specs/recognition.md)
|
Связано: [review-ux.md](specs/review-ux.md), [recognition.md](specs/recognition.md)
|
||||||
@@ -347,22 +321,6 @@ qBittorrent, без исходящих запросов на пользоват
|
|||||||
[«Многоступенчатая верификация»](#многоступенчатая-верификация-привязки-идея),
|
[«Многоступенчатая верификация»](#многоступенчатая-верификация-привязки-идея),
|
||||||
[architecture.md](specs/architecture.md) → «Хранилище» (`hint`, `override`).
|
[architecture.md](specs/architecture.md) → «Хранилище» (`hint`, `override`).
|
||||||
|
|
||||||
### Список загрузок: фильтр, поиск, пагинация
|
|
||||||
|
|
||||||
Прямое следствие роста БД (см. «Ретеншн»): плоский список загрузок со
|
|
||||||
временем становится непригоден. Нужны фильтр по состоянию, поиск по
|
|
||||||
названию и пагинация. Естественно ложится на список-карточки главной и на
|
|
||||||
экран расширенной информации.
|
|
||||||
|
|
||||||
Частный случай как разумный дефолт: на главной **по умолчанию скрывать
|
|
||||||
загрузки в статусе `deleted`** (терминальные, удалённые из источника и
|
|
||||||
цели — шум в ленте), с переключателем/фильтром «показать всё». Маленькая
|
|
||||||
часть, может приехать раньше полноценного фильтра.
|
|
||||||
|
|
||||||
Связано: [«Главная: список загрузок»](#главная-список-загрузок-вместо-таблицы),
|
|
||||||
[«Расширенная информация о загрузке в web-UI»](#расширенная-информация-о-загрузке-в-web-ui),
|
|
||||||
пакет `httpapi`.
|
|
||||||
|
|
||||||
## Низкий
|
## Низкий
|
||||||
|
|
||||||
### Мгновенные обновления через SSE
|
### Мгновенные обновления через SSE
|
||||||
@@ -378,21 +336,6 @@ qBittorrent, без исходящих запросов на пользоват
|
|||||||
Связано: [architecture.md](specs/architecture.md) → «Транспорты»,
|
Связано: [architecture.md](specs/architecture.md) → «Транспорты»,
|
||||||
[review-ux.md](specs/review-ux.md), пакет `httpapi`.
|
[review-ux.md](specs/review-ux.md), пакет `httpapi`.
|
||||||
|
|
||||||
### Полировка веб-UI: список и карточка загрузки
|
|
||||||
|
|
||||||
Мелкие правки вёрстки и согласованности (низкая цена, заметный эффект):
|
|
||||||
|
|
||||||
- в списке на главной показывать имя загрузки **ровно то**, что отдаём в
|
|
||||||
qBittorrent как имя раздачи, — чтобы список и клиент были синхронны
|
|
||||||
(уточняет [«Главная: список загрузок»](#главная-список-загрузок-вместо-таблицы));
|
|
||||||
- в карточке блок «Распознано как» растянуть на всю ширину блока (сейчас
|
|
||||||
обрывается на середине);
|
|
||||||
- в блоке «Файлы и раскладка» приклеить стрелку к первой строке
|
|
||||||
(файл-источник), чтобы источник и цель выводились строго один под другим.
|
|
||||||
|
|
||||||
Связано: [«Главная: список загрузок»](#главная-список-загрузок-вместо-таблицы),
|
|
||||||
[review-ux.md](specs/review-ux.md), пакет `httpapi`.
|
|
||||||
|
|
||||||
### Многоступенчатая верификация привязки _(идея)_
|
### Многоступенчатая верификация привязки _(идея)_
|
||||||
|
|
||||||
Несколько раз извлекать данные из раздачи и контекста разными промптами,
|
Несколько раз извлекать данные из раздачи и контекста разными промптами,
|
||||||
|
|||||||
Reference in New Issue
Block a user