Fix session file and elapsed replay state
This commit is contained in:
@@ -414,6 +414,10 @@ export function toReplayRepository(
|
||||
message.role !== "assistant" ||
|
||||
!toolParts.length ||
|
||||
index === lastAssistantContentIndex;
|
||||
const elapsedMs =
|
||||
message.role === "assistant"
|
||||
? resolveReplayElapsedMs(replayMessages, index)
|
||||
: undefined;
|
||||
const parts = (
|
||||
message.role === "assistant" && toolParts.length
|
||||
? shouldShowAssistantText
|
||||
@@ -429,7 +433,7 @@ export function toReplayRepository(
|
||||
? {
|
||||
metadata: {
|
||||
sessionId: session.session_id ?? fallbackSessionId,
|
||||
elapsedMs: normalizeElapsedMs(message.metadata?.elapsed_ms),
|
||||
elapsedMs,
|
||||
},
|
||||
}
|
||||
: {}),
|
||||
@@ -449,7 +453,7 @@ export function toReplayRepository(
|
||||
steps: [],
|
||||
custom: {
|
||||
sessionId: session.session_id ?? fallbackSessionId,
|
||||
elapsedMs: normalizeElapsedMs(message.metadata?.elapsed_ms),
|
||||
elapsedMs,
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -708,6 +712,22 @@ function normalizeElapsedMs(value: unknown) {
|
||||
return Math.max(0, Math.round(value));
|
||||
}
|
||||
|
||||
function resolveReplayElapsedMs(
|
||||
messages: readonly ClawStoredMessage[],
|
||||
index: number,
|
||||
) {
|
||||
const current = normalizeElapsedMs(messages[index]?.metadata?.elapsed_ms);
|
||||
if (current !== undefined) return current;
|
||||
for (let i = index + 1; i < messages.length; i += 1) {
|
||||
const message = messages[i];
|
||||
if (message?.role === "user") return undefined;
|
||||
if (message?.role !== "assistant") continue;
|
||||
const elapsedMs = normalizeElapsedMs(message.metadata?.elapsed_ms);
|
||||
if (elapsedMs !== undefined) return elapsedMs;
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
function findLastAssistantContentIndex(messages: readonly ClawStoredMessage[]) {
|
||||
for (let index = messages.length - 1; index >= 0; index -= 1) {
|
||||
const message = messages[index];
|
||||
|
||||
Reference in New Issue
Block a user