diff options
Diffstat (limited to 'makima/src/server/handlers/mesh_supervisor.rs')
| -rw-r--r-- | makima/src/server/handlers/mesh_supervisor.rs | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/makima/src/server/handlers/mesh_supervisor.rs b/makima/src/server/handlers/mesh_supervisor.rs index d1a1a99..a654a05 100644 --- a/makima/src/server/handlers/mesh_supervisor.rs +++ b/makima/src/server/handlers/mesh_supervisor.rs @@ -297,6 +297,12 @@ pub async fn try_start_pending_task( return Ok(None); } + // Get contract to check local_only flag + let contract = repository::get_contract_for_owner(pool, contract_id, owner_id) + .await + .map_err(|e| format!("Failed to get contract: {}", e))? + .ok_or_else(|| "Contract not found".to_string())?; + // Try each pending task until we find one we can start for task in &pending_tasks { // Get excluded daemon IDs for this task (daemons that have already failed it) @@ -399,6 +405,7 @@ pub async fn try_start_pending_task( conversation_history: None, patch_data, patch_base_sha, + local_only: contract.local_only, }; if let Err(e) = state.send_daemon_command(daemon.id, cmd).await { @@ -532,8 +539,8 @@ pub async fn spawn_task( let pool = state.db_pool.as_ref().unwrap(); - // Verify contract exists - let _contract = match repository::get_contract_for_owner(pool, request.contract_id, owner_id).await { + // Verify contract exists and get local_only flag + let contract = match repository::get_contract_for_owner(pool, request.contract_id, owner_id).await { Ok(Some(c)) => c, Ok(None) => { return ( @@ -711,6 +718,7 @@ pub async fn spawn_task( conversation_history: None, patch_data: None, patch_base_sha: None, + local_only: contract.local_only, }; if let Err(e) = state.send_daemon_command(daemon.id, cmd).await { @@ -2133,6 +2141,7 @@ pub async fn resume_supervisor( conversation_history: Some(supervisor_state.conversation_history.clone()), // Fallback if worktree missing patch_data, patch_base_sha, + local_only: contract.local_only, }; if let Err(e) = state.send_daemon_command(target_daemon_id, command).await { |
