mirror of
https://github.com/Matysh/houseplan-card
synced 2026-07-31 16:38:31 +00:00
Found on the owner's install: the image lands in /config/houseplan/plans, the space keeps plan_url=null, the plan never shows and re-saving does not help. _saveSpaceDialog held a reference to the space object across the await that uploads the file. _reloadConfigOnly() — which runs on every houseplan_config_updated event — REPLACES _serverCfg, so that reference became an orphan: plan_url, aspect, title and every display setting were written into a detached object while the save shipped the untouched config. In 'create' mode the whole new space was lost the same way. - upload first, then touch the config; no reference is held across an await. - _saveConfigNow() sets _cfgWriting like the debounced writer, so a revision arriving mid-save defers its reload instead of replacing the config (audit L2 extended to this path). - demo/smoke_plan_upload_race.mjs: on v1.44.7 the sent config still carries the OLD plan_url and the created space is missing; passes here. The demo's config/get now returns a fresh object, as a real server does — returning the same reference is what hid this class of bug from the smoke layer. - DEVELOPMENT.md: the deploy target is custom_components/houseplan/frontend/, and deploy verification must go over HTTP. A copy placed next to __init__.py is served by nobody — that cost two deployments today. - docs: CHANGELOG.md + CHANGELOG.ru.md + TESTING.md + STATUS.md.
21 lines
456 B
JSON
Executable File
21 lines
456 B
JSON
Executable File
{
|
|
"domain": "houseplan",
|
|
"name": "House Plan",
|
|
"codeowners": [
|
|
"@Matysh"
|
|
],
|
|
"config_flow": true,
|
|
"dependencies": [
|
|
"http",
|
|
"frontend",
|
|
"websocket_api"
|
|
],
|
|
"documentation": "https://github.com/Matysh/houseplan-card",
|
|
"integration_type": "service",
|
|
"iot_class": "local_push",
|
|
"issue_tracker": "https://github.com/Matysh/houseplan-card/issues",
|
|
"requirements": [],
|
|
"single_config_entry": true,
|
|
"version": "1.44.8"
|
|
}
|