diff --git a/server/src/handlers_v2/tasks.rs b/server/src/handlers_v2/tasks.rs index 8f125e7..0551cb7 100644 --- a/server/src/handlers_v2/tasks.rs +++ b/server/src/handlers_v2/tasks.rs @@ -159,7 +159,6 @@ impl McpTool for UpdateTaskStatusHandler { }; found = true; - let target_id = tasks[target_idx].id.clone(); if target_status == "done" || target_status == "completed" { // 1. Check Acceptance Criteria @@ -192,10 +191,11 @@ impl McpTool for UpdateTaskStatusHandler { // 3. Check child tasks if !blocked { + let target_id_ref = tasks[target_idx].id.as_str(); let mut uncompleted_children = Vec::new(); for child in tasks .iter() - .filter(|t| t.parent_id.as_ref() == Some(&target_id)) + .filter(|t| t.parent_id.as_deref() == Some(target_id_ref)) { if child.status != "completed" && child.status != "done" { uncompleted_children.push(child.title.as_str()); @@ -235,7 +235,7 @@ impl McpTool for UpdateTaskStatusHandler { } } - if let Some(&start_idx) = id_to_idx.get(target_id.as_str()) { + if let Some(&start_idx) = id_to_idx.get(tasks[target_idx].id.as_str()) { let mut queue = std::collections::VecDeque::new(); queue.push_back(start_idx);