Files
houseplan-card/dist/houseplan-assets.json
T
Claude 462b56453c fix: the authoritative adoption keeps its own task (#520)
The r1 diagnosis was wrong, and the measurement in the code review proved
it: removing the two declarations from `static properties` left the cold
start at 19 update cycles, 4 model builds and 4 config epochs, exactly the
numbers of the bug. Lit's forced first-update change does mark `_serverCfg`
changed, but at that moment the body and `_cfgEpochPreservedConfig` are both
null, `preserveGeometry` is true and the epoch does not move. The comment
above `static properties` now says that; the declaration still stays out,
because two owners of one reactivity is what #500 removed.

The real cause is the `await`. Before #500 everything from
`_adoptStructuralResponses` to the end of the load ran in one task: the
adopted bodies, `_adoptInitialSpace`, the viewport restore, `_loadOk`, and
the device seeding — whose `_syncNewDevices`/`_seedHiddenDevices` write the
config back — all landed in a single Lit update. #500 made the adoption an
async sequence, so the caller resumes one microtask later, after Lit has
already painted the adopted config; the seeding writes then arrive as a
second config epoch, a second model build and a second paint of a 60-room
house.

`GatedAdoptionInput` gains `afterAdopt`, the mirror of `beforeAdopt`: it
runs synchronously at the end of the sequence, before the promise resolves.
`_loadFromServer` moves the viewport restore, `_loadOk` and the device
rebuild into it — `_syncNewDevices` refuses to write before `_loadOk`, so
the order inside the hook matters — and the load tail now rebuilds devices
only when nothing was adopted. `_reloadConfigOnly` takes the same route.

Measured with the project's own runner, 7 samples per profile, base
`a44fbd37` against this tree (Chromium 152, sandbox):

  interaction  modelReadyMs 761.3 ≤ 950.56 (base 731.2)
               firstStableRenderMs 2567.2 ≤ 3000 (base 2542.7)
               longTask.maxSingleMs 690 ≤ 921 · cache.entries.cleanFloor 100
  isometric    modelReadyMs 1252.9 ≤ 1499.76 (base 1249.8)
               firstStableRenderMs 1378 ≤ 1610.16 (base 1341.8)

Boot diagnostics on both trees: 18 update cycles, 3 model builds, 3 config
epochs, with the same epoch trace — the candidate is no longer
distinguishable from the base.

Witnesses. `config-adoption.test.mjs` queues a microtask at the start of
the adoption and pins that `afterAdopt` runs before it — the probe fails the
moment the hook crosses an await; `config-adoption-ownership.test.mjs` pins
the wiring in the card and the hook's place in the sequence. Mutants
`adoption-tail-defers-caller-hook` (defers the hook by one microtask) and
`authoritative-load-seeds-devices-after-the-await` (drops the rebuild from
the hook) redden them.

The initial View graph grows 40 B gzip, so the #438 ceiling is recentred
300 300 → 300 400 with the usual dated note; measured 299 812 B keeps 588 B
above and 1 412 B below the band. The overall 301 066 B budget and the #367
headroom debt are untouched.

Issue: #520
User-Visible: no
2026-09-10 20:12:13 +03:00

315 lines
10 KiB
JSON

{
"schema": 1,
"fingerprint": "2e6f7d70c797ae4e865b10859c77cc3380a432272a975b8f35b51234ae3cfe62",
"entry": "houseplan-card.js",
"panelEntry": "houseplan-panel.js",
"initialViewFiles": [
"houseplan-assets/houseplan-card-BMuv6THL.js",
"houseplan-card.js"
],
"initialViewGzipBytes": 299812,
"initialPanelFiles": [
"houseplan-assets/houseplan-card-BMuv6THL.js",
"houseplan-card.js",
"houseplan-panel.js"
],
"initialPanelGzipBytes": 302118,
"initialPanelOnlyFiles": [
"houseplan-panel.js"
],
"initialPanelOnlyGzipBytes": 2306,
"lazyFiles": [
"houseplan-assets/backdrop-pick-DJt73xkJ.js",
"houseplan-assets/de-CnIkrYVa.js",
"houseplan-assets/editor-CzEoJoet.js",
"houseplan-assets/fr-D1gV1f-s.js",
"houseplan-assets/furniture-plan-art.generated-XOCt_Wns.js",
"houseplan-assets/guard-8MebpCtO.js",
"houseplan-assets/houseplan-editor-runtime-BR7ukTUP.js",
"houseplan-assets/houseplan-onboarding-runtime-DKBSTd7u.js",
"houseplan-assets/hp-zigbee-topology-overlay-BRoahbu2.js",
"houseplan-assets/iso-scene-render-hhlqgOTn.js",
"houseplan-assets/live-interaction-runtime-DCcaRZ3p.js",
"houseplan-assets/pdf-export-BqxOXzDP.js",
"houseplan-assets/summary-panel-runtime-loaded-QU6oGUjk.js",
"houseplan-assets/zigbee-topology-86ml1Wbm.js",
"houseplan-assets/zigbee-topology-runtime-BcEe0VIS.js"
],
"lazyGzipBytes": 418124,
"lazyEditorFiles": [
"houseplan-assets/backdrop-pick-DJt73xkJ.js",
"houseplan-assets/editor-CzEoJoet.js",
"houseplan-assets/furniture-plan-art.generated-XOCt_Wns.js",
"houseplan-assets/guard-8MebpCtO.js",
"houseplan-assets/houseplan-editor-runtime-BR7ukTUP.js",
"houseplan-assets/zigbee-topology-86ml1Wbm.js"
],
"lazyEditorGzipBytes": 205681,
"lazyOnboardingFiles": [
"houseplan-assets/backdrop-pick-DJt73xkJ.js",
"houseplan-assets/houseplan-onboarding-runtime-DKBSTd7u.js"
],
"lazyOnboardingGzipBytes": 14183,
"lazyLocaleFiles": [
"houseplan-assets/de-CnIkrYVa.js",
"houseplan-assets/fr-D1gV1f-s.js"
],
"lazyLocaleGzipBytes": 54855,
"lazyIsometricFiles": [
"houseplan-assets/guard-8MebpCtO.js",
"houseplan-assets/iso-scene-render-hhlqgOTn.js"
],
"lazyIsometricGzipBytes": 13456,
"lazyFurnitureArtFiles": [
"houseplan-assets/furniture-plan-art.generated-XOCt_Wns.js"
],
"lazyFurnitureArtGzipBytes": 10251,
"lazyPdfFiles": [
"houseplan-assets/furniture-plan-art.generated-XOCt_Wns.js",
"houseplan-assets/pdf-export-BqxOXzDP.js"
],
"lazyPdfGzipBytes": 120367,
"files": [
{
"path": "houseplan-assets/backdrop-pick-DJt73xkJ.js",
"sha256": "e5a0f92c77993da16eba0468de5f3f4c539e7910507c9b2abdfbba295d62ae97",
"rawBytes": 21134,
"gzipBytes": 7145,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-BMuv6THL.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/de-CnIkrYVa.js",
"sha256": "a3a7ba67f00c4e9bf041d6b45263a90324c7568e81f8b49bbbf3a47dbb31ae3a",
"rawBytes": 91441,
"gzipBytes": 27711,
"isEntry": false,
"imports": [],
"dynamicImports": []
},
{
"path": "houseplan-assets/editor-CzEoJoet.js",
"sha256": "ce96845e0bf4b3edc77ff7f3e60ef624c6ce7b28dd3bdef91689248938e68a82",
"rawBytes": 3832,
"gzipBytes": 1585,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-BMuv6THL.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/fr-D1gV1f-s.js",
"sha256": "bbb0b285746c475a1bb29ec6f3c66d913d0af9e6e9cdfe42ce73177bef7f8c25",
"rawBytes": 93719,
"gzipBytes": 27144,
"isEntry": false,
"imports": [],
"dynamicImports": []
},
{
"path": "houseplan-assets/furniture-plan-art.generated-XOCt_Wns.js",
"sha256": "b95da605686e12dbfa3273052fa16cb09d9938e2333882841a94dd90e999d651",
"rawBytes": 33655,
"gzipBytes": 10251,
"isEntry": false,
"imports": [],
"dynamicImports": []
},
{
"path": "houseplan-assets/guard-8MebpCtO.js",
"sha256": "b269052d60c81b167dc53848c25ce8a5fe1333869313cc045e2b87b273523a77",
"rawBytes": 518,
"gzipBytes": 369,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-BMuv6THL.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/houseplan-card-BMuv6THL.js",
"sha256": "7f512c2354bb41fc5a390333483dd6e4fa154ec4d92736982431e5bf44a0a096",
"rawBytes": 1078601,
"gzipBytes": 299008,
"isEntry": false,
"imports": [],
"dynamicImports": [
"houseplan-assets/de-CnIkrYVa.js",
"houseplan-assets/editor-CzEoJoet.js",
"houseplan-assets/fr-D1gV1f-s.js",
"houseplan-assets/furniture-plan-art.generated-XOCt_Wns.js",
"houseplan-assets/houseplan-editor-runtime-BR7ukTUP.js",
"houseplan-assets/houseplan-onboarding-runtime-DKBSTd7u.js",
"houseplan-assets/hp-zigbee-topology-overlay-BRoahbu2.js",
"houseplan-assets/iso-scene-render-hhlqgOTn.js",
"houseplan-assets/live-interaction-runtime-DCcaRZ3p.js",
"houseplan-assets/pdf-export-BqxOXzDP.js",
"houseplan-assets/summary-panel-runtime-loaded-QU6oGUjk.js"
]
},
{
"path": "houseplan-assets/houseplan-editor-runtime-BR7ukTUP.js",
"sha256": "50bb70879e251179dbb7203a562324da9248fc63eb4f65a917bce6202542ea18",
"rawBytes": 672160,
"gzipBytes": 178900,
"isEntry": false,
"imports": [
"houseplan-assets/backdrop-pick-DJt73xkJ.js",
"houseplan-assets/furniture-plan-art.generated-XOCt_Wns.js",
"houseplan-assets/guard-8MebpCtO.js",
"houseplan-assets/houseplan-card-BMuv6THL.js",
"houseplan-assets/zigbee-topology-86ml1Wbm.js"
],
"dynamicImports": [
"houseplan-assets/zigbee-topology-runtime-BcEe0VIS.js"
]
},
{
"path": "houseplan-assets/houseplan-onboarding-runtime-DKBSTd7u.js",
"sha256": "6f45e5b18ac7ab279e2548b7c9e70da223c8bd0564c688e35a223a529a6762b4",
"rawBytes": 28287,
"gzipBytes": 7038,
"isEntry": false,
"imports": [
"houseplan-assets/backdrop-pick-DJt73xkJ.js",
"houseplan-assets/houseplan-card-BMuv6THL.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/hp-zigbee-topology-overlay-BRoahbu2.js",
"sha256": "b6d24c41180b61cf78235838b9a4d9cf64f7a0e94c0965837659da632c989349",
"rawBytes": 11034,
"gzipBytes": 3728,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-BMuv6THL.js",
"houseplan-assets/zigbee-topology-86ml1Wbm.js",
"houseplan-assets/zigbee-topology-runtime-BcEe0VIS.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/iso-scene-render-hhlqgOTn.js",
"sha256": "3648b50e2c7db67a871a602e061cfb27c0c57d49e48fb165796b2040302b4722",
"rawBytes": 38562,
"gzipBytes": 13087,
"isEntry": false,
"imports": [
"houseplan-assets/guard-8MebpCtO.js",
"houseplan-assets/houseplan-card-BMuv6THL.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/live-interaction-runtime-DCcaRZ3p.js",
"sha256": "74f360b102709340269d1425e162b1b3b48733ded14b3e9c96392d112e4a19fa",
"rawBytes": 5196,
"gzipBytes": 2128,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-BMuv6THL.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/pdf-export-BqxOXzDP.js",
"sha256": "011bc6e1ee4182634c9f00a0063dc55a7ad38eb497381d0a2cea92153542ef76",
"rawBytes": 237254,
"gzipBytes": 110116,
"isEntry": false,
"imports": [
"houseplan-assets/furniture-plan-art.generated-XOCt_Wns.js",
"houseplan-assets/houseplan-card-BMuv6THL.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/summary-panel-editor-CvUVaV6M.js",
"sha256": "372ebeaa2b6b6b1a36fed8d46a66d970361f431df794ba8d4f735bd3b7c6de3c",
"rawBytes": 14824,
"gzipBytes": 3402,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-BMuv6THL.js",
"houseplan-assets/summary-panel-runtime-loaded-QU6oGUjk.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/summary-panel-metrics-DD7ukKTj.js",
"sha256": "a8cff52183abd5db8a15052d82d02e70755dbaf4d60d2d8b3d5afd71c1f7d75d",
"rawBytes": 2610,
"gzipBytes": 1307,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-BMuv6THL.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/summary-panel-runtime-loaded-QU6oGUjk.js",
"sha256": "032a1172e860092afe2b6f17df776166d1cebcec8c4795fd4e8004b95609066a",
"rawBytes": 72272,
"gzipBytes": 19728,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-BMuv6THL.js"
],
"dynamicImports": [
"houseplan-assets/summary-panel-editor-CvUVaV6M.js",
"houseplan-assets/summary-panel-metrics-DD7ukKTj.js"
]
},
{
"path": "houseplan-assets/zigbee-topology-86ml1Wbm.js",
"sha256": "199b7bb041db57b49913da278212ac85c4fe9f55c25f1ed50252ab3182f6217a",
"rawBytes": 18961,
"gzipBytes": 7431,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-BMuv6THL.js"
],
"dynamicImports": []
},
{
"path": "houseplan-assets/zigbee-topology-runtime-BcEe0VIS.js",
"sha256": "6e650560e552e1092dd2fb4c99cf578fcfe03da4cd1b1f94e8eff498b8b19792",
"rawBytes": 3941,
"gzipBytes": 1763,
"isEntry": false,
"imports": [
"houseplan-assets/houseplan-card-BMuv6THL.js",
"houseplan-assets/zigbee-topology-86ml1Wbm.js"
],
"dynamicImports": []
},
{
"path": "houseplan-card.js",
"sha256": "52772eada719ce09fa86787e017c6f0ffa28645d391365694d81f53fbac909eb",
"rawBytes": 1205,
"gzipBytes": 804,
"isEntry": true,
"imports": [
"houseplan-assets/houseplan-card-BMuv6THL.js"
],
"dynamicImports": []
},
{
"path": "houseplan-panel.js",
"sha256": "e97a154275ce08e79a0bd8622911985749e0b1ad46e8ee7af5955a1cf2458e32",
"rawBytes": 6124,
"gzipBytes": 2306,
"isEntry": true,
"imports": [
"houseplan-card.js"
],
"dynamicImports": []
}
]
}