From b420aa4c9dc8ed88b7e44a6301dde6f4f2b46a2b Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Wed, 1 Jul 2026 09:58:01 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=B1=D1=80=D0=B0=D0=BB=20=D0=B8=D0=B7?= =?UTF-8?q?=20=D0=B1=D0=B5=D0=BA=D0=BB=D0=BE=D0=B3=D0=B0=20=D1=80=D0=B5?= =?UTF-8?q?=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD=D1=8B?= =?UTF-8?q?=D0=B5=20UI/UX-=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B8=20(docs)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Сделаны в change web-ui-list-detail и убраны из беклога: - «Главная: список загрузок вместо таблицы» - «Расширенная информация о загрузке в web-UI» - «Список загрузок: фильтр, поиск, пагинация» - «Полировка веб-UI: список и карточка загрузки» «Улучшения UI: показывать матч» сужено до Telegram (web-сторона сделана). Поправлены перекрёстные ссылки в оставшихся пунктах, чтобы не висли на удалённые якоря. Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/backlog.md | 79 +++++++------------------------------------------ 1 file changed, 11 insertions(+), 68 deletions(-) diff --git a/docs/backlog.md b/docs/backlog.md index 740b373..1efa2dc 100644 --- a/docs/backlog.md +++ b/docs/backlog.md @@ -62,9 +62,9 @@ qBittorrent с файлами), подтверждение осознаннос - при выборе/переключении — **предпросмотр полей** (название, режиссёр, год) и **предпросмотр раскладки** (целевые пути) до применения. -Развивает «показывать матч с записью метабазы» (web-сторона), пересекается -с «Расширенной информацией о загрузке» (детальный экран) и быстрым выбором -в Telegram. Веб остаётся точкой точных правок. +Развивает уже реализованный показ матча в вебе (страница загрузки и экран +ревью — провайдер, id, ссылка на запись) и детальный экран `/download/{id}`; +пересекается с быстрым выбором в Telegram. Веб остаётся точкой точных правок. Связано: [review-ux.md](specs/review-ux.md) (выбор кандидата, «без базы», переключатель типа), [recognition.md](specs/recognition.md) (кандидаты @@ -192,39 +192,12 @@ qBittorrent, пул LLM-вызовов и запись в SQLite спроект карточке/расширенной информации и фундамент для метрик длительности стадий. Естественно ложится на собственный идентификатор загрузки. -Связано: [«Расширенная информация о загрузке»](#расширенная-информация-о-загрузке-в-web-ui) -(лог переходов), [workflow.md](specs/workflow.md) (граф состояний), +Связано: детальный экран загрузки (`/download/{id}`) уже реализован — лог +переходов ложится в него; [workflow.md](specs/workflow.md) (граф состояний), [«Наблюдаемость: метрики»](#наблюдаемость-метрики-и-учёт-стоимости-llm) (длительности стадий), [database.md](specs/database.md), пакеты `worker`, `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-библиотеке Сейчас FSM реализована вручную в `worker`. Выбрать подходящую go-библиотеку @@ -268,11 +241,12 @@ qBittorrent, пул LLM-вызовов и запись в SQLite спроект ### Улучшения UI: показывать матч с записью метабазы -Во всех транспортах (веб, Telegram) показывать, **с какой именно записью** -метабазы (TMDB/TVDB) сматчилась загрузка: название, год, провайдер-id, -ссылку. Сейчас результат распознавания непрозрачен — пользователь не видит, -к чему привязались, и не может быстро поймать ошибочный матч. На web-стороне -развивается в полноценный выбор источника — см. [«Ревью: выбор источника +Web-сторона реализована: страница загрузки `/download/{id}` и экран ревью +показывают, **с какой именно записью** метабазы (TMDB/TVDB/IMDb) сматчилась +загрузка — провайдер, id и ссылку на запись. Осталось довести то же в +**Telegram**: в уведомлениях/подтверждениях показывать запись матча (название, +год, провайдер-id, ссылку), чтобы ошибочную привязку было видно и из бота. +Полный выбор источника в вебе — см. [«Ревью: выбор источника совпадения»](#ревью-выбор-источника-совпадения-и-предпросмотр). Связано: [review-ux.md](specs/review-ux.md), [recognition.md](specs/recognition.md) @@ -347,22 +321,6 @@ qBittorrent, без исходящих запросов на пользоват [«Многоступенчатая верификация»](#многоступенчатая-верификация-привязки-идея), [architecture.md](specs/architecture.md) → «Хранилище» (`hint`, `override`). -### Список загрузок: фильтр, поиск, пагинация - -Прямое следствие роста БД (см. «Ретеншн»): плоский список загрузок со -временем становится непригоден. Нужны фильтр по состоянию, поиск по -названию и пагинация. Естественно ложится на список-карточки главной и на -экран расширенной информации. - -Частный случай как разумный дефолт: на главной **по умолчанию скрывать -загрузки в статусе `deleted`** (терминальные, удалённые из источника и -цели — шум в ленте), с переключателем/фильтром «показать всё». Маленькая -часть, может приехать раньше полноценного фильтра. - -Связано: [«Главная: список загрузок»](#главная-список-загрузок-вместо-таблицы), -[«Расширенная информация о загрузке в web-UI»](#расширенная-информация-о-загрузке-в-web-ui), -пакет `httpapi`. - ## Низкий ### Мгновенные обновления через SSE @@ -378,21 +336,6 @@ qBittorrent, без исходящих запросов на пользоват Связано: [architecture.md](specs/architecture.md) → «Транспорты», [review-ux.md](specs/review-ux.md), пакет `httpapi`. -### Полировка веб-UI: список и карточка загрузки - -Мелкие правки вёрстки и согласованности (низкая цена, заметный эффект): - -- в списке на главной показывать имя загрузки **ровно то**, что отдаём в - qBittorrent как имя раздачи, — чтобы список и клиент были синхронны - (уточняет [«Главная: список загрузок»](#главная-список-загрузок-вместо-таблицы)); -- в карточке блок «Распознано как» растянуть на всю ширину блока (сейчас - обрывается на середине); -- в блоке «Файлы и раскладка» приклеить стрелку к первой строке - (файл-источник), чтобы источник и цель выводились строго один под другим. - -Связано: [«Главная: список загрузок»](#главная-список-загрузок-вместо-таблицы), -[review-ux.md](specs/review-ux.md), пакет `httpapi`. - ### Многоступенчатая верификация привязки _(идея)_ Несколько раз извлекать данные из раздачи и контекста разными промптами,