From 44aa6968f751fd9f2ae2f3a2404ec0765b287ca5 Mon Sep 17 00:00:00 2001 From: Codex Date: Sun, 30 Aug 2026 13:48:10 +0300 Subject: [PATCH] docs: #44 spec revision 4 per SPEC-REVIEW-44-r2 User-Visible: no Issue: #44 --- docs/specs/044-filter-grouping-policy.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/specs/044-filter-grouping-policy.md b/docs/specs/044-filter-grouping-policy.md index 1cf385af..e502406f 100644 --- a/docs/specs/044-filter-grouping-policy.md +++ b/docs/specs/044-filter-grouping-policy.md @@ -3,14 +3,14 @@ - Issue: https://github.com/Matysh/houseplan-card/issues/44 - Приоритет: P2, tech-debt; полный трек (discovery/UI/settings/i18n/tests — решение аналитики 2026-08-15) -- Ревизия: 3 (2026-08-30) — по SPEC-REVIEW-44-r1 (H1, H2); policy v1 принята +- Ревизия: 4 (2026-08-30) — по SPEC-REVIEW-44-r2 (M1 + Low); policy v1 принята владельцем, конкретизация под инбокс v1.69 - Связано: device inbox #29, field registry/манифест #33 (паспорта `allow-extra` обоих ключей уже выданы), персист-паттерн #377 ## Сценарий -Хозяин плана открывает «Устройства» и на вкладке «Доступные» видит новый +Хозяин плана открывает «Устройства» и на вкладке «Доступны» видит новый раскрываемый блок «Фильтры обнаружения». Там два честных элемента: тумблер «Объединять светильники комнаты в группу» (включён по умолчанию — как продукт и вёл себя всегда) и список «Исключённые интеграции» с рекомендованным @@ -46,7 +46,7 @@ discovery `devices.ts:1491`). ### 1. Блок «Фильтры обнаружения» в инбоксе -- Раскрываемая секция внизу вкладки «Доступные» диалога «Устройства» +- Раскрываемая секция внизу вкладки «Доступны» диалога «Устройства» (editor-runtime; холодный View не задет — весь UI в runtime, класс #357). - **Тумблер группировки**: отражает `settings.group_lights` (unset→вкл). Выключение НЕ удаляет существующие маркеры (в т.ч. group-маркеры) — меняет @@ -167,8 +167,9 @@ issue требует видимости и policy, не пере-схемиза - Пересчёт превью на большом registry — переиспользуется кэшируемый buildDevices; расчёт по явному действию (открытие секции/изменение), не на каждый тик. -- Реason-вкладка «Скрытые» получает новый класс записей — объём ограничен - существующим механизмом вкладки; смок проверяет отсутствие дублей. +- Текст причины обогащается плейсхолдером на уже существующей вкладке + «Доступны» — новых классов записей не появляется; смок проверяет + отсутствие дублей. - Гонка вкладок — штатный conflict #340. - Перевод roomClimateMap на резолвер (H2) меняет климат ТОЛЬКО при заданном пользователем ключе — default-путь передаёт тот же продуктовый список @@ -193,9 +194,10 @@ issue требует видимости и policy, не пере-схемиза ## Принятые предположения -- Размещение — вкладка «Доступные» (фильтры определяют её содержимое); +- Размещение — вкладка «Доступны» (фильтры определяют её содержимое); если ревью ТЗ предпочтёт отдельную вкладку/шестерёнку — правится без смены механики. - `[]` (пустой список) — валидное значение «ничего не исключать», отличное от отсутствия ключа; так уже работает код (`list ? new Set(list) : EXCLUDED_DOMAINS`). -- Причина показывается на «Скрытых», НЕ в отдельной новой вкладке. +- Причина остаётся на «Доступны», где уже живёт (#29); ни переноса + категории, ни новой вкладки.