Symptom

Calculation and CronTimer nodes (and any other node types not on an allowlist) showed no name label on the canvas even when the user had given them an explicit name. The name was present in node.name() but AnimatedNodeVisibility skipped the NamePill composable for those types. Demo/automation pipelines also had no stable way to open a specific node’s editor programmatically; a patched recording jar was required.

Root cause

AnimatedNodeVisibility branched on a hardcoded allow-list of KrillApp types to decide whether to render the NamePill. The list was never updated as new node types (Calculation, CronTimer, etc.) were added. The else-branch rendered the icon with no label at all, regardless of whether the node had a user-supplied name. For the programmatic-editor gap, there was no production path from an external signal to ScreenCore.selectNode(id) + viewEditor().

Fix

Prevention