Symptom

When a user added a DataPoint.Graph node as a child of a DataPoint, the graph editor opened showing “No data sources configured” and the user had to manually add the parent DataPoint as a source. The auto-linking only happened asynchronously on the server after creation.

Root cause

ScreenCore.executeCommand() created every child node with default metadata from type.meta(). For KrillApp.DataPoint.Graph this produced a bare GraphMetaData() with sources = emptyList(). The server-side ServerGraphProcessor.process() fills in sources on first CREATED-state fire, but the SSE round-trip means the UI briefly shows the unconfigured state — and for local DataPoints (where the server won’t process at all) the auto-link never fires.

Fix

In ScreenCore.executeCommand(), detect when KrillApp.DataPoint.Graph is being created as a child of a KrillApp.DataPoint node and pre-populate GraphMetaData.sources with NodeIdentity(n.id, n.host) before sending the node to the server. The server-side guard (if (meta.sources.isNotEmpty()) return true) skips the redundant update.

Prevention