Add clone clearup to manager
Change-Id: I40362105fbd0c9a72c4211699e7b12d3d6c95229
diff --git a/server/agent/agent.go b/server/agent/agent.go
index fba80b7..3c092d5 100644
--- a/server/agent/agent.go
+++ b/server/agent/agent.go
@@ -184,7 +184,7 @@
return fmt.Errorf("failed to generate subtasks for task: %w", err)
}
- solutionURL, err2 := a.taskManager.ProposeSubTasks(ctx, task, analysis)
+ solutionURL, err2 := a.taskManager.ProposeSubTasks(ctx, task, analysis, a.Name)
if err2 != nil {
return fmt.Errorf("failed to propose subtasks for task: %w", err2)
}
diff --git a/server/agent/manager.go b/server/agent/manager.go
index ea7474d..db8f27c 100644
--- a/server/agent/manager.go
+++ b/server/agent/manager.go
@@ -167,5 +167,6 @@
slog.String("error", err.Error()))
}
}
- return nil
+
+ return m.taskManager.Close()
}
diff --git a/server/config.yaml b/server/config.yaml
index 17287d6..cc65043 100644
--- a/server/config.yaml
+++ b/server/config.yaml
@@ -43,7 +43,7 @@
# max_tokens: 4000
# system_prompt_file: "/Users/shota/github/staff/operations/agents/beckend-engineer/system.md"
- name: "ceo"
- role: "CEO"
+ role: "ceo"
model: "gpt-4"
temperature: 0.3
max_tokens: 4000
diff --git a/server/tm/git_tm/git_task_manager.go b/server/tm/git_tm/git_task_manager.go
index cca9da8..add69ef 100644
--- a/server/tm/git_tm/git_task_manager.go
+++ b/server/tm/git_tm/git_task_manager.go
@@ -534,12 +534,12 @@
}
// GenerateSubtaskPR creates a PR with the proposed subtasks
-func (gtm *GitTaskManager) ProposeSubTasks(ctx context.Context, task *tm.Task, analysis *tm.SubtaskAnalysis) (string, error) {
+func (gtm *GitTaskManager) ProposeSubTasks(ctx context.Context, task *tm.Task, analysis *tm.SubtaskAnalysis, agentName string) (string, error) {
branchName := generateBranchName("subtasks", task)
gtm.logger.Info("Creating subtask PR", slog.String("branch", branchName))
// Create Git branch and commit subtask proposal
- if err := gtm.createSubtaskBranch(ctx, analysis, branchName); err != nil {
+ if err := gtm.createSubtaskBranch(ctx, analysis, branchName, agentName); err != nil {
return "", fmt.Errorf("failed to create subtask branch: %w", err)
}
@@ -556,7 +556,7 @@
}
// Determine base branch (try main first, fallback to master)
- baseBranch := gtm.determineBaseBranch(ctx)
+ baseBranch := gtm.determineBaseBranch(ctx, agentName)
gtm.logger.Info("Using base branch", slog.String("base_branch", baseBranch))
// Create the pull request
@@ -611,9 +611,13 @@
return pr.URL, nil
}
+func (gtm *GitTaskManager) Close() error {
+ return gtm.git.CleanupAllClones()
+}
+
// createSubtaskBranch creates a Git branch with subtask proposal content
-func (gtm *GitTaskManager) createSubtaskBranch(ctx context.Context, analysis *tm.SubtaskAnalysis, branchName string) error {
- clonePath, err := gtm.git.GetAgentClonePath("subtask-service")
+func (gtm *GitTaskManager) createSubtaskBranch(ctx context.Context, analysis *tm.SubtaskAnalysis, branchName, agentName string) error {
+ clonePath, err := gtm.git.GetAgentClonePath(agentName)
if err != nil {
return fmt.Errorf("failed to get clone path: %w", err)
}
@@ -932,9 +936,9 @@
return content.String()
}
-func (gtm *GitTaskManager) determineBaseBranch(ctx context.Context) string {
+func (gtm *GitTaskManager) determineBaseBranch(ctx context.Context, agentName string) string {
// Get clone path to check branches
- clonePath, err := gtm.git.GetAgentClonePath("subtask-service")
+ clonePath, err := gtm.git.GetAgentClonePath(agentName)
if err != nil {
gtm.logger.Warn("Failed to get clone path for base branch detection", slog.String("error", err.Error()))
return "main"
diff --git a/server/tm/interface.go b/server/tm/interface.go
index f50abb1..398cb74 100644
--- a/server/tm/interface.go
+++ b/server/tm/interface.go
@@ -24,6 +24,7 @@
GetTasksByPriority(ctx context.Context, priority TaskPriority, page, pageSize int) (*TaskList, error)
// Proposals
- ProposeSubTasks(ctx context.Context, task *Task, analysis *SubtaskAnalysis) (string, error)
+ ProposeSubTasks(ctx context.Context, task *Task, analysis *SubtaskAnalysis, agentName string) (string, error)
ProposeSolution(ctx context.Context, task *Task, solution, agentName string) (string, error)
+ Close() error
}
diff --git a/server/workspace/agent-subtask-service b/server/workspace/agent-subtask-service
deleted file mode 160000
index 40c460a..0000000
--- a/server/workspace/agent-subtask-service
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 40c460a0faca29d90591ec77a1a0263d2b6d31f0