Fix session file and elapsed replay state

This commit is contained in:
武阳
2026-05-08 17:45:32 +08:00
parent 1af0a6f0ea
commit b5a4c208d5
4 changed files with 108 additions and 20 deletions
@@ -1320,7 +1320,7 @@ const ActivityChainSummary: FC<{
? Math.max(0, Math.round(value))
: null;
});
const [elapsedMs, setElapsedMs] = useState(storedElapsedMs ?? 0);
const [elapsedMs, setElapsedMs] = useState<number | null>(storedElapsedMs);
const label = useAuiState((s) => {
const message = s.message;
const status =
@@ -1338,7 +1338,7 @@ const ActivityChainSummary: FC<{
useEffect(() => {
if (!active) {
if (storedElapsedMs !== null) setElapsedMs(storedElapsedMs);
setElapsedMs(storedElapsedMs);
return;
}
const startedAt =
@@ -1392,7 +1392,7 @@ function findNumberInActivityParts(
function summarizeActivityChainLabel(
content: readonly ActivitySummaryPart[],
status: string | undefined,
elapsedMs = 0,
elapsedMs: number | null = null,
) {
const toolParts = content.filter((part) => part.type === "tool-call");
const runningTool = toolParts.findLast((part) => part.result === undefined);
@@ -1412,7 +1412,7 @@ function summarizeActivityChainLabel(
(isGenericActivityLine(lastReasoningLine) ? "" : lastReasoningLine);
if (status === "running") {
const elapsed = `用时 ${formatActivityDuration(elapsedMs)}`;
const elapsed = `用时 ${formatActivityDuration(elapsedMs ?? 0)}`;
if (activeDetail) {
return `${compactActivityLabel(activeDetail, 15)}${elapsed}`;
}
@@ -1424,8 +1424,10 @@ function summarizeActivityChainLabel(
15,
);
const finalDuration = extractDurationLabel(lastReasoningLine);
const elapsed = finalDuration || formatActivityDuration(elapsedMs);
return `${label},用时 ${elapsed}`;
const elapsed =
finalDuration ||
(elapsedMs === null ? "" : formatActivityDuration(elapsedMs));
return elapsed ? `${label},用时 ${elapsed}` : label;
}
function getToolStageNote(value: unknown) {