Implement live device add/delete component and app actions

Fix add component from palette in live mode: resolve <app> element
as comp_id 0, fix type_id lookup to use type_name_map, set type_name
on newly added SoxComponent, sync device values into DOM after add,
write meta position back to device, and subscribe new component to COV.

Fix delete component in live mode: clean up subscriptions for deleted
component and all its descendants.

Add tree root context menu with device app actions (save, hibernate,
quit, restart, reboot) in live mode. Device save clears dirty state.

Clean up connection lost handling to do a full disconnect.
Fix slot registry to copy base slots and renumber IDs correctly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-09-19 16:30:42 +03:00
co-authored by Claude Opus 4.6
parent 9a483a0b0e
commit 2530bbd92c
7 changed files with 102 additions and 19 deletions
+1
View File
@@ -652,6 +652,7 @@ class SoxClient:
comp.name = name
comp.parent = parent_id
comp.children = []
comp.type_name = self._resolve_type_name(kit_id, type_id_val)
self.cache_add(comp)
parent = self.cache_get(parent_id)