A node is runnable when it's ready/pending AND all deps are committed.
(node: TaskNode)
| 72 | |
| 73 | /** A node is runnable when it's ready/pending AND all deps are committed. */ |
| 74 | private depsCommitted(node: TaskNode): boolean { |
| 75 | return node.dependsOn.every(d => this.graph.nodes.get(d)?.status === 'committed'); |
| 76 | } |
| 77 | |
| 78 | /** Any dependency failed/blocked → this node is blocked. */ |
| 79 | private depsBroken(node: TaskNode): TaskId | null { |