From 3d3448d050737fda34de02a283a23541a219cc61 Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Fri, 3 Jul 2026 09:57:13 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D1=82=D0=BE=D1=87=D0=BD=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=B4=D0=B5=D1=82=D0=B0=D0=BB=D0=B8=20=D1=80=D0=B5=D0=B0=D0=BB?= =?UTF-8?q?=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D0=B8=20review-source-selection?= =?UTF-8?q?=20=D0=BF=D0=BE=20=D0=B8=D1=82=D0=BE=D0=B3=D0=B0=D0=BC=20=D1=80?= =?UTF-8?q?=D0=B0=D0=B7=D0=B1=D0=BE=D1=80=D0=B0=20(openspec)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Зафиксировал в design/tasks: []SourceOption в ReviewData (нейронка первой), общая деривация overridesForSource, предпросмотр всех источников на сервере с раскрытием по клику, секция «Раскладка» остаётся отдельной для активного источника. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../changes/review-source-selection/design.md | 16 ++++++++---- .../changes/review-source-selection/tasks.md | 25 ++++++++++++------- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/openspec/changes/review-source-selection/design.md b/openspec/changes/review-source-selection/design.md index 1ea50d1..62223fd 100644 --- a/openspec/changes/review-source-selection/design.md +++ b/openspec/changes/review-source-selection/design.md @@ -119,11 +119,17 @@ ### 2. Клиент только показывает предпосчитанное, не считает пути -Превью всех известных источников кладём в страницу (data-блоки/скрытые -секции), клиентский vanilla-JS лишь переключает видимость по выбору строки. -Никакого доменного пересчёта на клиенте — соблюдаем требование `web-ui`. -Фактическая смена активного источника (пиннинг) — по явному действию формой -(раундтрип), как сейчас. +Превью всех источников предпосчитываем на сервере и вкладываем в страницу +(данных немного — кандидатов мало, порога/ленивой загрузки не вводим). +Клиент лишь раскрывает/скрывает предпосчитанный блок строки по клику +(нативный `
` или минимальный vanilla-JS) — никакого доменного +пересчёта на клиенте, соблюдаем требование `web-ui`. + +UI-модель: секция **«Раскладка» остаётся отдельной** и показывает пути +**активного** источника (как сейчас); раскрываемое инлайн-превью в строке — +для сравнения **неактивных** источников до выбора. Фактическая смена +активного источника (пиннинг) — по явному действию формой (раундтрип), как +сейчас. ### 3. Нейронка — синтетическая строка, а не особый режим diff --git a/openspec/changes/review-source-selection/tasks.md b/openspec/changes/review-source-selection/tasks.md index 3eb3bda..932cf92 100644 --- a/openspec/changes/review-source-selection/tasks.md +++ b/openspec/changes/review-source-selection/tasks.md @@ -36,17 +36,24 @@ ## 3. Страница ревью: единый список и предпросмотр (httpapi + шаблон) -- [ ] 3.1 Переработать блок «Источник совпадения» в единый список строк: - нейронка + кандидаты баз + ручной ввод; ровно один активный -- [ ] 3.2 Рендер строк с предпросмотром полей (тип/название/год + пустое - место под режиссёра) и целевых путей для каждого источника -- [ ] 3.3 Клиентский vanilla-JS: переключение видимости предпосчитанного - превью по выбору строки; без доменного пересчёта на клиенте -- [ ] 3.4 Действия строк формами-раундтрипами: выбрать кандидата +- [ ] 3.1 Переработать блок «Источник совпадения» в единый список строк из + `[]SourceOption`: нейронка (первой) + кандидаты баз + ручной ввод; + ровно один активный, у активного — матч-ссылка (как сейчас) +- [ ] 3.2 Строка источника: шапка (провайдер/название/год + маркер активного + + кнопка «выбрать») и **раскрываемый по клику** блок предпросмотра — + поля (тип/название/год + пустое место под режиссёра) и целевые пути; + данные всех источников предпосчитаны сервером и вложены в страницу +- [ ] 3.3 Секцию «Раскладка» оставить отдельной — показывает пути **активного** + источника (как сейчас); инлайн-превью в строках — только для сравнения + неактивных до выбора +- [ ] 3.4 Клиентский vanilla-JS: раскрытие/скрытие предпосчитанного превью + строки по клику (нативный `
` или минимальный JS); без + доменного пересчёта на клиенте +- [ ] 3.5 Действия строк формами-раундтрипами: выбрать кандидата (`ChooseCandidate`), снять в пользу нейронки (`ClearProvider`), добавить вручную; сохранить прежние действия ревью -- [ ] 3.5 Убедиться, что матч-ссылка и заголовок корректны для ручного - кандидата с пустыми title/year +- [ ] 3.6 Убедиться, что матч-ссылка и заголовок строки корректны для ручного + кандидата с пустыми title/year (деградация до «провайдер + id») ## 4. Проверка и приёмка