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"