diff --git a/apps/web/app/routes/ws/deployments/page.$deploymentId.plans.$planId.tsx b/apps/web/app/routes/ws/deployments/page.$deploymentId.plans.$planId.tsx index 621b5e0cb..629b4c56b 100644 --- a/apps/web/app/routes/ws/deployments/page.$deploymentId.plans.$planId.tsx +++ b/apps/web/app/routes/ws/deployments/page.$deploymentId.plans.$planId.tsx @@ -35,7 +35,8 @@ export function meta() { ]; } -type Result = RouterOutputs["deployment"]["plans"]["results"][number]; +type Result = + RouterOutputs["deployment"]["plans"]["results"]["items"][number]; function resultTitle(result: Result) { return `${result.environment.name} · ${result.resource.name} · ${result.agent.name}`; @@ -142,7 +143,8 @@ export default function DeploymentPlanDetail() { { enabled: !!planId, refetchInterval: 5000 }, ); - const results = resultsQuery.data ?? []; + const version = resultsQuery.data?.version; + const results = resultsQuery.data?.items ?? []; const activeResult = results.find((r) => r.resultId === resultId); return ( @@ -174,7 +176,9 @@ export default function DeploymentPlanDetail() { - {planId} + + {version?.name ?? version?.tag ?? planId} + diff --git a/packages/trpc/src/routes/deployment-plans.ts b/packages/trpc/src/routes/deployment-plans.ts index fdb362c07..13329580a 100644 --- a/packages/trpc/src/routes/deployment-plans.ts +++ b/packages/trpc/src/routes/deployment-plans.ts @@ -136,7 +136,11 @@ export const deploymentPlansRouter = router({ ) .query(async ({ input, ctx }) => { const plan = await ctx.db - .select({ id: schema.deploymentPlan.id }) + .select({ + id: schema.deploymentPlan.id, + versionTag: schema.deploymentPlan.versionTag, + versionName: schema.deploymentPlan.versionName, + }) .from(schema.deploymentPlan) .where( and( @@ -184,26 +188,29 @@ export const deploymentPlansRouter = router({ .where(eq(schema.deploymentPlanTarget.planId, input.planId)) .orderBy(schema.environment.name, schema.resource.name); - return rows.map((r) => { - const agent = r.dispatchContext.jobAgent ?? {}; - return { - resultId: r.resultId, - targetId: r.targetId, - environment: { id: r.environmentId, name: r.environmentName }, - resource: { id: r.resourceId, name: r.resourceName }, - agent: { - id: (agent.id as string | undefined) ?? "", - name: (agent.name as string | undefined) ?? "", - type: (agent.type as string | undefined) ?? "", - }, - status: r.status, - hasChanges: r.hasChanges, - message: r.message, - contentHash: r.contentHash, - startedAt: r.startedAt, - completedAt: r.completedAt, - }; - }); + return { + version: { tag: plan.versionTag, name: plan.versionName }, + items: rows.map((r) => { + const agent = r.dispatchContext.jobAgent ?? {}; + return { + resultId: r.resultId, + targetId: r.targetId, + environment: { id: r.environmentId, name: r.environmentName }, + resource: { id: r.resourceId, name: r.resourceName }, + agent: { + id: (agent.id as string | undefined) ?? "", + name: (agent.name as string | undefined) ?? "", + type: (agent.type as string | undefined) ?? "", + }, + status: r.status, + hasChanges: r.hasChanges, + message: r.message, + contentHash: r.contentHash, + startedAt: r.startedAt, + completedAt: r.completedAt, + }; + }), + }; }), resultDiff: protectedProcedure