From 13a0bfdf874eef0c2fc6740b999adbb02e525173 Mon Sep 17 00:00:00 2001 From: Sergey Matyunin Date: Wed, 9 Sep 2026 01:38:53 +0300 Subject: [PATCH] docs: define summary panel hardening contract (#493) Issue: #493 User-Visible: no --- docs/specs/493-summary-panel-hardening.md | 481 ++++++++++++++++++++++ docs/specs/README.md | 1 + 2 files changed, 482 insertions(+) create mode 100644 docs/specs/493-summary-panel-hardening.md diff --git a/docs/specs/493-summary-panel-hardening.md b/docs/specs/493-summary-panel-hardening.md new file mode 100644 index 00000000..19ebcb9d --- /dev/null +++ b/docs/specs/493-summary-panel-hardening.md @@ -0,0 +1,481 @@ +# #493 — Ограниченный picker и надёжный lifecycle сводной панели + +Issue: [#493](https://github.com/Matysh/houseplan-card/issues/493). +Связанные задачи: [#437](https://github.com/Matysh/houseplan-card/issues/437), +[#490](https://github.com/Matysh/houseplan-card/issues/490). +Ветка: `issue/493-summary-panel-hardening`; база спецификации: +`dev@71aeb860`. +Редакция: 2026-09-09. Полный трек, P2/bug. +Канонический статус — метка issue, не заголовок этого документа. + +## 1. Сценарий + +Администратор дома открывает настройки сводной панели в карточке House Plan, +где уже может быть до 200 показателей и тысячи доступных HA-сущностей. Он +выбирает источник показателя, меняет локальный размер значков/текста, повторно +открывает или пересоздаёт карточку, оптимизирует/копирует/импортирует план. +Домочадец либо пользователь киоска меняет только локальный показ и размеры. +На телефоне любой доступный ему вариант формы должен помещаться в экран. + +Это продолжение утверждённого исключения #437 из `docs/SCOPE.md`: надёжный +read-only overview (J1) и сохранение настройки дома при его изменении (J6), а +не расширение House Plan до произвольного dashboard framework. + +## 2. Что человек увидит до и после + +**До:** большая форма может на секунды зависать, потому что полный список +сущностей повторяется в каждой строке; повторный `setConfig` визуально сбрасывает +сохранённые размеры; после ухода со страницы или смены пользователя может +остаться старый черновик; на узком русском интерфейсе проценты и действия +обрезаются; Optimize имеет отличающийся серверный контракт сохранения панели. + +**После:** у каждой строки остаётся понятный выбор источника, но открыт и +отрисован только один ограниченный поисковый список; локальные размеры не +скачут; новая сессия/пользователь/набор прав не наследует чужой диалог; форма +полностью доступна на узком экране; все штатные способы изменения плана +сохраняют либо явно заменяют панель по одной документированной матрице. + +## 3. Проблема и подтверждённые причины + +Аудит и повторное чтение текущего `dev` подтверждают пять независимых пробелов: + +1. `summary-panel-editor.ts` сортирует весь `hass.states` при каждом render и + создаёт полный набор `