MCPcopy
hub / github.com/coder/mux / deleteOwnedWorkspaceTurnWorktree

Method deleteOwnedWorkspaceTurnWorktree

src/node/services/taskService.ts:5900–5962  ·  view source on GitHub ↗
(
    ownerWorkspaceId: string,
    target: WorkspaceLifecycleTarget,
    options: WorkspaceLifecycleOptions = {}
  )

Source from the content-addressed store, hash-verified

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",

Callers 2

Calls 9

lifecycleTargetFieldsMethod · 0.95
OkFunction · 0.90
isWorkspaceArchivedFunction · 0.90
deleteWorktreeMethod · 0.80
assertFunction · 0.50

Tested by

no test coverage detected