Раскладка: сходимость папки сериала (второй сезон в ту же папку)
При подтверждённом матче база папки (имя+год) наследуется от живой папки-якоря того же (provider, provider_id) вместо печати заново из выхода LLM — так второй/последующий сезон ложится в ТУ ЖЕ папку, а не заводит рядом почти одинаковую. Отдельная сущность «тайтл» не вводится. - layout: Plan.FolderBase перекрывает базу в папке и именах файлов; TitleFolder разбирает dst_path в папку тайтла и базу (снятие тега). - store: LiveTitleFolders — dst_path живых ссылок того же матча. - worker: resolveFolderBase (живость якоря — по наличию папки на диске, os.Lstat, а не по статусу ссылки в БД) в linkPlan и в превью ревью (превью=применение); рассинхрон нескольких живых папок → review из linking (deferred→review в графе нет). Схема БД не менялась. Change series-folder-convergence заархивирован, требования влиты в openspec/specs/file-layout. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -16,7 +16,6 @@ Tududi (проект `jellybit`) больше **не** держит беклог
|
||||
|
||||
## Высокий
|
||||
|
||||
- [Проблема второго сезона (сходимость папки сериала)](vtoroy-sezon-shodimost-papki.md) — Второй/третий сезон должен ложиться в ТУ ЖЕ папку сериала, а не заводить рядом почти…
|
||||
- [Раздачи с докачиванием (merge при повторном добавлении)](merge-dokachivanie.md) — Свежий сериал раздают по мере выхода: торрент с 5 из 10 эпизодов позже перезаливают…
|
||||
- [Ретеншн и очистка БД](retention-ochistka-bd.md) — Терминальные задачи (done/cancelled/failed/reverted), их попытки recognition с сырыми…
|
||||
- [Eval-харнес распознавания (корпус кейсов + метрика точности)](eval-harness-raspoznavaniya.md) — Распознавание — ядро продукта, но смена модели или правка промпта сейчас вслепую…
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
# Проблема второго сезона (сходимость папки сериала)
|
||||
|
||||
**Приоритет:** высокий
|
||||
|
||||
Второй/третий сезон должен ложиться в ТУ ЖЕ папку сериала, а не заводить рядом почти одинаковую. Проблема не в группировке, а в сходимости папки: имя печатается заново из выхода LLM, совпадение provider_id не гарантирует совпадение строки («Fargo» vs «Фарго», год сезона vs год сериала). Отдельная сущность «тайтл» НЕ вводится. Решение — правило сходимости при построении плана: при подтверждённом матче наследовать базу папки (имя+год) от живых file_link загрузок с тем же (provider, provider_id), игнорируя LLM-выход; якоря нет → папка из распознавания, как сейчас.
|
||||
|
||||
Шаги:
|
||||
- lookup живых ссылок по (provider, provider_id) через current recognition
|
||||
- наследование базы папки (имя+год) при построении плана раскладки
|
||||
- рассинхрон (несколько живых папок с одним матчем) → review, не молча
|
||||
- тесты: сходимость, отсутствие якоря (свежая папка), смена провайдера
|
||||
|
||||
Связано: drafts/logical-title-model.md §5.2, specs/recognition.md, specs/jellyfin-layout.md
|
||||
@@ -248,12 +248,19 @@ qBittorrent, но: v1/v2/гибрид дают разные значения; п
|
||||
|
||||
```
|
||||
1. ULID загрузки + download_infohash (дедуп переезжает). ← фундамент
|
||||
2. правило сходимости папки при плане раскладки. ← «второй сезон»
|
||||
2. правило сходимости папки при плане раскладки. ← «второй сезон» ✓ реализовано
|
||||
3. merge-раскладка (докачивание: доложить недостающее). ← §6.2
|
||||
4. группа «тайтл» в UI (вычисляемая) + удаление целиком (path 2). ← §6.4
|
||||
(state_transition — вставить, когда захочется таймлайн/метрики)
|
||||
```
|
||||
|
||||
> Шаг 2 (правило сходимости папки) реализован — change
|
||||
> `openspec/changes/archive/2026-07-10-series-folder-convergence/`, требования
|
||||
> влиты в `openspec/specs/file-layout/`. Отличие от §5.2 черновика: живость якоря
|
||||
> определяется существованием папки на диске (`os.Lstat`), а не только статусом
|
||||
> ссылки; рассинхрон нескольких живых папок → review; in-app разрешение
|
||||
> рассинхрона осознанно вне scope (ручной фикс на диске).
|
||||
|
||||
Каждый шаг — отдельный OpenSpec change; 1–2 самодостаточны и закрывают главную
|
||||
боль.
|
||||
|
||||
|
||||
@@ -39,6 +39,11 @@ series/
|
||||
|
||||
- provider-id — на папке сериала.
|
||||
- Сезоны — `Season 01`, файлы — `... SxxEyy`.
|
||||
- **Сходимость папки:** при подтверждённом матче база папки (имя+год) наследуется
|
||||
от живой папки-якоря того же `(provider, provider_id)` (существующей на диске), а
|
||||
не печатается заново из выхода LLM — так второй сезон ложится в ту же папку, что
|
||||
и первый. Несколько разных живых папок одного матча → review. Источник истины —
|
||||
`openspec/specs/file-layout/` («Сходимость базы папки…»).
|
||||
|
||||
## Сопоставление источник → цель
|
||||
|
||||
|
||||
Reference in New Issue
Block a user