summaryrefslogtreecommitdiff
path: root/makima/src
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-01-18 19:55:37 +0000
committerGitHub <noreply@github.com>2026-01-18 19:55:37 +0000
commitb3eb58d50eea5b235a1c33d5c8787dc81064c46b (patch)
tree50e174970ecd42c60d2efc571cad12eb27e43ffc /makima/src
parent9dbc2c3199047609a9f8496fec07ecdb10aee73d (diff)
downloadsoryu-b3eb58d50eea5b235a1c33d5c8787dc81064c46b.tar.gz
soryu-b3eb58d50eea5b235a1c33d5c8787dc81064c46b.zip
Clean up mesh page (#6)
* Filter mesh page task list to show only supervisor tasks - Add `isSupervisor` filter to rootTasks filter in TaskList component - Only supervisor tasks will appear in the mesh page task list - Regular tasks are now hidden from the main view - Update empty state messages to reflect supervisor-only filtering - When clicking a supervisor task, its detail still shows orchestrated tasks Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * Add supervisor task button to workflow board contract cards - Add supervisorTaskId field to ContractSummary type in backend and frontend - Update SQL queries in repository.rs to include supervisor_task_id - Add navigation button (▶) to WorkflowContractCard that links to /mesh/{supervisorTaskId} - Button only shows when contract has a supervisorTaskId - Button has tooltip "Open Supervisor Task" and stops propagation to avoid triggering card click Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * Add full task page navigation button to TaskTree rows Add a hover-visible arrow icon (↗) to each task row in the TaskTree component that links to the full task page (/tasks/{taskId}). The button: - Appears on hover using opacity transition - Stops event propagation to avoid triggering parent onSelect - Matches existing hover styling patterns with the #75aafc color scheme Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'makima/src')
-rw-r--r--makima/src/db/models.rs2
-rw-r--r--makima/src/db/repository.rs4
-rw-r--r--makima/src/server/handlers/contracts.rs4
-rw-r--r--makima/src/server/handlers/mesh.rs1
4 files changed, 9 insertions, 2 deletions
diff --git a/makima/src/db/models.rs b/makima/src/db/models.rs
index 3e6997f..65f7168 100644
--- a/makima/src/db/models.rs
+++ b/makima/src/db/models.rs
@@ -1348,6 +1348,8 @@ pub struct ContractSummary {
pub contract_type: String,
pub phase: String,
pub status: String,
+ /// Supervisor task ID for contract orchestration
+ pub supervisor_task_id: Option<Uuid>,
pub file_count: i64,
pub task_count: i64,
pub repository_count: i64,
diff --git a/makima/src/db/repository.rs b/makima/src/db/repository.rs
index 36e6bc1..536bc9b 100644
--- a/makima/src/db/repository.rs
+++ b/makima/src/db/repository.rs
@@ -2190,7 +2190,7 @@ pub async fn list_contracts_for_owner(
r#"
SELECT
c.id, c.name, c.description, c.contract_type, c.phase, c.status,
- c.version, c.created_at,
+ c.supervisor_task_id, 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
@@ -2214,7 +2214,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.version, c.created_at,
+ c.supervisor_task_id, 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
diff --git a/makima/src/server/handlers/contracts.rs b/makima/src/server/handlers/contracts.rs
index 4f4a94b..4524860 100644
--- a/makima/src/server/handlers/contracts.rs
+++ b/makima/src/server/handlers/contracts.rs
@@ -371,6 +371,7 @@ pub async fn create_contract(
contract_type: contract.contract_type,
phase: contract.phase,
status: contract.status,
+ supervisor_task_id: contract.supervisor_task_id,
file_count: 0,
task_count: 0,
repository_count: 0,
@@ -391,6 +392,7 @@ pub async fn create_contract(
contract_type: contract.contract_type,
phase: contract.phase,
status: contract.status,
+ supervisor_task_id: contract.supervisor_task_id,
file_count: 0,
task_count: 0,
repository_count: 0,
@@ -518,6 +520,7 @@ pub async fn update_contract(
contract_type: contract.contract_type,
phase: contract.phase,
status: contract.status,
+ supervisor_task_id: contract.supervisor_task_id,
file_count: 0,
task_count: 0,
repository_count: 0,
@@ -1398,6 +1401,7 @@ pub async fn change_phase(
contract_type: updated_contract.contract_type,
phase: updated_contract.phase,
status: updated_contract.status,
+ supervisor_task_id: updated_contract.supervisor_task_id,
file_count: 0,
task_count: 0,
repository_count: 0,
diff --git a/makima/src/server/handlers/mesh.rs b/makima/src/server/handlers/mesh.rs
index f710be1..e9a421c 100644
--- a/makima/src/server/handlers/mesh.rs
+++ b/makima/src/server/handlers/mesh.rs
@@ -3447,6 +3447,7 @@ pub async fn create_adhoc_task(
contract_type: contract.contract_type,
phase: contract.phase,
status: contract.status,
+ supervisor_task_id: contract.supervisor_task_id,
file_count: 0,
task_count: 1,
repository_count: 0,