MCPcopy
hub / github.com/shareAI-lab/learn-claude-code / remove

Method remove

agents/s12_worktree_task_isolation.py:394–446  ·  view source on GitHub ↗
(self, name: str, force: bool = False, complete_task: bool = False)

Source from the content-addressed store, hash-verified

392 return "Error: Timeout (300s)"
393
394 def remove(self, name: str, force: bool = False, complete_task: bool = False) -> str:
395 wt = self._find(name)
396 if not wt:
397 return f"Error: Unknown worktree '{name}'"
398
399 self.events.emit(
400 "worktree.remove.before",
401 task={"id": wt.get("task_id")} if wt.get("task_id") is not None else {},
402 worktree={"name": name, "path": wt.get("path")},
403 )
404 try:
405 args = ["worktree", "remove"]
406 if force:
407 args.append("--force")
408 args.append(wt["path"])
409 self._run_git(args)
410
411 if complete_task and wt.get("task_id") is not None:
412 task_id = wt["task_id"]
413 before = json.loads(self.tasks.get(task_id))
414 self.tasks.update(task_id, status="completed")
415 self.tasks.unbind_worktree(task_id)
416 self.events.emit(
417 "task.completed",
418 task={
419 "id": task_id,
420 "subject": before.get("subject", ""),
421 "status": "completed",
422 },
423 worktree={"name": name},
424 )
425
426 idx = self._load_index()
427 for item in idx.get("worktrees", []):
428 if item.get("name") == name:
429 item["status"] = "removed"
430 item["removed_at"] = time.time()
431 self._save_index(idx)
432
433 self.events.emit(
434 "worktree.remove.after",
435 task={"id": wt.get("task_id")} if wt.get("task_id") is not None else {},
436 worktree={"name": name, "path": wt.get("path"), "status": "removed"},
437 )
438 return f"Removed worktree '{name}'"
439 except Exception as e:
440 self.events.emit(
441 "worktree.remove.failed",
442 task={"id": wt.get("task_id")} if wt.get("task_id") is not None else {},
443 worktree={"name": name, "path": wt.get("path")},
444 error=str(e),
445 )
446 raise
447
448 def keep(self, name: str) -> str:
449 wt = self._find(name)

Callers 3

_clear_dependencyMethod · 0.80
updateMethod · 0.80

Calls 8

_findMethod · 0.95
_run_gitMethod · 0.95
_load_indexMethod · 0.95
_save_indexMethod · 0.95
emitMethod · 0.80
unbind_worktreeMethod · 0.80
getMethod · 0.45
updateMethod · 0.45

Tested by

no test coverage detected