fix: a cold View resolves taps without the lazy editor runtime (#357)
Field report from the dacha: the wall switch "Гостиная основной свет", whose controls name three virtual light sources, periodically ignored taps — no toggle, no glow — until its settings dialog was opened once with no changes. "Periodically" was every fresh tab: the #337 lazy split left _toggleIntent (and the confirm-line helpers) on the card as stubs delegating into the editor runtime, so a plain View tap on a cold tab threw `Houseplan editor runtime is not loaded` synchronously inside the click handler. Opening any editor surface loaded the runtime and "healed" the tab for its lifetime. The View card now owns toggle resolution: _toggleIntent calls resolveToggleIntent directly (device-toggle.ts was already in the initial graph; the card owns _planHass/_fullRegistryHass/_virtualLights), and _toggleStateText/_toggleConfirmationStateText/_toggleConfirmationLines moved with it. The editor runtime delegates back to the host — one source of truth, editor consumers (dialog preview, hint lines) unchanged. Every product smoke preloads the runtime, so none of them could see this class of regression. The new smoke_cold_view_toggle mirrors the field config on a genuinely cold tab: a real switch drives three passive virtual lamps with one tap, a controlled lamp drives its switch back, tap_confirm renders its state lines and confirms, and the editor chunk is never requested. A registry mutant restores the old delegation and is killed by that smoke. Issue: #357 User-Visible: yes
@@ -2,6 +2,13 @@
|
||||
|
||||
## Unreleased
|
||||
|
||||
- Tapping a device on a freshly opened page works again without first
|
||||
visiting any editor screen. A wall switch controlling virtual light sources
|
||||
(and every other tap-to-toggle device) silently ignored the tap on a cold
|
||||
tab until the device settings were opened once — the View card now resolves
|
||||
the tap entirely on its own, without the lazy editor code
|
||||
([#357](https://github.com/Matysh/houseplan-card/issues/357)).
|
||||
|
||||
## v1.69.0-beta.2 — 2026-08-28
|
||||
|
||||
- The Background furniture library now has 56 top-view symbols and a compact
|
||||
|
||||
@@ -8,6 +8,13 @@
|
||||
|
||||
## Не выпущено
|
||||
|
||||
- Нажатие на устройство на только что открытой странице снова работает без
|
||||
предварительного захода в какой-либо редактор. Выключатель, управляющий
|
||||
виртуальными источниками света (и любое другое устройство с тап-переключением),
|
||||
молча игнорировал нажатие в холодной вкладке, пока настройки устройства не
|
||||
откроют один раз — теперь View-карточка разрешает нажатие сама, без ленивого
|
||||
кода редактора ([#357](https://github.com/Matysh/houseplan-card/issues/357)).
|
||||
|
||||
## v1.69.0-beta.2 — 2026-08-28
|
||||
|
||||
- В библиотеке мебели редактора подложки теперь 56 видов сверху и компактный
|
||||
|
||||
|
Before Width: | Height: | Size: 192 KiB After Width: | Height: | Size: 198 KiB |
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 336 KiB After Width: | Height: | Size: 343 KiB |
|
Before Width: | Height: | Size: 327 KiB After Width: | Height: | Size: 334 KiB |
|
Before Width: | Height: | Size: 289 KiB After Width: | Height: | Size: 319 KiB |
|
Before Width: | Height: | Size: 291 KiB After Width: | Height: | Size: 317 KiB |
|
Before Width: | Height: | Size: 290 KiB After Width: | Height: | Size: 296 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 141 KiB |
@@ -3,7 +3,7 @@
|
||||
"fixture": "synthetic-only",
|
||||
"chromium": "151.0.7922.34",
|
||||
"oxipng": null,
|
||||
"sourceFingerprint": "232b156a56885d74f52e69608111212dbfae2a01ee5b1e8f39de695c5b9c70d1",
|
||||
"sourceFingerprint": "5ccd1afa75c0554258872575cd2681f76563983f762347af5390ffddec00ce41",
|
||||
"captureScriptSha256": "fe76c8e2e27501e9a377d7aa15dd6cba6a018d55c07deb602dbee097f0a0a5ba",
|
||||
"command": "npm run build && node demo/docs/capture.mjs",
|
||||
"scenarios": {
|
||||
@@ -15,8 +15,8 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "232b156a56885d74f52e69608111212dbfae2a01ee5b1e8f39de695c5b9c70d1",
|
||||
"imageSha256": "36223106c073f07d8cc3ecf8eaab37192ebb2687daba65c5c21047d0b7890de0"
|
||||
"sourceSha256": "5ccd1afa75c0554258872575cd2681f76563983f762347af5390ffddec00ce41",
|
||||
"imageSha256": "0ca982495a7749907c48ebbddfd089c54385a4347f79f64e94af2c5a8d5c03eb"
|
||||
},
|
||||
"view-touch": {
|
||||
"file": "02-view-touch.png",
|
||||
@@ -26,8 +26,8 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "232b156a56885d74f52e69608111212dbfae2a01ee5b1e8f39de695c5b9c70d1",
|
||||
"imageSha256": "a4aa3af48578ee41594a9b1a6e98b4d39f3324a949a9fd9e63d5854576d5db85"
|
||||
"sourceSha256": "5ccd1afa75c0554258872575cd2681f76563983f762347af5390ffddec00ce41",
|
||||
"imageSha256": "3be239a5a494f6776540a9c0049694ee6f9d2ba927c8bcb4b26ee5a69a228a7d"
|
||||
},
|
||||
"space-create": {
|
||||
"file": "03-space-create.png",
|
||||
@@ -37,8 +37,8 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "232b156a56885d74f52e69608111212dbfae2a01ee5b1e8f39de695c5b9c70d1",
|
||||
"imageSha256": "0dc024726327f60f4a9ceaf3044381691f81f1090af81d1812e870f22d9343ba"
|
||||
"sourceSha256": "5ccd1afa75c0554258872575cd2681f76563983f762347af5390ffddec00ce41",
|
||||
"imageSha256": "a55b463055a565892ca139014e314a8f63fb5301c87fff2e48d7e69210fe9b6c"
|
||||
},
|
||||
"room-contour-close": {
|
||||
"file": "04-room-contour-close.png",
|
||||
@@ -48,8 +48,8 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "232b156a56885d74f52e69608111212dbfae2a01ee5b1e8f39de695c5b9c70d1",
|
||||
"imageSha256": "44cfaa95bd51e2cd628400e28db0ad8b2f0cd904385845bd402494f3f5c0d93c"
|
||||
"sourceSha256": "5ccd1afa75c0554258872575cd2681f76563983f762347af5390ffddec00ce41",
|
||||
"imageSha256": "dfad9a27371cfa397a3fd8dce7005f42d24649743f5322105ee894067d3a9f16"
|
||||
},
|
||||
"plan-context-tray": {
|
||||
"file": "05-plan-context-tray.png",
|
||||
@@ -59,8 +59,8 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "232b156a56885d74f52e69608111212dbfae2a01ee5b1e8f39de695c5b9c70d1",
|
||||
"imageSha256": "e0662429b423fb74151b583dcc2c8635b001b637d03bbf7a6b16aec46399c3f8"
|
||||
"sourceSha256": "5ccd1afa75c0554258872575cd2681f76563983f762347af5390ffddec00ce41",
|
||||
"imageSha256": "b75f348c632296da5c2fc142d53df613f757e1516acac315be50f5b4557729cc"
|
||||
},
|
||||
"device-editor": {
|
||||
"file": "06-device-editor.png",
|
||||
@@ -70,8 +70,8 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "232b156a56885d74f52e69608111212dbfae2a01ee5b1e8f39de695c5b9c70d1",
|
||||
"imageSha256": "d0ffd31ce80bfde21ab75da356a5fc1af38246f2b301030880320620c228d89d"
|
||||
"sourceSha256": "5ccd1afa75c0554258872575cd2681f76563983f762347af5390ffddec00ce41",
|
||||
"imageSha256": "6b9cd281450e7782cff292f11efc58d227bedd0df86afc3be987feb2edec9dc3"
|
||||
},
|
||||
"device-display-preview": {
|
||||
"file": "06-device-display-preview.png",
|
||||
@@ -81,8 +81,8 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "232b156a56885d74f52e69608111212dbfae2a01ee5b1e8f39de695c5b9c70d1",
|
||||
"imageSha256": "2cdabae1f89c3286e4fac0ce30f757ee1690b707ab8a5488748b7cd420626160"
|
||||
"sourceSha256": "5ccd1afa75c0554258872575cd2681f76563983f762347af5390ffddec00ce41",
|
||||
"imageSha256": "6f628abe6b89d7c4b352e6d73ac0b126526f6fdba5927bb774c5b884e484ca19"
|
||||
},
|
||||
"background-editor": {
|
||||
"file": "07-background-editor.png",
|
||||
@@ -92,8 +92,8 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "232b156a56885d74f52e69608111212dbfae2a01ee5b1e8f39de695c5b9c70d1",
|
||||
"imageSha256": "30147bb00a90eea7136b4cee30995f6e6a9217b5132f3e8d3ad7471413b1af8a"
|
||||
"sourceSha256": "5ccd1afa75c0554258872575cd2681f76563983f762347af5390ffddec00ce41",
|
||||
"imageSha256": "a1d1a905f1410f73231d2ea5d1dfbd8ae79c2fe8b0a79cff87ebb977ac7a3103"
|
||||
},
|
||||
"room-card": {
|
||||
"file": "08-room-card.png",
|
||||
@@ -103,8 +103,8 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "232b156a56885d74f52e69608111212dbfae2a01ee5b1e8f39de695c5b9c70d1",
|
||||
"imageSha256": "029a3e69ec647a8a370d99e6bb7f9225833c526739076022f6b52ba54bff30ea"
|
||||
"sourceSha256": "5ccd1afa75c0554258872575cd2681f76563983f762347af5390ffddec00ce41",
|
||||
"imageSha256": "48a5685039a5e0de2a28190d857b193c86e2e63606e3c7a8c40fc9d2b190da4e"
|
||||
},
|
||||
"device-info": {
|
||||
"file": "09-device-info.png",
|
||||
@@ -114,8 +114,8 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "232b156a56885d74f52e69608111212dbfae2a01ee5b1e8f39de695c5b9c70d1",
|
||||
"imageSha256": "dd492f53150b7149085daada5cce9eeae9bde9e7ea1d86679a54b3041f72f517"
|
||||
"sourceSha256": "5ccd1afa75c0554258872575cd2681f76563983f762347af5390ffddec00ce41",
|
||||
"imageSha256": "29a342811aaedaebc54ba337792d60cb454a7cf4c3063b210f6c4bafe0a4d87b"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||