True when a graph can make no further progress on its own: nothing is running, and nothing is
eligible to start.
Distinguishes "finished" from "wedged". A graph with Pending tasks and zero eligible tasks and
zero in-flight tasks is deadlocked — previously this exited the execution loop quietly and the
parent was marked complete.
Held tasks do not count as eligible. A task held because its guard could not be evaluated has
a live gating edge from a Complete origin, so eligibility says yes while the dispatcher refuses
to claim it. Counting it made a graph that will wait forever report as healthy, with no
diagnostics — the exact silence the hold mechanism exists to break.
True when a graph can make no further progress on its own: nothing is running, and nothing is eligible to start.
Distinguishes "finished" from "wedged". A graph with
Pendingtasks and zero eligible tasks and zero in-flight tasks is deadlocked — previously this exited the execution loop quietly and the parent was marked complete.Held tasks do not count as eligible. A task held because its guard could not be evaluated has a live gating edge from a
Completeorigin, so eligibility says yes while the dispatcher refuses to claim it. Counting it made a graph that will wait forever report as healthy, with no diagnostics — the exact silence the hold mechanism exists to break.