Improve active run timing and turn limits

This commit is contained in:
武阳
2026-05-07 17:51:23 +08:00
parent d57570e527
commit b1868a6401
7 changed files with 68 additions and 24 deletions
@@ -426,7 +426,12 @@ export function toReplayRepository(
role: message.role,
parts,
...(message.role === "assistant"
? { metadata: { sessionId: session.session_id ?? fallbackSessionId } }
? {
metadata: {
sessionId: session.session_id ?? fallbackSessionId,
elapsedMs: normalizeElapsedMs(message.metadata?.elapsed_ms),
},
}
: {}),
} as UIMessage;
const threadMessage = {
@@ -442,7 +447,10 @@ export function toReplayRepository(
unstable_annotations: [],
unstable_data: [],
steps: [],
custom: { sessionId: session.session_id ?? fallbackSessionId },
custom: {
sessionId: session.session_id ?? fallbackSessionId,
elapsedMs: normalizeElapsedMs(message.metadata?.elapsed_ms),
},
},
}
: { metadata: { custom: {} } }),
@@ -536,8 +544,9 @@ function buildActiveRunParts(runStatus: ClawActiveRunStatus) {
? "当前会话已有任务在执行,本轮正在排队。"
: runStatus.current_stage || "后端正在执行这个会话。";
const reasoningText = eventLines.length ? eventLines.join("\n") : fallback;
const runStartedAtMs = normalizeRunTimestampMs(runStatus.started_at);
return [
{ type: "reasoning", text: reasoningText },
{ type: "reasoning", text: reasoningText, runStartedAtMs },
...buildRunToolParts(runStatus.events ?? []),
];
}
@@ -694,6 +703,11 @@ function normalizeRunTimestampMs(value: unknown) {
return value < 10_000_000_000 ? Math.round(value * 1000) : Math.round(value);
}
function normalizeElapsedMs(value: unknown) {
if (typeof value !== "number" || !Number.isFinite(value)) return undefined;
return Math.max(0, Math.round(value));
}
function findLastAssistantContentIndex(messages: readonly ClawStoredMessage[]) {
for (let index = messages.length - 1; index >= 0; index -= 1) {
const message = messages[index];