How completion cascades

Marking one node complete triggers re-evaluation of every downstream node. The cascade is immediate and bounded.

Completion cascading is the mechanic by which marking one node complete triggers re-evaluation of every downstream node. The cascade is immediate and bounded: Tree evaluates the graph as the completion fires and updates the state of any affected dependents.

The three steps

The mechanic runs in three steps.

  1. The user marks a node complete. The node's own state changes from in-progress to complete. The visual rendering updates (the node turns green and stays on the graph as foundation).
  2. Tree identifies every direct dependent of the completed node. These are the nodes connected to the completed node by an outgoing edge: the work that was waiting for this node to finish.
  3. For each direct dependent, Tree checks whether all of its prerequisites are now complete. If yes, the dependent moves from locked to available and joins the available tier. If no (other prerequisites remain incomplete), the dependent stays locked.

Single-pass in most cases

The cascade is single-pass for most cases. A node completing usually unlocks only its direct dependents. Those dependents don't immediately unlock anything further because they themselves haven't been completed yet; they're now available, but the cascade only runs again when one of them is also marked complete.

Multi-unlock in some cases

In some cases, completing a node can unlock multiple nodes simultaneously. If a node was the last incomplete prerequisite for several dependents, all of them transition to available in the same evaluation pass.

Bounded scope keeps it cheap

The bounded scope is what makes the cascade cheap. Tree doesn't re-evaluate the entire graph when a single node completes; it only re-evaluates the dependents of the changed node. Large graphs stay responsive because the work scales with the change, not with the graph's total size.

LAST UPDATED · 2026-05-11