From 9b2cb58ce5872a488ef18ab098922176954a2b76 Mon Sep 17 00:00:00 2001 From: "Rai (Michael Pokorny)" Date: Tue, 24 Jun 2025 22:44:38 -0700 Subject: [PATCH] manager_utils(dispose): also rmtree and prune stale worktrees --- agentydragon/tools/manager_utils/agentydragon_task.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/agentydragon/tools/manager_utils/agentydragon_task.py b/agentydragon/tools/manager_utils/agentydragon_task.py index 65d411dd1c..d511a22ac0 100644 --- a/agentydragon/tools/manager_utils/agentydragon_task.py +++ b/agentydragon/tools/manager_utils/agentydragon_task.py @@ -8,6 +8,7 @@ from datetime import datetime import click from tasklib import load_task, repo_root, save_task, task_dir +import shutil try: from tabulate import tabulate @@ -197,9 +198,13 @@ def dispose(task_id): for tid in task_id: # Remove any matching worktree directories for wt_dir in wt_base.glob(f'{tid}-*'): - # remove worktree by path relative to repo root + # unregister worktree; then delete the directory if still present rel = wt_dir.relative_to(root) subprocess.run(['git', 'worktree', 'remove', str(rel), '--force'], cwd=root) + if wt_dir.exists(): + shutil.rmtree(wt_dir) + # prune any stale worktree entries + subprocess.run(['git', 'worktree', 'prune'], cwd=root) # Delete any matching branches # delete any matching local branches cleanly via for-each-ref ref_pattern = f'refs/heads/agentydragon-{tid}-*'