From 4ae5035f3902cc7db6c3bf07fe7bf07489946cf3 Mon Sep 17 00:00:00 2001 From: soryu Date: Mon, 26 Jan 2026 18:19:03 +0000 Subject: [WIP] Heartbeat checkpoint - 2026-01-26 18:19:03 UTC --- makima/src/db/repository.rs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'makima/src/db/repository.rs') diff --git a/makima/src/db/repository.rs b/makima/src/db/repository.rs index d3e4c56..b45bdea 100644 --- a/makima/src/db/repository.rs +++ b/makima/src/db/repository.rs @@ -2175,11 +2175,12 @@ pub async fn create_contract_for_owner( let autonomous_loop = req.autonomous_loop.unwrap_or(false); let phase_guard = req.phase_guard.unwrap_or(false); + let local_only = req.local_only.unwrap_or(false); sqlx::query_as::<_, Contract>( r#" - INSERT INTO contracts (owner_id, name, description, contract_type, phase, autonomous_loop, phase_guard) - VALUES ($1, $2, $3, $4, $5, $6, $7) + INSERT INTO contracts (owner_id, name, description, contract_type, phase, autonomous_loop, phase_guard, local_only) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8) RETURNING * "#, ) @@ -2190,6 +2191,7 @@ pub async fn create_contract_for_owner( .bind(phase) .bind(autonomous_loop) .bind(phase_guard) + .bind(local_only) .fetch_one(pool) .await } @@ -2222,7 +2224,7 @@ pub async fn list_contracts_for_owner( r#" SELECT c.id, c.name, c.description, c.contract_type, c.phase, c.status, - c.supervisor_task_id, c.version, c.created_at, + c.supervisor_task_id, c.local_only, c.version, c.created_at, (SELECT COUNT(*) FROM files WHERE contract_id = c.id) as file_count, (SELECT COUNT(*) FROM tasks WHERE contract_id = c.id) as task_count, (SELECT COUNT(*) FROM contract_repositories WHERE contract_id = c.id) as repository_count @@ -2246,7 +2248,7 @@ pub async fn get_contract_summary_for_owner( r#" SELECT c.id, c.name, c.description, c.contract_type, c.phase, c.status, - c.supervisor_task_id, c.version, c.created_at, + c.supervisor_task_id, c.local_only, c.version, c.created_at, (SELECT COUNT(*) FROM files WHERE contract_id = c.id) as file_count, (SELECT COUNT(*) FROM tasks WHERE contract_id = c.id) as task_count, (SELECT COUNT(*) FROM contract_repositories WHERE contract_id = c.id) as repository_count @@ -2290,14 +2292,15 @@ pub async fn update_contract_for_owner( let supervisor_task_id = req.supervisor_task_id.or(existing.supervisor_task_id); let autonomous_loop = req.autonomous_loop.unwrap_or(existing.autonomous_loop); let phase_guard = req.phase_guard.unwrap_or(existing.phase_guard); + let local_only = req.local_only.unwrap_or(existing.local_only); let result = if req.version.is_some() { sqlx::query_as::<_, Contract>( r#" UPDATE contracts SET name = $3, description = $4, phase = $5, status = $6, - supervisor_task_id = $7, autonomous_loop = $8, phase_guard = $9, version = version + 1, updated_at = NOW() - WHERE id = $1 AND owner_id = $2 AND version = $10 + supervisor_task_id = $7, autonomous_loop = $8, phase_guard = $9, local_only = $10, version = version + 1, updated_at = NOW() + WHERE id = $1 AND owner_id = $2 AND version = $11 RETURNING * "#, ) @@ -2310,6 +2313,7 @@ pub async fn update_contract_for_owner( .bind(supervisor_task_id) .bind(autonomous_loop) .bind(phase_guard) + .bind(local_only) .bind(req.version.unwrap()) .fetch_optional(pool) .await? @@ -2318,7 +2322,7 @@ pub async fn update_contract_for_owner( r#" UPDATE contracts SET name = $3, description = $4, phase = $5, status = $6, - supervisor_task_id = $7, autonomous_loop = $8, phase_guard = $9, version = version + 1, updated_at = NOW() + supervisor_task_id = $7, autonomous_loop = $8, phase_guard = $9, local_only = $10, version = version + 1, updated_at = NOW() WHERE id = $1 AND owner_id = $2 RETURNING * "#, @@ -2332,6 +2336,7 @@ pub async fn update_contract_for_owner( .bind(supervisor_task_id) .bind(autonomous_loop) .bind(phase_guard) + .bind(local_only) .fetch_optional(pool) .await? }; -- cgit v1.2.3