На /download/{id} поле «Режиссёр» было захардкожено прочерком, хотя экран
ревью режиссёра уже выводит: слоистое разрешение полей ярлыка было заперто в
неэкспортируемом worker.effectiveDisplayName. Из-за этого билдеры вью видели
только слой распознавания+матч (rd.Plan.Director) без слоя контекста — то же
на экране ревью.
Вынес разрешение в экспортируемую naming.EffectiveFields(parsedContext, plan)
LabelFields с методом Label(): выбор слоя по сырым значениям (как прежде),
выбранные скаляры возвращаются очищенными (sanitize идемпотентен, display_name
побайтно тот же). effectiveDisplayName стал тонкой обёрткой; страница загрузки
и экран ревью берут режиссёра из той же функции — согласованно с заголовком.
OpenSpec: web-ui (ADDED «Режиссёр в блоке распознавания страницы загрузки»),
review (MODIFIED «Инфо и предпросмотр выбранного источника» — слоистое
разрешение с фолбэком на контекст). Change заархивирован. Беклог: закрыта
rezhisser-v-kartochke-zagruzki.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
3.9 KiB
review Specification
MODIFIED Requirements
Requirement: Инфо и предпросмотр выбранного источника
В едином блоке выбора источника экран ревью SHALL показывать для выбранного
(активного) источника две части: инфо — тип (read-only, movie/series),
название, оригинальное название, год, режиссёра эффективного источника,
разрешённого слоями (override/подтверждённый матч+кандидат → сохранённый при
приёме контекст раздачи, parsed_context; когда режиссёр недоступен ни в одном
слое — пусто/прочерк, не ломая вёрстку), для сериала — сводку сезонов (один
сезон, диапазон/список для многосезонного пака или «Спецвыпуски»); и
предпросмотр раскладки — целевые пути хардлинков этого источника. Обе части
SHALL относиться именно к активному источнику и SHALL обновляться при смене
выбора. Отрисовка блока (показ инфо и предпросмотра) MUST NOT создавать
хардлинки: раскладка создаётся только явным действием «Применить». Совпадение
целевых путей предпросмотра с результатом применения регулируется требованием
«Превью раскладки через единую логику именования» (web-ui).
Scenario: Инфо и предпросмотр относятся к активному источнику
- GIVEN в списке активен кандидат метабазы
- WHEN пользователь смотрит инфо-часть и предпросмотр раскладки
- THEN показаны тип, название, ориг. название, год (и сводка сезонов для сериала) именно этого источника и предпросмотр его целевых путей
Scenario: Просмотр блока не создаёт раскладку
- GIVEN экран ревью с показанным блоком выбора источника
- WHEN пользователь только просматривает инфо и предпросмотр, не нажимая «Применить»
- THEN хардлинки не создаются, файлы под
paths.movies/seriesне меняются
Scenario: Режиссёр показан, когда доступен
- GIVEN активный источник — подтверждённый матч, несущий режиссёра
- WHEN отображается инфо-часть выбранного источника
- THEN в ней показан режиссёр этого источника
- AND при отсутствии режиссёра во всех слоях место остаётся пустым (или прочерком), не ломая вёрстку
Scenario: Режиссёр берётся из контекста, когда матч его не даёт
- GIVEN активный источник без режиссёра в плане, но с режиссёром в
сохранённом контексте (
parsed_context) - WHEN отображается инфо-часть выбранного источника
- THEN в ней показан режиссёр из контекста (нижний слой разрешения)