PR complete a task
Change-Id: Icb3f24db0ccd2914a528370d96b8c21168b24e98
diff --git a/server/agent/manager.go b/server/agent/manager.go
index ab2ce72..016f5ac 100644
--- a/server/agent/manager.go
+++ b/server/agent/manager.go
@@ -149,6 +149,32 @@
return m.isRunning[agentName]
}
+// CompleteTaskForAgent finds the agent performing a task and resets its state
+func (m *Manager) CompleteTaskForAgent(taskID string) error {
+ // Get the task to find the assignee
+ task, err := m.taskManager.GetTask(taskID)
+ if err != nil {
+ return fmt.Errorf("failed to get task %s: %w", taskID, err)
+ }
+
+ // Find the agent assigned to this task
+ agent, exists := m.agents[task.Assignee]
+ if !exists {
+ return fmt.Errorf("agent %s not found for task %s", task.Assignee, taskID)
+ }
+
+ // Reset the agent's current task and running state
+ agent.CurrentTask = nil
+ agent.IsRunning = false
+ m.isRunning[agent.Name] = false
+
+ m.logger.Info("Completed task for agent",
+ slog.String("task_id", taskID),
+ slog.String("agent", agent.Name))
+
+ return nil
+}
+
// Close shuts down the agent manager
func (m *Manager) Close() error {
// Stop all running agents