@@ -10,21 +10,23 @@ import {
1010import { AttemptId , getMaxDuration , parseTraceparent } from "@trigger.dev/core/v3/isomorphic" ;
1111import { RUNNING_STATUSES } from "~/components/runs/v3/TaskRunStatus" ;
1212import { logger } from "~/services/logger.server" ;
13- import { eventRepository , rehydrateAttribute } from "~/v3/eventRepository.server" ;
13+ import { rehydrateAttribute } from "~/v3/eventRepository /eventRepository.server" ;
1414import { machinePresetFromRun } from "~/v3/machinePresets.server" ;
1515import { getTaskEventStoreTableForRun , type TaskEventStoreTable } from "~/v3/taskEventStore.server" ;
1616import { isFailedRunStatus , isFinalRunStatus } from "~/v3/taskStatus" ;
1717import { BasePresenter } from "./basePresenter.server" ;
1818import { WaitpointPresenter } from "./WaitpointPresenter.server" ;
1919import { engine } from "~/v3/runEngine.server" ;
20+ import { resolveEventRepositoryForStore } from "~/v3/eventRepository/index.server" ;
21+ import { IEventRepository , SpanDetail } from "~/v3/eventRepository/eventRepository.types" ;
2022
2123type Result = Awaited < ReturnType < SpanPresenter [ "call" ] > > ;
2224export type Span = NonNullable < NonNullable < Result > [ "span" ] > ;
2325export type SpanRun = NonNullable < NonNullable < Result > [ "run" ] > ;
2426type FindRunResult = NonNullable <
2527 Awaited < ReturnType < InstanceType < typeof SpanPresenter > [ "findRun" ] > >
2628> ;
27- type GetSpanResult = NonNullable < Awaited < ReturnType < ( typeof eventRepository ) [ "getSpan" ] > > > ;
29+ type GetSpanResult = SpanDetail ;
2830
2931export class SpanPresenter extends BasePresenter {
3032 public async call ( {
@@ -74,14 +76,20 @@ export class SpanPresenter extends BasePresenter {
7476 return ;
7577 }
7678
79+ const { traceId } = parentRun ;
80+
81+ const eventRepository = resolveEventRepositoryForStore ( parentRun . taskEventStore ) ;
82+
7783 const eventStore = getTaskEventStoreTableForRun ( parentRun ) ;
7884
7985 const run = await this . getRun ( {
8086 eventStore,
81- environmentId : parentRun . runtimeEnvironmentId ,
87+ traceId,
88+ eventRepository,
8289 spanId,
8390 createdAt : parentRun . createdAt ,
8491 completedAt : parentRun . completedAt ,
92+ environmentId : parentRun . runtimeEnvironmentId ,
8593 } ) ;
8694 if ( run ) {
8795 return {
@@ -93,10 +101,12 @@ export class SpanPresenter extends BasePresenter {
93101 const span = await this . #getSpan( {
94102 eventStore,
95103 spanId,
104+ traceId,
96105 environmentId : parentRun . runtimeEnvironmentId ,
97106 projectId : parentRun . projectId ,
98107 createdAt : parentRun . createdAt ,
99108 completedAt : parentRun . completedAt ,
109+ eventRepository,
100110 } ) ;
101111
102112 if ( ! span ) {
@@ -112,29 +122,30 @@ export class SpanPresenter extends BasePresenter {
112122 async getRun ( {
113123 eventStore,
114124 environmentId,
125+ traceId,
126+ eventRepository,
115127 spanId,
116128 createdAt,
117129 completedAt,
118130 } : {
119131 eventStore : TaskEventStoreTable ;
120132 environmentId : string ;
133+ traceId : string ;
134+ eventRepository : IEventRepository ;
121135 spanId : string ;
122136 createdAt : Date ;
123137 completedAt : Date | null ;
124138 } ) {
125- const span = await eventRepository . getSpan ( {
126- storeTable : eventStore ,
127- spanId,
139+ const originalRunId = await eventRepository . getSpanOriginalRunId (
140+ eventStore ,
128141 environmentId ,
129- startCreatedAt : createdAt ,
130- endCreatedAt : completedAt ?? undefined ,
131- } ) ;
132-
133- if ( ! span ) {
134- return ;
135- }
142+ spanId ,
143+ traceId ,
144+ createdAt ,
145+ completedAt ?? undefined
146+ ) ;
136147
137- const run = await this . findRun ( { span , spanId } ) ;
148+ const run = await this . findRun ( { originalRunId , spanId, environmentId } ) ;
138149
139150 if ( ! run ) {
140151 return ;
@@ -259,7 +270,7 @@ export class SpanPresenter extends BasePresenter {
259270 workerQueue : run . workerQueue ,
260271 traceId : run . traceId ,
261272 spanId : run . spanId ,
262- isCached : ! ! span . originalRun ,
273+ isCached : ! ! originalRunId ,
263274 machinePreset : machine ?. name ,
264275 externalTraceId,
265276 } ;
@@ -294,7 +305,15 @@ export class SpanPresenter extends BasePresenter {
294305 } ;
295306 }
296307
297- async findRun ( { span, spanId } : { span : GetSpanResult ; spanId : string } ) {
308+ async findRun ( {
309+ originalRunId,
310+ spanId,
311+ environmentId,
312+ } : {
313+ originalRunId ?: string ;
314+ spanId : string ;
315+ environmentId : string ;
316+ } ) {
298317 const run = await this . _replica . taskRun . findFirst ( {
299318 select : {
300319 id : true ,
@@ -404,12 +423,14 @@ export class SpanPresenter extends BasePresenter {
404423 } ,
405424 } ,
406425 } ,
407- where : span . originalRun
426+ where : originalRunId
408427 ? {
409- friendlyId : span . originalRun ,
428+ friendlyId : originalRunId ,
429+ runtimeEnvironmentId : environmentId ,
410430 }
411431 : {
412432 spanId,
433+ runtimeEnvironmentId : environmentId ,
413434 } ,
414435 } ) ;
415436
@@ -418,27 +439,32 @@ export class SpanPresenter extends BasePresenter {
418439
419440 async #getSpan( {
420441 eventStore,
442+ eventRepository,
443+ traceId,
421444 spanId,
422445 environmentId,
423446 projectId,
424447 createdAt,
425448 completedAt,
426449 } : {
450+ eventRepository : IEventRepository ;
451+ traceId : string ;
427452 spanId : string ;
428453 environmentId : string ;
429454 projectId : string ;
430455 eventStore : TaskEventStoreTable ;
431456 createdAt : Date ;
432457 completedAt : Date | null ;
433458 } ) {
434- const span = await eventRepository . getSpan ( {
435- storeTable : eventStore ,
436- spanId,
459+ const span = await eventRepository . getSpan (
460+ eventStore ,
437461 environmentId ,
438- startCreatedAt : createdAt ,
439- endCreatedAt : completedAt ?? undefined ,
440- options : { includeDebugLogs : true } ,
441- } ) ;
462+ spanId ,
463+ traceId ,
464+ createdAt ,
465+ completedAt ?? undefined ,
466+ { includeDebugLogs : true }
467+ ) ;
442468
443469 if ( ! span ) {
444470 return ;
@@ -451,23 +477,29 @@ export class SpanPresenter extends BasePresenter {
451477 spanId : true ,
452478 createdAt : true ,
453479 number : true ,
454- lockedToVersion : {
455- select : {
456- version : true ,
457- } ,
458- } ,
480+ taskVersion : true ,
459481 } ,
460482 where : {
461483 parentSpanId : spanId ,
462484 } ,
463485 } ) ;
464486
465487 const data = {
466- ...span ,
488+ spanId : span . spanId ,
489+ parentId : span . parentId ,
490+ message : span . message ,
491+ isError : span . isError ,
492+ isPartial : span . isPartial ,
493+ isCancelled : span . isCancelled ,
494+ level : span . level ,
495+ startTime : span . startTime ,
496+ duration : span . duration ,
467497 events : span . events ,
498+ style : span . style ,
468499 properties : span . properties ? JSON . stringify ( span . properties , null , 2 ) : undefined ,
500+ entity : span . entity ,
501+ metadata : span . metadata ,
469502 triggeredRuns,
470- showActionBar : span . show ?. actions === true ,
471503 } ;
472504
473505 switch ( span . entity . type ) {
0 commit comments