summaryrefslogtreecommitdiff
path: root/makima/src/db/repository.rs
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-02-11 00:33:36 +0000
committersoryu <soryu@soryu.co>2026-02-11 00:33:36 +0000
commit9bd6eacaa9ebe860842b5d5cfbf2b7d2d0293ab1 (patch)
tree2b5dceee69f2390ab5f2c29c6fe39e091d7ca318 /makima/src/db/repository.rs
parent15b6e5fba161a194fe5427d7d29b0c4286423260 (diff)
downloadsoryu-9bd6eacaa9ebe860842b5d5cfbf2b7d2d0293ab1.tar.gz
soryu-9bd6eacaa9ebe860842b5d5cfbf2b7d2d0293ab1.zip
Fix DAG ordering
Diffstat (limited to 'makima/src/db/repository.rs')
-rw-r--r--makima/src/db/repository.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/makima/src/db/repository.rs b/makima/src/db/repository.rs
index 358ab48..7afbeea 100644
--- a/makima/src/db/repository.rs
+++ b/makima/src/db/repository.rs
@@ -5371,6 +5371,12 @@ pub async fn advance_directive_ready_steps(
JOIN directive_steps ds ON ds.id = dep_id
WHERE ds.status NOT IN ('completed', 'skipped')
)
+ AND NOT EXISTS (
+ SELECT 1 FROM directive_steps prev
+ WHERE prev.directive_id = $1
+ AND prev.order_index < directive_steps.order_index
+ AND prev.status NOT IN ('completed', 'skipped', 'failed')
+ )
RETURNING *
"#,
)