Tududi оказался неудобен для ведения беклога проекта — переходим на файлы в репозитории. Каждая задача — отдельный markdown в docs/backlog/ (48 файлов), плюс индекс README.md со списком по приоритетам и хуками. Тело файла хранит исходное описание (контекст, решения, ссылки на спеки/ADR/черновики). CLAUDE.md: источник истины по беклогу теперь docs/backlog/; Tududi понижен до инбокса сырых идей. Живые ссылки в спеках (recognition, architecture, review-ux, jellyfin-layout) «в беклоге (Tududi)» переписаны на прямые ссылки на файлы беклога. Перенесённые задачи удалены из Tududi; завершённые оставлены как история. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
13 KiB
Беклог
Единый список будущих задач по проекту: то, что уже решили сделать, и идеи,
которые ещё надо обдумать. Это источник истины по беклогу — одна задача = один
файл в этом каталоге. Не план реализации и не спецификация: принятое и
реализованное переезжает в docs/specs/docs/adr, а сам
пункт беклога удаляется.
Приоритет — грубая оценка «ценность / стоимость», не обязательство к порядку.
Спекулятивные пункты (ещё без решения «делаем») помечены префиксом [идея] в
названии — их сперва надо проработать. Пункты, помеченные (ревью 2026-07-08),
пришли из тщательного ревью ingest/worker/жизненного цикла (см. общий тег в теле).
Tududi (проект jellybit) больше не держит беклог — он служит только
инбоксом сырых идей. Прежде чем идея станет задачей, её оформляют файлом здесь.
Высокий
- Проблема второго сезона (сходимость папки сериала) — Второй/третий сезон должен ложиться в ТУ ЖЕ папку сериала, а не заводить рядом почти…
- Раздачи с докачиванием (merge при повторном добавлении) — Свежий сериал раздают по мере выхода: торрент с 5 из 10 эпизодов позже перезаливают…
- Удаление средствами jellybit («единое окно», path 2) — Распознавание ручного удаления и пометка рассинхрона уже сделаны (state-reconciliation…
- Ретеншн и очистка БД — Терминальные задачи (done/cancelled/failed/reverted), их попытки recognition с сырыми…
- Eval-харнес распознавания (корпус кейсов + метрика точности) — Распознавание — ядро продукта, но смена модели или правка промпта сейчас вслепую…
- НФТ: масштаб до 100 одновременных загрузок (потолок — 1000) — Потолок по нагрузке нигде не зафиксирован: воркер, поллинг qBittorrent, пул LLM-вызовов и…
- Гейт дозаписи хешей в dedup-ветке CreateDownloadIfNoActive (F1) — dedup-ветка дописывает все хеши в найденную задачу без гарда — риск инварианта ≤1 активной (ревью 2026-07-08)
- Readiness-preflight: запрет авто-раскладки недокачанных файлов (MAJOR-5) — САМОЕ ОПАСНОЕ: авто-раскладка недокачанных файлов рвёт целостность библиотеки (ревью 2026-07-08)
- Retry/stall семантика: сброс базиса таймаута + простой от начала, а не от возраста торрента (MAJOR-1, MAJOR-2) — таймаут и простой отсчитываются от возраста торрента, а не от начала загрузки (ревью 2026-07-08)
- Восстановление zombie downloading при пропаже источника из qBittorrent (MAJOR-3) — торрент пропал из qBittorrent в downloading → задача вечный зомби, никто не двигает (ревью 2026-07-08)
Средний
- Словарь единого языка (ubiquitous language) — Свести термины домена в один глоссарий, чтобы пользователь, документация, код и агент…
- Агенты-ревьюверы качества (наименования, архитектура, конвенции, стиль) — Набор узких сабагентов-ревьюверов поверх ревью-процесса из CLAUDE
- [идея] Сила совпадения кандидата и пересмотр распознавания/матчинга — ИДЕЯ (сперва проработать)
- История переходов загрузки — Сохранять полную историю переходов состояний загрузки (что/когда/почему/кто инициировал…
- Машина состояний на go-библиотеке — Сейчас FSM реализована вручную в worker
- Привязка уведомлений к источнику в ботах (мульти-бот) — Уведомления и запросы подтверждения должен получать тот, кто прислал загрузку: автор…
- Улучшения UI: показывать матч с записью метабазы в Telegram — Web-сторона реализована: страница загрузки /download/{id} и экран ревью показывают, с…
- [идея] Сложные сериальные раздачи: все сезоны разом, паки, спецраскладки — ИДЕЯ (проработать крайние случаи)
- Аниме с абсолютной нумерацией — Релизы аниме часто нумеруют серии сквозным числом (#137) без сезонов, а Jellyfin ждёт…
- Добавление торрентов файлом/ссылкой — «единое окно» — Поддержать источники помимо magnet:
- Бэкап SQLite — architecture
- Глубокий healthcheck и статус зависимостей — /healthz проверяет только сам сервис
- Обучение на правках человека (few-shot из прошлых ревью) — Когда человек поправил матч, тип или нумерацию — сохранять это как пример и подмешивать…
- Гейт авто-раскладки по confidence: спека vs код — Аудит спек↔код (2026-07-03) нашёл расхождение в модели уверенности
- Привязка внешних субтитров к серии (сериалы) — Аудит спек↔код (2026-07-03): спека recognition требует «внешние субтитры SHALL…
- Раздачи-копии диска (DVD/BluRay: VIDEO_TS/BDMV) — Иногда для очень редких фильмов скачивается не один видеофайл, а полная копия диска…
- Сделать фавиконку для jellybit — мелкая косметика: иконка вкладки/PWA для веб-UI
- Sweep застрявших linking при рестарте + фикс persist-failure (MAJOR-4) — задачи застревают в linking при рестарте; заодно фикс persist-failure (ревью 2026-07-08)
- Defer из catched → лимбо → необратимый deleted (MAJOR-6) — Defer из ещё-не-добавленного catched уводит задачу в необратимый deleted (ревью 2026-07-08)
- processCatched: promote-without-add если торрент уже в qBittorrent (F2) — торрент уже в qBittorrent → processCatched зациклен на Add вместо promote (ревью 2026-07-08)
- Cancel во время add оставляет неуправляемый торрент в qBittorrent (F3/NIT-13) — Cancel во время add оставляет неуправляемый торрент в qBittorrent (ревью 2026-07-08)
- transition() глотает ошибки перед созданием хардлинков (MINOR-7) — transition() глотает ошибку перед хардлинками — задача застревает в review (ревью 2026-07-08)
- .torrent поверх magnet при дедупе теряет байты — потерян upgrade-путь (F6) — .torrent поверх magnet при дедупе теряет байты — потерян upgrade-путь (ревью 2026-07-08)
Низкий
- Панель действий ревью вне htmx-свопа блока источника — При выборе источника одним кликом обновляется только блок источника (#source-block)…
- Мгновенные обновления через SSE — Живые обновления прогресса сейчас на htmx-поллинге (фаза 2 веб-UI) — просто и работает…
- Версии/качество одного тайтла (репаки, апгрейд 1080p → 2160p) — По калибровке болей (2026-07-02) — не боль, из приоритета выпало
- [идея] Многоступенчатая верификация привязки — ИДЕЯ (требует проработки)
- Выбор из нескольких находок метабазы в Telegram — Когда распознавание даёт несколько подходящих кандидатов в метабазе, предлагать их в…
- Проверка свободного места перед copy-fallback — Когда хардлинк невозможен (EXDEV/ENOTSUP/…), layout копирует файл, дублируя место на диске
- Кэш метабаз (и опционально LLM) — Повторные и ретраящиеся прогоны распознавания бьют TMDB/TVDB/TVMaze одним и тем же…
- [идея] guessit как сервис-спутник — ИДЕЯ
- [идея] Завершение загрузки через webhook — ИДЕЯ (решим по опыту эксплуатации)
- Авторизация веб-UI (на будущее) — Решено для v1: без авторизации в доверенной LAN, опц
- Современный Web-UI как PWA — Переделать веб-интерфейс в современное PWA-приложение (устанавливаемое, отзывчивое…
- Идентичность инфохэшей: split v1/v2 одного торрента + крафт-магнет отравляет владение (F4, F5) — split v1/v2 идентичность и крафт-магнет отравляют владение инфохэшами (ревью 2026-07-08)
- Приём/UI: мелкие фиксы границ и парсинга (F7, F8, F9, F10, N2) — мелочи приёма/UI: oversized→500, гонки дедупа, парсинг magnet, cap контекста, руны (ревью 2026-07-08)
- Жизненный цикл: мелкие находки (MINOR-8, MINOR-9, NIT-11, NIT-12) — claim-token распознавания, I/O под глобальным mutex, мелкие lookup/retry (ревью 2026-07-08)
- Нити приёма: NoName в контексте, устаревшие комментарии, лог без причины, bencode-аллокации (N1, N3, N4, N5) — косметика приёма: NoName в контексте, устаревшие комментарии, лог, bencode-аллокации (ревью 2026-07-08)