Add execution workspace close readiness and UI

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
dotta 2026-03-28 16:15:20 -05:00
parent 868cfa8c50
commit f1ad07616c
14 changed files with 1342 additions and 106 deletions

View file

@ -12,6 +12,7 @@ export interface ProjectWorkspaceSummary {
lastUpdatedAt: Date;
projectWorkspaceId: string | null;
executionWorkspaceId: string | null;
executionWorkspaceStatus: ExecutionWorkspace["status"] | null;
issues: Issue[];
}
@ -65,6 +66,7 @@ export function buildProjectWorkspaceSummaries(input: {
if (issue.executionWorkspaceId) {
const executionWorkspace = executionWorkspacesById.get(issue.executionWorkspaceId);
if (!executionWorkspace) continue;
if (executionWorkspace.status === "archived") continue;
if (isDefaultSharedExecutionWorkspace({
executionWorkspace,
issue,
@ -91,6 +93,7 @@ export function buildProjectWorkspaceSummaries(input: {
),
projectWorkspaceId: executionWorkspace.projectWorkspaceId ?? issue.projectWorkspaceId ?? null,
executionWorkspaceId: executionWorkspace.id,
executionWorkspaceStatus: executionWorkspace.status,
issues: nextIssues,
});
continue;
@ -115,6 +118,7 @@ export function buildProjectWorkspaceSummaries(input: {
lastUpdatedAt: maxDate(existing?.lastUpdatedAt, projectWorkspace.updatedAt, issue.updatedAt),
projectWorkspaceId: projectWorkspace.id,
executionWorkspaceId: null,
executionWorkspaceStatus: null,
issues: nextIssues,
});
}

View file

@ -61,6 +61,7 @@ export const queryKeys = {
list: (companyId: string, filters?: Record<string, string | boolean | undefined>) =>
["execution-workspaces", companyId, filters ?? {}] as const,
detail: (id: string) => ["execution-workspaces", "detail", id] as const,
closeReadiness: (id: string) => ["execution-workspaces", "close-readiness", id] as const,
},
projects: {
list: (companyId: string) => ["projects", companyId] as const,