Every re-enterable node gets a hidden loop-back input
Re-entry is a property of the graph, not of a handful of node types. Every node that can be re-entered declares the port; it just ships hidden, so no canvas gains a re-entry handle until an author asks for one.
The rule
Normative: this is the rule
- A reserved
loop_backinput is injected on every re-enterable node type (every node type that is not a start, terminal or non-executable one) with display order 95 and thetriggerlane, and it ships hidden, so no canvas gains a re-entry handle until an author exposes the port on that instance. - A node type that declares its own
loop_backkeeps it and the injection is skipped, because such a declaration carries semantics the injection does not. - Because the port is now declared rather than absent, an edge drawn into an unexposed
loop_backis refused as an edge into an unexposed port, where previously it fell outside the check entirely.
What it means
The injected port ships hidden by default, so declaring re-entry legal on
every eligible node type does not put a re-entry handle in every editor —
an author still has to expose it per instance before a wire can land there.
Where a node type already declares its own loop_back, the injection does
not run at all: the declared port is kept as-is, not merged with or replaced
by the injected one.
Example
false"Custom Loop Back"Rule identifiers are permanent and are never renumbered. Each implementation publishes its own standing against these rules; this specification does not.spec 1.0-draft · SCH-32 · changed in spec 1.0