diff options
| author | soryu <soryu@soryu.co> | 2026-02-07 21:53:59 +0000 |
|---|---|---|
| committer | soryu <soryu@soryu.co> | 2026-02-07 21:53:59 +0000 |
| commit | 89ccd1375c2eaddd1f2b74a42b2d152c83b346e8 (patch) | |
| tree | 2b33025aaddef7d2a872af22cfea815344918e9e /makima/src/server/handlers/contracts.rs | |
| parent | 9762ee464419042b817ff58ea8ec4d9678dc0fb4 (diff) | |
| download | soryu-89ccd1375c2eaddd1f2b74a42b2d152c83b346e8.tar.gz soryu-89ccd1375c2eaddd1f2b74a42b2d152c83b346e8.zip | |
Check on completion for contracts
Diffstat (limited to 'makima/src/server/handlers/contracts.rs')
| -rw-r--r-- | makima/src/server/handlers/contracts.rs | 19 |
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 |
