@@ -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" ;
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 ,
139+ const originalRunId = await eventRepository . getSpanOriginalRunId (
140+ eventStore ,
141+ environmentId ,
127142 spanId ,
128143 environmentId ,
129- startCreatedAt : createdAt ,
130- endCreatedAt : completedAt ?? undefined ,
131- } ) ;
132-
133- if ( ! span ) {
134- return ;
135- }
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 ,
459+ const span = await eventRepository . getSpan (
460+ eventStore ,
461+ environmentId ,
436462 spanId ,
437463 environmentId ,
438- startCreatedAt : createdAt ,
439- endCreatedAt : completedAt ?? undefined ,
440- options : { includeDebugLogs : true } ,
441- } ) ;
464+ createdAt ,
465+ completedAt ?? undefined ,
466+ { includeDebugLogs : true }
467+ ) ;
442468
443469 if ( ! span ) {
444470 return ;
0 commit comments