Which nodes reach the execution graph
A loop head needs a forward entry edge: being reachable by loopback alone is not enough to be scheduled, even though every re-enterable node type carries a loopback port.
The rule
- A node is excluded from the execution graph if its type is non-executable, if it is wired only as a tool provider, or if its only incoming edges are loopback edges.
- A node with no incoming edges is included, and so is a node with no edges at all.
- The exclusions are applied in that precedence.
What it means
Being wired to something real does not earn a node a place in the execution graph. A node whose type is marked non-executable is excluded regardless of what touches it — including an ordinary incoming connection from a node that does run — because the exclusion is decided from the node's own type before its wiring is considered at all. The same precedence protects the opposite case: a node with no edges at all, or none incoming, is included rather than treated as an orphan to drop.
Example
A record-only node wired downstream of a node that does run:
{
"nodes": [
{ "id": "input", "type": "text_input" },
{ "id": "mynote", "type": "note" }
],
"edges": [{ "source": "input", "target": "mynote" }]
}{ "id": "mynote", "reason": "non_executable" }The upstream node is unaffected — only the record-only one is left out of the execution graph.