Add clone clearup to manager
Change-Id: I40362105fbd0c9a72c4211699e7b12d3d6c95229
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
}