From b80b937b5d6bde8940105df54cf13e5363ade0f2 Mon Sep 17 00:00:00 2001 From: Hao Zhe Date: Thu, 15 Oct 2026 02:22:46 +0800 Subject: [PATCH] fix(studio): load complete live session history --- web-studio/src/lib/sessions/api.test.ts | 6 +++++- web-studio/src/lib/sessions/api.ts | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/web-studio/src/lib/sessions/api.test.ts b/web-studio/src/lib/sessions/api.test.ts index fc88829ca5..5d6517dcbf 100644 --- a/web-studio/src/lib/sessions/api.test.ts +++ b/web-studio/src/lib/sessions/api.test.ts @@ -55,7 +55,7 @@ describe('fetchSessionMessages', () => { getSessionIdContextMock.mockReset() }) - it('combines completed archives with current context in chronological order', async () => { + it('combines completed archives with complete current history in chronological order', async () => { getSessionBySessionIdMock.mockReturnValue(response({ commit_count: 2 })) getSessionIdArchiveByArchiveIdMock .mockReturnValueOnce( @@ -77,6 +77,10 @@ describe('fetchSessionMessages', () => { const result = await fetchSessionMessages('session-1') expect(result.map(({ id }) => id)).toEqual(['1', '2', '3']) + expect(getSessionIdContextMock).toHaveBeenCalledWith({ + path: { session_id: 'session-1' }, + query: { token_budget: Number.MAX_SAFE_INTEGER }, + }) expect(getSessionIdArchiveByArchiveIdMock).toHaveBeenNthCalledWith(1, { path: { archive_id: 'archive_001', session_id: 'session-1' }, }) diff --git a/web-studio/src/lib/sessions/api.ts b/web-studio/src/lib/sessions/api.ts index 01d7cc5bc1..e0d4188073 100644 --- a/web-studio/src/lib/sessions/api.ts +++ b/web-studio/src/lib/sessions/api.ts @@ -123,6 +123,7 @@ function deduplicateMessages(messages: Message[]): Message[] { } const SESSION_ARCHIVE_CONCURRENCY = 4 +const COMPLETE_SESSION_HISTORY_TOKEN_BUDGET = Number.MAX_SAFE_INTEGER async function mapWithConcurrency( items: T[], @@ -164,6 +165,7 @@ export async function fetchSessionMessages( const context = await getOvResult( getSessionIdContext({ path: { session_id: sessionId }, + query: { token_budget: COMPLETE_SESSION_HISTORY_TOKEN_BUDGET }, }), )