@@ -30,7 +30,6 @@ import {
3030 ChevronUp ,
3131 ChevronLeft ,
3232 ChevronRight ,
33- Ban ,
3433 RotateCcw ,
3534 Loader2 ,
3635 Microscope ,
@@ -60,6 +59,7 @@ import {
6059import { HarborStageTimeline } from "@/components/harbor-stage-timeline" ;
6160import { HarborStageBadge } from "@/components/harbor-stage-badge" ;
6261import { QueueKeyIcon } from "@/components/queue-key-icon" ;
62+ import { StatusIcon } from "@/components/status-icon" ;
6363
6464interface TrialDetailPanelProps {
6565 isOpen : boolean ;
@@ -522,10 +522,10 @@ export function TrialDetailPanel({
522522 groupTrial . error_message ,
523523 ) ;
524524 const groupConfig = STATUS_CONFIG [ groupStatus ] ;
525- const badgeLabel =
526- groupStatus === "partial"
527- ? formatPartialRewardBadgeValue ( groupTrial . reward )
528- : groupConfig . symbol ;
525+ const isPartial = groupStatus === "partial" ;
526+ const partialLabel = isPartial
527+ ? formatPartialRewardBadgeValue ( groupTrial . reward )
528+ : null ;
529529 const isActive = index === currentGroupTrialIndex ;
530530 return (
531531 < Button
@@ -535,26 +535,26 @@ export function TrialDetailPanel({
535535 size = "icon"
536536 onClick = { ( ) => navigateToGroupTrial ( index ) }
537537 className = { cn (
538- "flex h-5 w-5 items-center justify-center rounded-sm border p-0 font-mono font-semibold leading-none transition" ,
539- groupStatus === "partial"
540- ? "text-[8px] tracking-[-0.03em]"
541- : "text-sm" ,
538+ "flex h-5 w-5 shrink-0 items-center justify-center rounded-sm border p-0 leading-none transition hover:opacity-90" ,
542539 groupConfig . matrixClass ,
540+ isPartial
541+ ? "font-mono text-[8px] font-semibold tracking-[-0.03em]"
542+ : "" ,
543543 isActive
544544 ? "ring-2 ring-primary/60 ring-offset-1 ring-offset-background"
545545 : "" ,
546546 ) }
547- aria-label = { `Trial ${ index + 1 } ` }
547+ style = { getRewardStyle ( groupTrial . reward ) }
548+ aria-label = { `Trial ${ index + 1 } ${ groupConfig . shortLabel } ` }
548549 title = { `${ groupConfig . shortLabel } • Trial ${ index + 1 } ` }
549550 >
550- { groupStatus === "pending" ||
551- groupStatus === "queued" ||
552- groupStatus === "running" ? (
553- < Loader2 className = "h-3.5 w-3.5" />
554- ) : groupStatus === "harness-error" ? (
555- < Ban className = "h-3.5 w-3.5" />
551+ { isPartial ? (
552+ partialLabel
556553 ) : (
557- badgeLabel
554+ < StatusIcon
555+ status = { groupStatus }
556+ className = "h-3.5 w-3.5"
557+ />
558558 ) }
559559 </ Button >
560560 ) ;
@@ -950,7 +950,11 @@ export function TrialDetailPanel({
950950 value = "trajectory"
951951 className = "m-0 h-full overflow-auto p-0"
952952 >
953- < TrajectoryViewer trialId = { trial . id } apiBaseUrl = { apiBaseUrl } />
953+ < TrajectoryViewer
954+ trialId = { trial . id }
955+ hasTrajectory = { trial . has_trajectory }
956+ apiBaseUrl = { apiBaseUrl }
957+ />
954958 </ TabsContent >
955959 </ div >
956960 </ Tabs >
0 commit comments