Merge pull request #1773 from pikasTech/fix/1770-turn-timing-authority

fix: keep turn timing independent from sessions
This commit is contained in:
Lyon
2026-06-21 03:08:41 +08:00
committed by GitHub
+5 -6
View File
@@ -48,7 +48,10 @@ export function createWorkbenchTurnTimingProjection({ result = null, session = n
const firstEvent = events[0] ?? null;
const lastEvent = traceLastEvent(trace);
const terminalEvent = terminalTraceEventForTiming(events);
const directTiming = objectValue(result?.timing) ?? objectValue(trace?.timing) ?? objectValue(session?.timing) ?? null;
// Session lifecycle timing is not turn timing authority. Mixing session
// startedAt/createdAt with turn terminal duration makes the running timer
// jump backwards when the turn completes.
const directTiming = objectValue(result?.timing) ?? objectValue(trace?.timing) ?? null;
const agentRun = objectValue(result?.agentRun ?? trace?.agentRun);
const traceSummary = objectValue(result?.traceSummary ?? trace?.traceSummary);
const sessionSnapshot = objectValue(session?.session);
@@ -63,11 +66,7 @@ export function createWorkbenchTurnTimingProjection({ result = null, session = n
agentRun?.startedAt,
firstEvent?.startedAt,
firstEvent?.createdAt,
firstEvent?.occurredAt,
session?.startedAt,
session?.createdAt,
sessionSnapshot?.startedAt,
sessionSnapshot?.createdAt
firstEvent?.occurredAt
);
const lastEventAt = firstTimestamp(
result?.lastEventAt,