Merge pull request #1890 from pikasTech/fix-1889-workbench-running-timing-authority
修复 running turn 计时源被 trace hydration 拉跳
This commit is contained in:
@@ -447,7 +447,14 @@ function mergeTraceSnapshots(previous: TraceSnapshot | null, next: TraceSnapshot
|
||||
}
|
||||
|
||||
function traceSnapshotWithTurnStatus(trace: TraceSnapshot, turn: TraceSnapshot): TraceSnapshot {
|
||||
const timing = mergeTraceTimingProjection(trace, turn, { preserveVisibleTerminalDuration: traceTimingWasRunning(trace) && traceTimingIsTerminal(turn) });
|
||||
const turnTiming = traceTimingCandidate(turn);
|
||||
const turnIsTerminal = traceTimingIsTerminal(turn) || isTerminalStatus(turn.status);
|
||||
// Running card timing belongs to the turn status projection. Trace pages may
|
||||
// hydrate older detail rows later; they must not move the visible running
|
||||
// card's startedAt/lastEventAt source and create multi-second jumps.
|
||||
const timing = !turnIsTerminal && turnTiming
|
||||
? turnTiming
|
||||
: mergeTraceTimingProjection(trace, turn, { preserveVisibleTerminalDuration: traceTimingWasRunning(trace) && traceTimingIsTerminal(turn) });
|
||||
return {
|
||||
...trace,
|
||||
traceId: trace.traceId ?? turn.traceId,
|
||||
|
||||
Reference in New Issue
Block a user