@@ -65,7 +65,7 @@ import { useProject } from "~/hooks/useProject";
6565import { useReplaceLocation } from "~/hooks/useReplaceLocation" ;
6666import { Shortcut , useShortcutKeys } from "~/hooks/useShortcutKeys" ;
6767import { useUser } from "~/hooks/useUser" ;
68- import { RunPresenter } from "~/presenters/v3/RunPresenter.server" ;
68+ import { Run , RunPresenter } from "~/presenters/v3/RunPresenter.server" ;
6969import { requireUserId } from "~/services/session.server" ;
7070import { cn } from "~/utils/cn" ;
7171import { lerp } from "~/utils/lerp" ;
@@ -316,6 +316,7 @@ function TraceView({ run, trace, maximumLiveReloadingSetting, resizable }: Loade
316316 environmentType = { run . environment . type }
317317 shouldLiveReload = { shouldLiveReload }
318318 maximumLiveReloadingSetting = { maximumLiveReloadingSetting }
319+ rootRun = { run . rootTaskRun }
319320 />
320321 </ ResizablePanel >
321322 < ResizableHandle id = { resizableSettings . parent . handleId } />
@@ -438,6 +439,11 @@ type TasksTreeViewProps = {
438439 environmentType : RuntimeEnvironmentType ;
439440 shouldLiveReload : boolean ;
440441 maximumLiveReloadingSetting : number ;
442+ rootRun : {
443+ friendlyId : string ;
444+ taskIdentifier : string ;
445+ spanId : string ;
446+ } | null ;
441447} ;
442448
443449function TasksTreeView ( {
@@ -451,6 +457,7 @@ function TasksTreeView({
451457 environmentType,
452458 shouldLiveReload,
453459 maximumLiveReloadingSetting,
460+ rootRun,
454461} : TasksTreeViewProps ) {
455462 const [ filterText , setFilterText ] = useState ( "" ) ;
456463 const [ errorsOnly , setErrorsOnly ] = useState ( false ) ;
@@ -517,8 +524,14 @@ function TasksTreeView({
517524 >
518525 < div className = "grid h-full grid-rows-[2rem_1fr] overflow-hidden" >
519526 < div className = "flex items-center pr-2" >
520- { parentRunFriendlyId ? (
521- < ShowParentLink runFriendlyId = { parentRunFriendlyId } />
527+ { rootRun ? (
528+ < ShowParentLink
529+ runFriendlyId = { rootRun . friendlyId }
530+ isRoot = { true }
531+ spanId = { rootRun . spanId }
532+ />
533+ ) : parentRunFriendlyId ? (
534+ < ShowParentLink runFriendlyId = { parentRunFriendlyId } isRoot = { false } />
522535 ) : (
523536 < Paragraph variant = "small" className = "flex-1 text-charcoal-500" >
524537 This is the root task
@@ -599,7 +612,9 @@ function TasksTreeView({
599612 className = "h-4 min-h-4 w-4 min-w-4"
600613 />
601614 < NodeText node = { node } />
602- { node . data . isRoot && < Badge variant = "outline-rounded" > Root</ Badge > }
615+ { node . data . isRoot && ! rootRun && (
616+ < Badge variant = "outline-rounded" > Root</ Badge >
617+ ) }
603618 </ div >
604619 < div className = "flex items-center gap-1" >
605620 < NodeStatusIcon node = { node } />
@@ -954,24 +969,34 @@ function TaskLine({ isError, isSelected }: { isError: boolean; isSelected: boole
954969 return < div className = { cn ( "h-8 w-2 border-r border-grid-bright" ) } /> ;
955970}
956971
957- function ShowParentLink ( { runFriendlyId } : { runFriendlyId : string } ) {
972+ function ShowParentLink ( {
973+ runFriendlyId,
974+ spanId,
975+ isRoot,
976+ } : {
977+ runFriendlyId : string ;
978+ spanId ?: string ;
979+ isRoot : boolean ;
980+ } ) {
958981 const [ mouseOver , setMouseOver ] = useState ( false ) ;
959982 const organization = useOrganization ( ) ;
960983 const project = useProject ( ) ;
961984 const { spanParam } = useParams ( ) ;
962985
986+ const span = spanId ? spanId : spanParam ;
987+
963988 return (
964989 < LinkButton
965990 variant = "minimal/medium"
966991 to = {
967- spanParam
992+ span
968993 ? v3RunSpanPath (
969994 organization ,
970995 project ,
971996 {
972997 friendlyId : runFriendlyId ,
973998 } ,
974- { spanId : spanParam }
999+ { spanId : span }
9751000 )
9761001 : v3RunPath ( organization , project , {
9771002 friendlyId : runFriendlyId ,
@@ -993,7 +1018,7 @@ function ShowParentLink({ runFriendlyId }: { runFriendlyId: string }) {
9931018 variant = "small"
9941019 className = { cn ( mouseOver ? "text-indigo-500" : "text-charcoal-500" ) }
9951020 >
996- Show parent items
1021+ { isRoot ? " Show root run" : "Show parent run" }
9971022 </ Paragraph >
9981023 </ LinkButton >
9991024 ) ;
0 commit comments