- Веб-UI: под шапкой страницы загрузки — дата добавления и относительная
давность («N дней назад»), как в карточках списка.
- Баг: ссылка-dereferrer TVDB для фильма вела на /series/; теперь строится
по типу запроса (/movie/ либо /series/). Тест + правка спеки metadata-match.
- Telegram: заголовки уведомлений (готово/ошибка/рассинхрон) берутся из
display_name — консистентно с веб-UI; сезон подтягивается автоматически.
- Telegram: в сообщениях об ошибке — и заголовок, и #id загрузки (ULID)
для быстрого поиска по логам.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Каждый кандидат внешней базы метаданных (TMDB/TVDB/TVMaze) теперь несёт
URL на страницу элемента — при ревью можно кликнуть и проверить матч.
URL формируется клиентом провайдера при поиске, сохраняется в БД
(metadata_candidate.url) и отображается ссылкой в веб-интерфейсе.
Co-Authored-By: Claude <noreply@anthropic.com>
Сверка с метабазой промахивалась на иностранных фильмах с русским
релиз-именем (кейс «Тёмный рыцарь»): поиск шёл по одной строке
provider_hint||title и игнорировал original_title, а базы индексированы
прежде всего по оригинальным названиям.
- matchMetadata ищет по ключам original_title → title → provider_hint с
ранним стопом на первом единичном сильном матче; пустые и
нормализованно-дублирующие ключи пропускаются, кандидаты для review
копятся из всех заходов.
- Промпт требует всегда заполнять title и original_title (дублировать при
отсутствии оригинала / российском контенте; при неуверенности дублировать,
не выдумывать). Разбор остаётся мягким к пустому original_title.
- TMDB-поиск передаёт language (по умолчанию ru-RU, настраивается
[metadata.tmdb].language); original_title не зависит от локали.
- Нормализация названий сводит ё→е.
Инварианты не ослаблены: авто только при подтверждённом единичном матче +
структурной валидации + согласованности сигналов.
Capability recognition впервые перенесена в OpenSpec; change архивирован.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>