v1.60.0: harden background editing and device state

This commit is contained in:
Matysh
2026-08-07 13:02:46 +03:00
parent 29fb9deb43
commit 3028122016
47 changed files with 2566 additions and 674 deletions
+20
View File
@@ -137,6 +137,26 @@ Lovelace **пересоздаёт элемент карточки** — выбр
из осевшей геометрии (`_bootSettled`), поэтому холодный бут по-прежнему платит
полный защитный цикл.
### 2.1. Возврат после долгого сна вкладки
Тёплый viewport решает пересоздание экземпляра, но после долгого background
браузер, HA chrome и websocket могут проснуться в разных кадрах. В этот момент
`ResizeObserver` способен выдать нулевой или промежуточный размер сцены. Такой
размер больше никогда не меняет `_view`.
Если вкладка была скрыта не меньше 15 секунд, обычный режим Просмотра включает
короткий `_resumeSettling`: содержимое сцены остаётся за её уже правильным
фоном, пока размер не станет ненулевым и спокойным. После этого сохранённые
центр и zoom пересчитываются по окончательной геометрии и открываются одним
кадром. Памятка `warmBoot` во время промежуточного кадра не обновляется.
Быстрое переключение вкладок, редакторы и киоск в этот путь не входят.
Толстые стены дополнительно имеют критические `fill`, `stroke`, opacity и
`fill-rule` как SVG presentation attributes. Поэтому даже промежуточный кадр
нового DOM-экземпляра не может получить браузерную заливку `black` до того,
как применятся стили компонента; CSS hooks при этом сохранены и по обычному
каскаду остаются сильнее presentation attributes.
## 3. Диалоги переживают пересоздание
В той же записи памятки лежит `dlg`: `{ kind, space, mode, data }`, где