fix(workbench): ignore unsealed terminal durations (#1994)
This commit is contained in:
@@ -307,13 +307,27 @@ function messageTimingForDisplay(message: ChatMessage): ChatMessage["timing"] {
|
||||
}
|
||||
|
||||
function terminalMessageDurationMs(message: ChatMessage, timing: ChatMessage["timing"]): number | null {
|
||||
const recorded = maxPositiveDurationMs(message.durationMs, timing?.durationMs, message.runnerTrace?.durationMs, message.runnerTrace?.timing?.durationMs);
|
||||
if (recorded !== null) return recorded;
|
||||
const elapsed = elapsedTerminalDurationMs(message, timing);
|
||||
if (elapsed !== null && elapsed > 0) return elapsed;
|
||||
const recorded = sealedTerminalRecordedDurationMs(message, timing);
|
||||
if (recorded !== null) return recorded;
|
||||
return null;
|
||||
}
|
||||
|
||||
function sealedTerminalRecordedDurationMs(message: ChatMessage, timing: ChatMessage["timing"]): number | null {
|
||||
const messageRecord = message as Record<string, unknown>;
|
||||
const trace = message.runnerTrace as Record<string, unknown> | null | undefined;
|
||||
const traceTiming = trace?.timing as Record<string, unknown> | null | undefined;
|
||||
const messageHasTerminalTimestamp = timestampMs(timing?.finishedAt ?? message.finishedAt ?? messageRecord.completedAt) !== null;
|
||||
const traceHasTerminalTimestamp = timestampMs(traceTiming?.finishedAt ?? trace?.finishedAt ?? traceTiming?.completedAt ?? trace?.completedAt) !== null;
|
||||
return maxPositiveDurationMs(
|
||||
messageHasTerminalTimestamp ? message.durationMs : null,
|
||||
messageHasTerminalTimestamp ? timing?.durationMs : null,
|
||||
traceHasTerminalTimestamp ? message.runnerTrace?.durationMs : null,
|
||||
traceHasTerminalTimestamp ? message.runnerTrace?.timing?.durationMs : null
|
||||
);
|
||||
}
|
||||
|
||||
function elapsedTerminalDurationMs(message: ChatMessage, timing: ChatMessage["timing"]): number | null {
|
||||
const messageRecord = message as Record<string, unknown>;
|
||||
const trace = message.runnerTrace as Record<string, unknown> | null | undefined;
|
||||
|
||||
Reference in New Issue
Block a user