Answered before the edge exists, so the canvas can refuse it rather than create an invalid graph
and report it afterwards. A self-edge is the degenerate case and is caught first.
Iterative rather than recursive: the graph may come from an LLM, and a deeply-chained spec should
produce a refusal, not a stack overflow.
Would adding
from → tocreate a cycle?Answered before the edge exists, so the canvas can refuse it rather than create an invalid graph and report it afterwards. A self-edge is the degenerate case and is caught first.
Iterative rather than recursive: the graph may come from an LLM, and a deeply-chained spec should produce a refusal, not a stack overflow.