2.9 KiB
2.9 KiB
Дорожная карта
Черновик плана реализации. Ориентир, не обязательство; по ходу
уточняется. Что реализовано и как устроено — в docs/specs.
Фазы
- Ф0 — каркас. go.mod, раскладка пакетов, загрузка TOML-конфига,
SQLite + миграции, slog-логи,
Dockerfile(минимальный рантайм-образ, копирует готовый бинарь), golangci-lint, lefthook. Документация (этот этап — частично готов). - Ф1 — ingest + tracking (без LLM).
Ingest()+ добавление в qBittorrent (категорияjellybit) +worker-поллинг завершения + машина состояний. Наружу: HTTP API, список в веб-UI,jellybit add. - Ф2 — распознавание.
go-ptn+ LLM (structured output) → план + оценка уверенности. Без записи на диск. - Ф3 — раскладка + минимальный review. Хардлинки по конвенциям Jellyfin, субтитры, идемпотентность, undo. Авто при высокой уверенности; низкая → review (htmx): подсказка + перераспознавание, из ручного — тип, выбор кандидата базы, пометка «игнор». Полный редактор маппинга — Ф5. См. review-ux.md.
- Ф4 — метаданные. TMDB/TVDB опционально, provider-id в именах, валидация распознавания против числа серий.
- Ф5 — Telegram + UX. Бот-адаптер + парсер сообщений торрент-бота, подтверждение в боте (карточка + кнопки + reply-подсказка, эскалация в веб), полный редактор маппинга «файл → серия», триггер скана Jellyfin, нотификации.
- Ф6 — деплой. Сборка статического бинаря здесь; доставка бинаря +
Dockerfileна сервер,docker buildи запуск на месте; оркестрация —playbook-jellybit.ymlв umbar.
Заметки по порядку
- Минимальный review-экран нужен уже в Ф3 (как только появляется режим «спросить при сомнении»), полноценный UX — в Ф5.
- Jellyfin в umbar ещё не развёрнут — раскладку файлов это не блокирует, тестируется без него; триггер скана подключаем, когда Jellyfin поднят.