The top-level Executor and Trigger base-node settings and chip views rendered as completely blank white screens. The tab bar and header appeared but the content area was empty.
NodeFace’s when (n.type) block in NodeSummaryAndEditor.kt had no case for KrillApp.Executor or KrillApp.Trigger. Both fell through to else -> {}, which rendered nothing. Every concrete child type (e.g. Executor.Lambda, Trigger.HighThreshold) had its own case and rendered correctly; only the abstract parent containers were missed.
KrillApp.Executor and KrillApp.Trigger cases to NodeFace.TitledChip(n) — the standard scaffold already handles any node type generically (icon + name + shortDescription from the JSON resource).EDIT/VIEW (settings) view: renders a new private BaseNodeEmptyState(node) composable — centered icon + bodyMedium text “Select a specific [Executor |
Trigger] node to configure”. |
When adding a new sealed KrillApp sub-hierarchy (or promoting an existing abstract container to appear in the node catalog), ensure a when branch exists in NodeFace for the container type itself, not just its leaf children. The NodeCatalogScreenshots screenshot catalog already iterates over KrillApp.Executor and KrillApp.Trigger — running ./gradlew recordRoborazziDesktop would visually confirm non-blank renders before and after. Consider adding a CI check that fails the catalog run on a near-zero-byte settings PNG.