(
projectPath: string,
workspaceName: string,
force: boolean,
_abortSignal?: AbortSignal,
trusted?: boolean
)
| 900 | } |
| 901 | |
| 902 | async deleteWorkspace( |
| 903 | projectPath: string, |
| 904 | workspaceName: string, |
| 905 | force: boolean, |
| 906 | _abortSignal?: AbortSignal, |
| 907 | trusted?: boolean |
| 908 | ): Promise<{ success: true; deletedPath: string } | { success: false; error: string }> { |
| 909 | const workspacePath = this.getWorkspacePath(projectPath, workspaceName); |
| 910 | |
| 911 | // Stop and remove container (best-effort) |
| 912 | try { |
| 913 | await devcontainerDown(workspacePath, this.configPath); |
| 914 | } catch (error) { |
| 915 | log.debug("devcontainerDown failed (container may not exist):", { error }); |
| 916 | } |
| 917 | |
| 918 | // Delete worktree on host |
| 919 | return this.worktreeManager.deleteWorkspace(projectPath, workspaceName, force, trusted); |
| 920 | } |
| 921 | |
| 922 | async forkWorkspace(params: WorkspaceForkParams): Promise<WorkspaceForkResult> { |
| 923 | // Fork creates a new worktree - container will be built on first ensureReady |
nothing calls this directly
no test coverage detected