Keep optimistic user message during replay

This commit is contained in:
wuyang6
2026-06-12 20:07:42 +08:00
parent 611284b27a
commit c3caa4a1e3
2 changed files with 74 additions and 8 deletions
+8
View File
@@ -74,6 +74,9 @@ async function fetchSessionStateSnapshot<TSession, TRun>(
.sort((left, right) => (left.seq ?? 0) - (right.seq ?? 0))
.map((entry) => entry.message)
.filter((message) => Boolean(message));
if (orderedMessages.length === 0 && !isActiveRunLike(payload.run)) {
return null;
}
const session = {
...(payload.session ?? {}),
session_id: sessionId,
@@ -157,6 +160,11 @@ function sessionReplaySignature(session: unknown, runStatusValue: unknown) {
].join("|");
}
function isActiveRunLike(value: unknown) {
if (!isObject(value)) return false;
return value.status === "queued" || value.status === "running";
}
function isObject(value: unknown): value is Record<string, unknown> {
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
}