(
ownerWorkspaceId: string,
target: WorkspaceLifecycleTarget,
options: WorkspaceLifecycleOptions = {}
)
| 5898 | } |
| 5899 | |
| 5900 | async deleteOwnedWorkspaceTurnWorktree( |
| 5901 | ownerWorkspaceId: string, |
| 5902 | target: WorkspaceLifecycleTarget, |
| 5903 | options: WorkspaceLifecycleOptions = {} |
| 5904 | ): Promise<Result<WorkspaceLifecycleResult, string>> { |
| 5905 | assert( |
| 5906 | ownerWorkspaceId.trim().length > 0, |
| 5907 | "delete worktree lifecycle requires ownerWorkspaceId" |
| 5908 | ); |
| 5909 | const resolved = await this.resolveOwnedWorkspaceLifecycleTarget( |
| 5910 | ownerWorkspaceId, |
| 5911 | "delete_worktree", |
| 5912 | target |
| 5913 | ); |
| 5914 | if ("status" in resolved) return Ok(resolved); |
| 5915 | |
| 5916 | return await this.withWorkspaceLifecycleLock(resolved, async (resolved) => { |
| 5917 | if (resolved.metadata == null) { |
| 5918 | return Ok({ |
| 5919 | status: "not_found", |
| 5920 | action: "delete_worktree", |
| 5921 | ...this.lifecycleTargetFields(resolved), |
| 5922 | note: "Owned workspace metadata is already absent.", |
| 5923 | }); |
| 5924 | } |
| 5925 | if (!isWorkspaceArchived(resolved.metadata.archivedAt, resolved.metadata.unarchivedAt)) { |
| 5926 | return Ok({ |
| 5927 | status: "requires_archive", |
| 5928 | action: "delete_worktree", |
| 5929 | ...this.lifecycleTargetFields(resolved), |
| 5930 | }); |
| 5931 | } |
| 5932 | if (this.isTranscriptOnlyWorkspaceMetadata(resolved.metadata)) { |
| 5933 | return Ok({ |
| 5934 | status: "already_transcript_only", |
| 5935 | action: "delete_worktree", |
| 5936 | ...this.lifecycleTargetFields(resolved), |
| 5937 | }); |
| 5938 | } |
| 5939 | |
| 5940 | const active = await this.handleActiveWorkspaceLifecycleTurns( |
| 5941 | ownerWorkspaceId, |
| 5942 | resolved, |
| 5943 | options.interruptActive === true |
| 5944 | ); |
| 5945 | if (active != null) return Ok(active); |
| 5946 | |
| 5947 | const result = await this.workspaceService.deleteWorktree(resolved.workspaceId); |
| 5948 | if (!result.success) { |
| 5949 | return Ok({ |
| 5950 | status: "error", |
| 5951 | action: "delete_worktree", |
| 5952 | ...this.lifecycleTargetFields(resolved), |
| 5953 | error: result.error, |
| 5954 | }); |
| 5955 | } |
| 5956 | return Ok({ |
| 5957 | status: "deleted_worktree", |
no test coverage detected