summaryrefslogtreecommitdiff
path: root/makima/src/server/handlers
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-01-24 14:54:21 +0000
committersoryu <soryu@soryu.co>2026-01-24 14:54:21 +0000
commit9b028d8085d308e43239972348ab117d473caf73 (patch)
tree161125f08c5e3d4009d2404e70616d7782947b6a /makima/src/server/handlers
parent1abc91f1da9beb96a54e466102f97e8e8c0b70e5 (diff)
downloadsoryu-9b028d8085d308e43239972348ab117d473caf73.tar.gz
soryu-9b028d8085d308e43239972348ab117d473caf73.zip
Clean up questions after removing tasks or contracts
Diffstat (limited to 'makima/src/server/handlers')
-rw-r--r--makima/src/server/handlers/contracts.rs3
-rw-r--r--makima/src/server/handlers/mesh.rs3
2 files changed, 6 insertions, 0 deletions
diff --git a/makima/src/server/handlers/contracts.rs b/makima/src/server/handlers/contracts.rs
index 462b385..f16f33d 100644
--- a/makima/src/server/handlers/contracts.rs
+++ b/makima/src/server/handlers/contracts.rs
@@ -612,6 +612,9 @@ pub async fn delete_contract(
}
}
+ // Clean up any pending supervisor questions for this contract
+ state.remove_pending_questions_for_contract(id);
+
// Clean up all task worktrees BEFORE deleting the contract
// (because CASCADE delete will remove tasks from DB)
cleanup_contract_worktrees(pool, &state, id).await;
diff --git a/makima/src/server/handlers/mesh.rs b/makima/src/server/handlers/mesh.rs
index 3d05f35..3d64eb4 100644
--- a/makima/src/server/handlers/mesh.rs
+++ b/makima/src/server/handlers/mesh.rs
@@ -482,6 +482,9 @@ pub async fn delete_task(
}
}
+ // Clean up any pending supervisor questions for this task
+ state.remove_pending_questions_for_task(id);
+
match repository::delete_task_for_owner(pool, id, auth.owner_id).await {
Ok(true) => StatusCode::NO_CONTENT.into_response(),
Ok(false) => (