@@ -22,7 +22,7 @@ export class ApiRetrieveRunPresenter extends BasePresenter {
2222 showSecretDetails : boolean
2323 ) : Promise < RetrieveRunResponse | undefined > {
2424 return this . traceWithEnv ( "call" , env , async ( span ) => {
25- const taskRun = await this . _prisma . taskRun . findUnique ( {
25+ const taskRun = await this . _replica . taskRun . findFirst ( {
2626 where : {
2727 friendlyId,
2828 runtimeEnvironmentId : env . id ,
@@ -36,6 +36,94 @@ export class ApiRetrieveRunPresenter extends BasePresenter {
3636 lockedToVersion : true ,
3737 schedule : true ,
3838 tags : true ,
39+ parentTaskRun : {
40+ select : {
41+ id : true ,
42+ friendlyId : true ,
43+ status : true ,
44+ taskIdentifier : true ,
45+ createdAt : true ,
46+ startedAt : true ,
47+ updatedAt : true ,
48+ completedAt : true ,
49+ expiredAt : true ,
50+ delayUntil : true ,
51+ ttl : true ,
52+ tags : true ,
53+ costInCents : true ,
54+ baseCostInCents : true ,
55+ usageDurationMs : true ,
56+ idempotencyKey : true ,
57+ isTest : true ,
58+ depth : true ,
59+ lockedToVersion : {
60+ select : {
61+ version : true ,
62+ } ,
63+ } ,
64+ } ,
65+ } ,
66+ rootTaskRun : {
67+ select : {
68+ id : true ,
69+ friendlyId : true ,
70+ status : true ,
71+ taskIdentifier : true ,
72+ createdAt : true ,
73+ startedAt : true ,
74+ updatedAt : true ,
75+ completedAt : true ,
76+ expiredAt : true ,
77+ delayUntil : true ,
78+ ttl : true ,
79+ tags : true ,
80+ costInCents : true ,
81+ baseCostInCents : true ,
82+ usageDurationMs : true ,
83+ idempotencyKey : true ,
84+ isTest : true ,
85+ depth : true ,
86+ lockedToVersion : {
87+ select : {
88+ version : true ,
89+ } ,
90+ } ,
91+ } ,
92+ } ,
93+ childRuns : {
94+ select : {
95+ id : true ,
96+ taskIdentifier : true ,
97+ friendlyId : true ,
98+ resumeParentOnCompletion : true ,
99+ status : true ,
100+ createdAt : true ,
101+ startedAt : true ,
102+ updatedAt : true ,
103+ completedAt : true ,
104+ expiredAt : true ,
105+ delayUntil : true ,
106+ ttl : true ,
107+ tags : true ,
108+ costInCents : true ,
109+ baseCostInCents : true ,
110+ usageDurationMs : true ,
111+ idempotencyKey : true ,
112+ isTest : true ,
113+ depth : true ,
114+ lockedToVersion : {
115+ select : {
116+ version : true ,
117+ } ,
118+ } ,
119+ batch : {
120+ select : {
121+ id : true ,
122+ friendlyId : true ,
123+ } ,
124+ } ,
125+ } ,
126+ } ,
39127 } ,
40128 } ) ;
41129
@@ -124,6 +212,7 @@ export class ApiRetrieveRunPresenter extends BasePresenter {
124212 costInCents : taskRun . costInCents ,
125213 baseCostInCents : taskRun . baseCostInCents ,
126214 durationMs : taskRun . usageDurationMs ,
215+ depth : taskRun . depth ,
127216 schedule : taskRun . schedule
128217 ? {
129218 id : taskRun . schedule . friendlyId ,
@@ -150,6 +239,94 @@ export class ApiRetrieveRunPresenter extends BasePresenter {
150239 completedAt : a . completedAt ?? undefined ,
151240 error : ApiRetrieveRunPresenter . apiErrorFromError ( a . error ) ,
152241 } ) ) ,
242+ relatedRuns : {
243+ root : taskRun . rootTaskRun
244+ ? {
245+ id : taskRun . rootTaskRun . friendlyId ,
246+ taskIdentifier : taskRun . rootTaskRun . taskIdentifier ,
247+ idempotencyKey : taskRun . rootTaskRun . idempotencyKey ?? undefined ,
248+ version : taskRun . rootTaskRun . lockedToVersion ?. version ,
249+ status : ApiRetrieveRunPresenter . apiStatusFromRunStatus ( taskRun . rootTaskRun . status ) ,
250+ createdAt : taskRun . rootTaskRun . createdAt ,
251+ startedAt : taskRun . rootTaskRun . startedAt ?? undefined ,
252+ updatedAt : taskRun . rootTaskRun . updatedAt ,
253+ finishedAt : taskRun . rootTaskRun . completedAt ?? undefined ,
254+ expiredAt : taskRun . rootTaskRun . expiredAt ?? undefined ,
255+ delayedUntil : taskRun . rootTaskRun . delayUntil ?? undefined ,
256+ ttl : taskRun . rootTaskRun . ttl ?? undefined ,
257+ costInCents : taskRun . rootTaskRun . costInCents ,
258+ baseCostInCents : taskRun . rootTaskRun . baseCostInCents ,
259+ durationMs : taskRun . rootTaskRun . usageDurationMs ,
260+ isTest : taskRun . rootTaskRun . isTest ,
261+ depth : taskRun . rootTaskRun . depth ,
262+ tags : taskRun . rootTaskRun . tags
263+ . map ( ( t ) => t . name )
264+ . sort ( ( a , b ) => a . localeCompare ( b ) ) ,
265+ ...ApiRetrieveRunPresenter . apiBooleanHelpersFromTaskRunStatus (
266+ taskRun . rootTaskRun . status
267+ ) ,
268+ }
269+ : undefined ,
270+ parent : taskRun . parentTaskRun
271+ ? {
272+ id : taskRun . parentTaskRun . friendlyId ,
273+ taskIdentifier : taskRun . parentTaskRun . taskIdentifier ,
274+ idempotencyKey : taskRun . parentTaskRun . idempotencyKey ?? undefined ,
275+ version : taskRun . parentTaskRun . lockedToVersion ?. version ,
276+ status : ApiRetrieveRunPresenter . apiStatusFromRunStatus (
277+ taskRun . parentTaskRun . status
278+ ) ,
279+ createdAt : taskRun . parentTaskRun . createdAt ,
280+ startedAt : taskRun . parentTaskRun . startedAt ?? undefined ,
281+ updatedAt : taskRun . parentTaskRun . updatedAt ,
282+ finishedAt : taskRun . parentTaskRun . completedAt ?? undefined ,
283+ expiredAt : taskRun . parentTaskRun . expiredAt ?? undefined ,
284+ delayedUntil : taskRun . parentTaskRun . delayUntil ?? undefined ,
285+ isRoot : taskRun . parentTaskRun . id === taskRun . rootTaskRun ?. id ,
286+ ttl : taskRun . parentTaskRun . ttl ?? undefined ,
287+ costInCents : taskRun . parentTaskRun . costInCents ,
288+ baseCostInCents : taskRun . parentTaskRun . baseCostInCents ,
289+ durationMs : taskRun . parentTaskRun . usageDurationMs ,
290+ isTest : taskRun . parentTaskRun . isTest ,
291+ depth : taskRun . parentTaskRun . depth ,
292+ tags : taskRun . parentTaskRun . tags
293+ . map ( ( t ) => t . name )
294+ . sort ( ( a , b ) => a . localeCompare ( b ) ) ,
295+ ...ApiRetrieveRunPresenter . apiBooleanHelpersFromTaskRunStatus (
296+ taskRun . parentTaskRun . status
297+ ) ,
298+ }
299+ : undefined ,
300+ children : taskRun . childRuns . map ( ( r ) => ( {
301+ id : r . friendlyId ,
302+ taskIdentifier : r . taskIdentifier ,
303+ idempotencyKey : r . idempotencyKey ?? undefined ,
304+ version : r . lockedToVersion ?. version ,
305+ triggerFunction : r . batch
306+ ? r . resumeParentOnCompletion
307+ ? "batchTriggerAndWait"
308+ : "batchTrigger"
309+ : r . resumeParentOnCompletion
310+ ? "triggerAndWait"
311+ : "trigger" ,
312+ batchId : r . batch ?. friendlyId ,
313+ status : ApiRetrieveRunPresenter . apiStatusFromRunStatus ( r . status ) ,
314+ createdAt : r . createdAt ,
315+ startedAt : r . startedAt ?? undefined ,
316+ updatedAt : r . updatedAt ,
317+ finishedAt : r . completedAt ?? undefined ,
318+ expiredAt : r . expiredAt ?? undefined ,
319+ delayedUntil : r . delayUntil ?? undefined ,
320+ ttl : r . ttl ?? undefined ,
321+ tags : r . tags . map ( ( t ) => t . name ) . sort ( ( a , b ) => a . localeCompare ( b ) ) ,
322+ costInCents : r . costInCents ,
323+ baseCostInCents : r . baseCostInCents ,
324+ durationMs : r . usageDurationMs ,
325+ depth : r . depth ,
326+ isTest : r . isTest ,
327+ ...ApiRetrieveRunPresenter . apiBooleanHelpersFromTaskRunStatus ( r . status ) ,
328+ } ) ) ,
329+ } ,
153330 } ;
154331 } ) ;
155332 }
@@ -225,6 +402,12 @@ export class ApiRetrieveRunPresenter extends BasePresenter {
225402 }
226403 }
227404
405+ static apiBooleanHelpersFromTaskRunStatus ( status : TaskRunStatus ) {
406+ return ApiRetrieveRunPresenter . apiBooleanHelpersFromRunStatus (
407+ ApiRetrieveRunPresenter . apiStatusFromRunStatus ( status )
408+ ) ;
409+ }
410+
228411 static apiBooleanHelpersFromRunStatus ( status : RunStatus ) {
229412 const isQueued = status === "QUEUED" || status === "WAITING_FOR_DEPLOY" || status === "DELAYED" ;
230413 const isExecuting = status === "EXECUTING" || status === "REATTEMPTING" || status === "FROZEN" ;
0 commit comments