Уточнение деталей архитектуры

This commit is contained in:
2026-06-13 17:42:25 +03:00
parent 5b53f4e8e8
commit 547940ea59
6 changed files with 220 additions and 30 deletions
+4 -4
View File
@@ -19,10 +19,10 @@ Jellyfin ждёт `SxxEyy`. Нужен пересчёт абсолютной н
## Завершение загрузки через webhook
Сейчас план — поллинг qBittorrent. Альтернатива: «Run external program on
torrent completion» в qBittorrent дёргает эндпоинт jellybit. Реагирует
быстрее, но связывает нас с конфигом qBittorrent. Решим по опыту
эксплуатации.
Сейчас принято — поллинг qBittorrent раз в несколько секунд.
Альтернатива: «Run external program on torrent completion» в qBittorrent
дёргает эндпоинт jellybit. Реагирует быстрее, но связывает нас с конфигом
qBittorrent. Решим по опыту эксплуатации.
## Нотификации о готовности
+13 -7
View File
@@ -6,22 +6,28 @@
## Фазы
- **Ф0 — каркас.** go.mod, раскладка пакетов, загрузка TOML-конфига,
SQLite + миграции, slog-логи, Dockerfile (static → distroless),
golangci-lint, lefthook. Документация (этот этап — частично готов).
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, субтитры, идемпотентность. Авто при высокой уверенности;
низкая → экран подтверждения (htmx).
Jellyfin, субтитры, идемпотентность, **undo**. Авто при высокой
уверенности; низкая → review (htmx): подсказка + перераспознавание, из
ручного — тип, выбор кандидата базы, пометка «игнор». Полный редактор
маппинга — Ф5. См. [review-ux.md](../specs/review-ux.md).
- **Ф4 — метаданные.** TMDB/TVDB опционально, provider-id в именах,
валидация распознавания против числа серий.
- **Ф5 — Telegram + UX.** Бот-адаптер + парсер сообщений торрент-бота,
подтверждение в боте, триггер скана Jellyfin, нотификации.
- **Ф6 — деплой.** Static-образ/бинарь + обвязка в umbar
(`playbook-jellybit.yml`).
подтверждение в боте (карточка + кнопки + reply-подсказка, эскалация в
веб), полный редактор маппинга «файл → серия», триггер скана Jellyfin,
нотификации.
- **Ф6 — деплой.** Сборка статического бинаря здесь; доставка бинаря +
`Dockerfile` на сервер, `docker build` и запуск на месте; оркестрация —
`playbook-jellybit.yml` в umbar.
## Заметки по порядку