From edb72b447b17ed175c0650d946e5df6e7053e9b2 Mon Sep 17 00:00:00 2001 From: DoSun Date: Tue, 12 May 2026 16:46:26 +0800 Subject: [PATCH] fix(server): return latest N messages instead of first N in messages endpoint --- src/server/transcriptReader.ts | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/server/transcriptReader.ts b/src/server/transcriptReader.ts index 7d00a82d4..e7fcf231d 100644 --- a/src/server/transcriptReader.ts +++ b/src/server/transcriptReader.ts @@ -184,16 +184,21 @@ export async function readSessionMessages(opts: { }) } - const startIndex = cursorIndex >= 0 ? cursorIndex + 1 : 0 - const sliced = allMessages.slice(startIndex) - const limited = opts.limit ? sliced.slice(0, opts.limit) : sliced + let sliced: SessionMessage[] + if (cursorIndex >= 0) { + sliced = allMessages.slice(cursorIndex + 1) + } else if (opts.limit) { + sliced = allMessages.slice(-opts.limit) + } else { + sliced = allMessages + } const nextCursor = - opts.limit && sliced.length > opts.limit - ? sliced[opts.limit]?.uuid + opts.limit && allMessages.length > sliced.length + ? sliced[0]?.uuid : undefined - return { messages: limited, nextCursor } + return { messages: sliced, nextCursor } } export async function readSessionTodos(opts: {