Fix running progress label: avoid stale node name between iterations

Made-with: Cursor
This commit is contained in:
Xin Wang
2026-04-18 23:03:13 +08:00
parent cb27580711
commit 950604e0c7

View File

@@ -1219,19 +1219,28 @@ export default function App() {
<Badge variant="secondary" className="bg-[#f8fafc] text-[#94a3b8] border border-[#e2e8f0] font-bold text-[9px] uppercase tracking-wider px-2 py-0.5 rounded-md">Pending</Badge> <Badge variant="secondary" className="bg-[#f8fafc] text-[#94a3b8] border border-[#e2e8f0] font-bold text-[9px] uppercase tracking-wider px-2 py-0.5 rounded-md">Pending</Badge>
) : (() => { ) : (() => {
const lastResult = testCase.results[testCase.results.length - 1]; const lastResult = testCase.results[testCase.results.length - 1];
const runningStep = testCase.status === 'running' && lastResult?.trace?.find(s => s.status === 'running'); // Only surface the node label while a step is actively running,
const lastFinished = testCase.status === 'running' && lastResult?.trace?.slice().reverse().find(s => s.status !== 'running'); // so it clears between iterations instead of showing a stale one.
const currentNodeLabel = runningStep?.title || lastFinished?.title; const runningStep =
testCase.status === 'running'
? lastResult?.trace?.find(s => s.status === 'running')
: undefined;
const done = testCase.results.length;
const total = testCase.times;
return ( return (
<div className="flex flex-col gap-1.5 min-w-24"> <div className="flex flex-col gap-1.5 min-w-24">
<Progress value={testCase.progress} className="h-1.5 bg-[#f1f5f9] [&>div]:bg-[#0f172a] rounded-full" /> <Progress value={testCase.progress} className="h-1.5 bg-[#f1f5f9] [&>div]:bg-[#0f172a] rounded-full" />
<span className="text-[9px] font-bold text-[#64748b] uppercase tracking-tighter truncate max-w-[180px]"> <span className="text-[9px] font-bold text-[#64748b] uppercase tracking-tighter">
{testCase.status === 'running' {testCase.status === 'running'
? (currentNodeLabel ? `In Progress (${done}/${total})`
? `Node · ${currentNodeLabel}` : `Complete (${total}/${total})`}
: `In Progress (${testCase.results.length}/${testCase.times})`)
: `Complete (${testCase.times}/${testCase.times})`}
</span> </span>
{runningStep?.title && (
<span className="flex items-center gap-1 text-[9px] text-slate-400 max-w-[200px]">
<Activity className="h-2.5 w-2.5 shrink-0" />
<span className="truncate">{runningStep.title}</span>
</span>
)}
</div> </div>
); );
})()} })()}