diff --git a/src/app/api/v2/ai/admin/agent/sessions/route.ts b/src/app/api/v2/ai/admin/agent/sessions/route.ts index acfc6390..6601661f 100644 --- a/src/app/api/v2/ai/admin/agent/sessions/route.ts +++ b/src/app/api/v2/ai/admin/agent/sessions/route.ts @@ -31,6 +31,7 @@ import AgentAdminService from 'server/services/agent/AdminService'; * user or assistant message. Empty sessions and system-event-only sessions are excluded. * Sessions remain visible while waiting for an assistant response to a user's first message. * Results can be filtered by status, repository, user, and build UUID. + * Sessions are sorted newest first by creation time. * tags: * - Agent Admin * operationId: getAdminAgentSessions diff --git a/src/server/services/agent/AdminService.ts b/src/server/services/agent/AdminService.ts index 990c983f..19949c7d 100644 --- a/src/server/services/agent/AdminService.ts +++ b/src/server/services/agent/AdminService.ts @@ -287,7 +287,7 @@ export default class AgentAdminService { }); } - const sessions = await query.orderBy('updatedAt', 'desc').orderBy('createdAt', 'desc'); + const sessions = await query.orderBy('createdAt', 'desc').orderBy('id', 'desc'); const sessionDbIdByUuid = new Map(sessions.map((session) => [session.uuid, session.id])); const enrichedSessions = await AgentSessionService.enrichSessions(sessions); diff --git a/src/server/services/agent/__tests__/AdminService.test.ts b/src/server/services/agent/__tests__/AdminService.test.ts index 783d91c0..0b3e93e3 100644 --- a/src/server/services/agent/__tests__/AdminService.test.ts +++ b/src/server/services/agent/__tests__/AdminService.test.ts @@ -426,6 +426,8 @@ describe('AgentAdminService.listSessions', () => { const result = await AgentAdminService.listSessions({}); + expect(sessionQueryBuilder.orderBy).toHaveBeenNthCalledWith(1, 'createdAt', 'desc'); + expect(sessionQueryBuilder.orderBy).toHaveBeenNthCalledWith(2, 'id', 'desc'); expect(threadWhereIn).toHaveBeenCalledWith('sessionId', [101, 202]); expect(pendingWhereIn).toHaveBeenCalledWith('thread.sessionId', [101, 202]); expect(result.data).toEqual([