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
}