(self, name: str)
| 446 | raise |
| 447 | |
| 448 | def keep(self, name: str) -> str: |
| 449 | wt = self._find(name) |
| 450 | if not wt: |
| 451 | return f"Error: Unknown worktree '{name}'" |
| 452 | |
| 453 | idx = self._load_index() |
| 454 | kept = None |
| 455 | for item in idx.get("worktrees", []): |
| 456 | if item.get("name") == name: |
| 457 | item["status"] = "kept" |
| 458 | item["kept_at"] = time.time() |
| 459 | kept = item |
| 460 | self._save_index(idx) |
| 461 | |
| 462 | self.events.emit( |
| 463 | "worktree.keep", |
| 464 | task={"id": wt.get("task_id")} if wt.get("task_id") is not None else {}, |
| 465 | worktree={ |
| 466 | "name": name, |
| 467 | "path": wt.get("path"), |
| 468 | "status": "kept", |
| 469 | }, |
| 470 | ) |
| 471 | return json.dumps(kept, indent=2) if kept else f"Error: Unknown worktree '{name}'" |
| 472 | |
| 473 | |
| 474 | WORKTREES = WorktreeManager(REPO_ROOT, TASKS, EVENTS) |
no test coverage detected