fix(chat): translate session replay cursors
Memind CI / Test, build, and release guards (pull_request) Successful in 2m55s
Memind CI / Test, build, and release guards (pull_request) Successful in 2m55s
This commit is contained in:
+18
-16
@@ -8,6 +8,17 @@ function safeJsonParse(value, fallback = null) {
|
||||
}
|
||||
}
|
||||
|
||||
function mapEventRow(row) {
|
||||
if (!row) return null;
|
||||
return {
|
||||
id: row.id,
|
||||
eventType: row.event_type,
|
||||
payload: safeJsonParse(row.payload_json, null),
|
||||
upstreamEventId: row.upstream_event_id ?? null,
|
||||
createdAt: Number(row.created_at),
|
||||
};
|
||||
}
|
||||
|
||||
export function createSessionStreamStore({ pool }) {
|
||||
if (!pool) {
|
||||
throw new Error('createSessionStreamStore requires pool');
|
||||
@@ -52,9 +63,10 @@ export function createSessionStreamStore({ pool }) {
|
||||
|
||||
let afterCreatedAt = null;
|
||||
let cursorMiss = false;
|
||||
let cursorEvent = null;
|
||||
if (afterEventId) {
|
||||
const [cursorRows] = await pool.query(
|
||||
`SELECT created_at
|
||||
`SELECT id, event_type, payload_json, upstream_event_id, created_at
|
||||
FROM h5_session_stream_events
|
||||
WHERE id = ? AND agent_session_id = ? AND user_id = ?
|
||||
LIMIT 1`,
|
||||
@@ -63,7 +75,8 @@ export function createSessionStreamStore({ pool }) {
|
||||
if (!cursorRows[0]) {
|
||||
cursorMiss = true;
|
||||
} else {
|
||||
afterCreatedAt = Number(cursorRows[0].created_at);
|
||||
cursorEvent = mapEventRow(cursorRows[0]);
|
||||
afterCreatedAt = cursorEvent.createdAt;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -85,14 +98,9 @@ export function createSessionStreamStore({ pool }) {
|
||||
);
|
||||
|
||||
return {
|
||||
events: rows.map((row) => ({
|
||||
id: row.id,
|
||||
eventType: row.event_type,
|
||||
payload: safeJsonParse(row.payload_json, null),
|
||||
upstreamEventId: row.upstream_event_id ?? null,
|
||||
createdAt: Number(row.created_at),
|
||||
})),
|
||||
events: rows.map(mapEventRow),
|
||||
cursorMiss,
|
||||
cursorEvent,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -107,13 +115,7 @@ export function createSessionStreamStore({ pool }) {
|
||||
);
|
||||
const row = rows[0];
|
||||
if (!row) return null;
|
||||
return {
|
||||
id: row.id,
|
||||
eventType: row.event_type,
|
||||
payload: safeJsonParse(row.payload_json, null),
|
||||
upstreamEventId: row.upstream_event_id ?? null,
|
||||
createdAt: Number(row.created_at),
|
||||
};
|
||||
return mapEventRow(row);
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user