2026-05-16 media-toolbox: баги 13-15, QuerySnapshotGenerator, 391 тестов GREEN
This commit is contained in:
@@ -186,6 +186,28 @@ media-pipeline (~/Developer/media_files_db, ветка kraken-agent)
|
||||
**Тест:** `NameTokenizationTests.yearInUnderscores` + `titleParserYearInUnderscores` — оба GREEN.
|
||||
**Коммит:** `61be066` (заодно с NFO sidecar fix, фактически в коде с TitleParser.swift line 39).
|
||||
|
||||
### Баг 13: `OutputConfig` — `cartoons`/`documentaries` не optional в JSON
|
||||
**Проблема:** Старые config-файлы и тест-JSON без новых полей бросали `keyNotFound` при декодировании.
|
||||
**Фикс:** Добавлен `init(from: Decoder)` с `decodeIfPresent` + дефолт `[]`. Backward compatible. Коммит `2db0f81`.
|
||||
|
||||
### Баг 14: `xvid`/`divx` не в списке quality markers
|
||||
**Проблема:** `Nehochuha.XVid.DVDRip` → `xvid` не стрипался → попадал в title tokens → мусорный запрос.
|
||||
**Фикс:** Добавлены `xvid|divx` в регекс quality markers в `TitleParser.cleanupTitleAndYear`. Коммит `2db0f81`.
|
||||
|
||||
### Баг 15: TitleParser — год как название фильма (1984, 2001)
|
||||
**Проблема:** `TitleParser` жадно вырезал первый `(19|20)\d\d` — для фильмов `1984`, `2001 Odyssey` оставлял пустой title и ломал TMDb запрос.
|
||||
**Фикс:** Safety guard: стрип года только если перед ним ≥2 буквенных символа. Применён в обоих year-extraction блоках.
|
||||
**Тесты:** `TitleParserExhaustiveTests.nineteenEightyFour`, `nineteenEightyFourBDRip`, `spaceOdyssey` — GREEN. Коммит `2db0f81`.
|
||||
|
||||
---
|
||||
|
||||
### Инструмент: QuerySnapshotGenerator
|
||||
При изменениях в `TitleParser`/`NameTokenization`/`QueryBuilder` снапшоты в `QueryBuilderFixtureParameterizedTests.swift` устаревают.
|
||||
**Регенерация:** `swift run QuerySnapshotGenerator` из корня репо.
|
||||
НЕ использовать `SNAPSHOT_TESTING_RECORD=all` — InlineSnapshotTesting 1.18.7 крашит при 364 concurrent writes (SIGSEGV).
|
||||
|
||||
---
|
||||
|
||||
### Баг 6: resolve-manual NFO path для single-файлов
|
||||
`resolve-manual` писал NFO внутрь файла вместо рядом.
|
||||
**Фикс:** Detect `isDirectory`, для файлов → `deletingPathExtension().appendingPathExtension("nfo")`. Коммит `c0fdc59`
|
||||
@@ -339,7 +361,7 @@ docker run --rm \
|
||||
- **2026-05-16 сессия 8:** Обнаружен корневой баг: KP API переехал `api.kinopoisk.dev` → `api.poiskkino.dev` (301 redirect, Swift теряет X-API-KEY). Исправлен URL. Удалены 359 невалидных KP-кеш записей. Добавлен leet-speak decode (`4`→`ch`: ni4ego→nichego, muzh4iny→muzhchiny). Починен кеш: KP пустые `docs:[]` больше не кешируются (были причиной повторных промахов после rate-limit/redirect). **Текущий unresolved: 22. Завтра KP лимит сбросится → ожидаем ≤5.**
|
||||
- **2026-05-16 сессия 9:** Добавлен жанровый роутинг (cartoons/documentaries — только по genres из провайдера, не по source path). Фикс `nfoMeta priority` (provider genres > local empty NFO). Фикс парсинга года `2023г` (русский суффикс). TMDb genres передаются из config. **Убран Cyr→Lat query variant** (не соответствует оригинальному Go-sync, TMDb не ищет по транслиту). Порядок провайдеров подтверждён: TMDb → KP → IMDb (short-circuit после каждого). KP — настоящий fallback (40 запросов vs 8428 TMDb). Текущий unresolved: 30 (ждём сброса KP rate limit).
|
||||
- **2026-05-16 сессия 10–11 (продолжение):** Серия кодовых фиксов. **278 applied, 3 skipped (98.9%).** Созданы ручные NFO для 11 тайтлов (нарушение принципа — удалены в сессии 12).
|
||||
- **2026-05-16 сессия 12:** Удалены 15 ручных NFO. Подтверждён и задокументирован Баг 12 (`_1985_` year extraction). TitleParser регекс исправлен на `(?<![0-9])…(?![0-9])`. Тесты `yearInUnderscores` + `titleParserYearInUnderscores` — GREEN. Текущий unresolved на Кракене: **6** (2 standalone-дубля + папка bezumnyj + 3 BBC/доки genuinely absent). **Следующий шаг:** exhaustive тесты для всех проблемных тайтлов → deploy → agentic flow для оставшихся.
|
||||
- **2026-05-16 сессия 12:** Удалены 15 ручных NFO. Подтверждён и задокументирован Баг 12 (`_1985_` year extraction). TitleParser регекс исправлен. Exhaustive тесты `TitleParserExhaustiveTests` (24 кейса) — GREEN. Баги 13 (OutputConfig backward compat), 14 (xvid/divx markers), 15 (год-как-название: 1984, 2001). `QuerySnapshotGenerator` executable — регенерация 364 снапшотов без racing. **391/391 тестов GREEN.** Текущий unresolved на Кракене: **6**. Следующий шаг: deploy → clean run → agentic flow для 3 BBC/доков.
|
||||
|
||||
### Фиксы сессий 10–11 (код)
|
||||
- ✅ **double-counting fix** — `HypothesisArbiter`: `penalizedZeroProviders` в `HypothesisFact`, только newly-zero провайдеры пенализируются за проход. Серебряные коньки resolved.
|
||||
|
||||
Reference in New Issue
Block a user