fix(workbench): use single timing source for code agent duration (#2048)
This commit is contained in:
@@ -393,25 +393,17 @@ function ceilDisplayDurationSecond(ms: number): number {
|
||||
}
|
||||
|
||||
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;
|
||||
void message;
|
||||
const messageHasTerminalTimestamp = timestampMs(timing?.finishedAt) !== 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;
|
||||
const traceTiming = trace?.timing as Record<string, unknown> | null | undefined;
|
||||
const startedAt = timestampMs(timing?.startedAt ?? message.startedAt ?? traceTiming?.startedAt ?? trace?.startedAt);
|
||||
const endedAt = timestampMs(timing?.finishedAt ?? message.finishedAt ?? messageRecord.completedAt ?? traceTiming?.finishedAt ?? trace?.finishedAt ?? traceTiming?.completedAt ?? trace?.completedAt);
|
||||
void message;
|
||||
const startedAt = timestampMs(timing?.startedAt);
|
||||
const endedAt = timestampMs(timing?.finishedAt);
|
||||
if (startedAt === null || endedAt === null || endedAt < startedAt) return null;
|
||||
return Math.trunc(endedAt - startedAt);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user