summaryrefslogtreecommitdiff
path: root/makima/src/server
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-02-07 21:53:59 +0000
committersoryu <soryu@soryu.co>2026-02-07 21:53:59 +0000
commit89ccd1375c2eaddd1f2b74a42b2d152c83b346e8 (patch)
tree2b33025aaddef7d2a872af22cfea815344918e9e /makima/src/server
parent9762ee464419042b817ff58ea8ec4d9678dc0fb4 (diff)
downloadsoryu-89ccd1375c2eaddd1f2b74a42b2d152c83b346e8.tar.gz
soryu-89ccd1375c2eaddd1f2b74a42b2d152c83b346e8.zip
Check on completion for contracts
Diffstat (limited to 'makima/src/server')
-rw-r--r--makima/src/server/handlers/contracts.rs19
1 files changed, 18 insertions, 1 deletions
diff --git a/makima/src/server/handlers/contracts.rs b/makima/src/server/handlers/contracts.rs
index a83c72d..ad0a1ff 100644
--- a/makima/src/server/handlers/contracts.rs
+++ b/makima/src/server/handlers/contracts.rs
@@ -575,7 +575,24 @@ pub async fn update_contract(
}),
).await;
- // TODO: Directive engine integration (removed for reimplementation)
+ // Directive engine integration — process planning/step/monitoring completion
+ if contract.is_directive_orchestrator || contract.directive_id.is_some() {
+ let pool_clone = pool.clone();
+ let state_clone = state.clone();
+ let contract_clone = contract.clone();
+ let owner = auth.owner_id;
+ tokio::spawn(async move {
+ if let Err(e) = crate::orchestration::directive::on_contract_completed(
+ &pool_clone, &state_clone, &contract_clone, owner,
+ ).await {
+ tracing::warn!(
+ contract_id = %contract_clone.id,
+ error = %e,
+ "Failed to process directive contract completion"
+ );
+ }
+ });
+ }
}
// Get summary with counts