Keep optimistic user message during replay
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user