docs: #44 spec revision 4 per SPEC-REVIEW-44-r2

User-Visible: no
Issue: #44
This commit is contained in:
Codex
2026-08-30 13:48:10 +03:00
parent 6e6747dc09
commit 44aa6968f7
+9 -7
View File
@@ -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); ни переноса
категории, ни новой вкладки.