Add Agent manager

Change-Id: Iaa68e9228165bd274f9c5be9d4320ef49a009ca8
diff --git a/server/tm/git_tm/git_task_manager.go b/server/tm/git_tm/git_task_manager.go
index b1aa39c..515fa51 100644
--- a/server/tm/git_tm/git_task_manager.go
+++ b/server/tm/git_tm/git_task_manager.go
@@ -21,10 +21,10 @@
 	DefaultFileMode = 0755
 	TaskFileMode    = 0644
 	TaskFileExt     = ".md"
-	
+
 	// Frontmatter constants
 	FrontmatterSeparator = "---\n"
-	
+
 	// Task ID format
 	TaskIDPrefix = "task-"
 )
@@ -230,8 +230,8 @@
 }
 
 // readTaskFile reads a task from a file
-func (gtm *GitTaskManager) readTaskFile(taskID string) (*tm.Task, error) {
-	filePath := filepath.Join(gtm.tasksDir, taskID+TaskFileExt)
+func (gtm *GitTaskManager) readTaskFile(taskFile string) (*tm.Task, error) {
+	filePath := filepath.Join(gtm.tasksDir, taskFile+TaskFileExt)
 
 	content, err := os.ReadFile(filePath)
 	if err != nil {
@@ -365,7 +365,7 @@
 func (gtm *GitTaskManager) UpdateTask(task *tm.Task) error {
 	// Set update time
 	task.UpdatedAt = time.Now()
-	
+
 	// Write task to file
 	return gtm.writeTaskFile(task)
 }
@@ -376,14 +376,12 @@
 	if err != nil {
 		return nil, err
 	}
-	
+
 	var tasks []*tm.Task
 	for _, taskFile := range taskFiles {
-		// Extract task ID from filename (task-{id}.md)
 		filename := filepath.Base(taskFile)
-		if strings.HasPrefix(filename, "task-") && strings.HasSuffix(filename, ".md") {
-			taskID := strings.TrimSuffix(strings.TrimPrefix(filename, "task-"), ".md")
-			task, err := gtm.readTaskFile(taskID)
+		if strings.HasPrefix(filename, "task-") {
+			task, err := gtm.readTaskFile(taskFile)
 			if err != nil {
 				gtm.logger.Warn("Failed to read task file", slog.String("file", taskFile), slog.String("error", err.Error()))
 				continue
@@ -391,7 +389,7 @@
 			tasks = append(tasks, task)
 		}
 	}
-	
+
 	return tasks, nil
 }
 
@@ -402,14 +400,14 @@
 	if err != nil {
 		return nil, err
 	}
-	
+
 	var assignedTasks []*tm.Task
 	for _, task := range tasks {
 		if task.Assignee == assignee {
 			assignedTasks = append(assignedTasks, task)
 		}
 	}
-	
+
 	return assignedTasks, nil
 }
 
@@ -419,11 +417,11 @@
 	if err != nil {
 		return err
 	}
-	
+
 	task.Status = tm.StatusArchived
 	now := time.Now()
 	task.ArchivedAt = &now
-	
+
 	return gtm.UpdateTask(task)
 }
 
@@ -529,14 +527,14 @@
 	if err != nil {
 		return nil, err
 	}
-	
+
 	task.Status = tm.StatusInProgress
-	
+
 	err = gtm.UpdateTask(task)
 	if err != nil {
 		return nil, err
 	}
-	
+
 	return task, nil
 }
 
@@ -546,16 +544,16 @@
 	if err != nil {
 		return nil, err
 	}
-	
+
 	task.Status = tm.StatusCompleted
 	now := time.Now()
 	task.CompletedAt = &now
-	
+
 	err = gtm.UpdateTask(task)
 	if err != nil {
 		return nil, err
 	}
-	
+
 	return task, nil
 }