Files
houseplan-card/docs/specs/044-filter-grouping-policy.md
T
Matysh 112c260314
Validate / hacs (push) Failing after 12s
Validate / hassfest (push) Failing after 13s
Validate / frontend (push) Successful in 3m2s
Validate / golden (push) Failing after 51s
Validate / backend (push) Failing after 6m50s
Validate / smoke (push) Failing after 13m44s
Validate / performance (push) Failing after 24m13s
Release v1.61.0-beta.1
2026-08-09 21:51:33 +03:00

3.1 KiB

ТЗ #44 — Явные фильтры и группировка устройств

Цель

Убрать скрытые настройки, влияющие на discovery. Каждый ключ либо получает поддерживаемый advanced UI и documented default, либо мигрирует в фиксированное product rule.

Решение v1

Оба текущих ключа остаются поддерживаемыми и становятся видимыми в Advanced разделе inbox:

group_lights

  • default true;
  • label: «Объединять несколько светильников комнаты»;
  • preview показывает, какие bindings будут группой/отдельными marker;
  • переключение не применяется до Save и не удаляет explicit markers;
  • existing light-group marker сохраняет lifecycle; конфликт bindings preview.

exclude_integrations

  • default — текущий EXCLUDED_DOMAINS/product list;
  • UI — searchable multi-select интеграций, реально присутствующих в registry, плюс reset to recommended defaults;
  • изменение влияет только на automatic candidates/seed, не скрывает explicit live marker и не удаляет tombstone;
  • reason в inbox — «Исключена интеграция X».

Название storage key exclude_integrations сохраняется для compatibility; семантика и default фиксируются в registry #33.

Исследование перед включением Save

Локальный config-audit считает значения/отклонения от defaults без вывода ids. Synthetic fixtures моделируют реальные классы: group lights, parent device, service/bridge, explicit override, tombstone. Если audit показывает, что ключ невозможно объяснить без вредного поведения, owner может отдельным решением перевести его в fixed rule до реализации UI.

UX/transaction

Preview diff: новые/скрытые/grouped candidates counts и конкретный список в локальной session. Apply пишет settings один раз, rebuild devices и создаёт named undo/config snapshot. Cancel no-op. Два клиента используют config rev.

Приёмка

  • ни один runtime discovery key не скрыт от пользователя/registry;
  • defaults совпадают frontend, backend, docs и fixtures;
  • explicit marker никогда не исчезает из-за filter change;
  • preview объясняет каждую изменившуюся binding;
  • old config даёт прежний result до user action.