From b6187ad637097bed643518ff2e88561c9c83762b Mon Sep 17 00:00:00 2001 From: Vaayne Date: Sun, 14 Sep 2025 17:09:19 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(sessions):=20include=20session?= =?UTF-8?q?=20messages=20in=20session=20retrieval=20response?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apiServer/routes/agents/handlers/sessions.ts | 16 +++++++++++++--- src/renderer/src/types/agent.ts | 3 ++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/main/apiServer/routes/agents/handlers/sessions.ts b/src/main/apiServer/routes/agents/handlers/sessions.ts index 14d7cbc17..7595f0766 100644 --- a/src/main/apiServer/routes/agents/handlers/sessions.ts +++ b/src/main/apiServer/routes/agents/handlers/sessions.ts @@ -1,6 +1,6 @@ import { Request, Response } from 'express' -import { sessionService } from '../../../../services/agents' +import { sessionMessageService, sessionService } from '../../../../services/agents' import { loggerService } from '../../../../services/LoggerService' const logger = loggerService.withContext('ApiServerSessionsHandlers') @@ -89,8 +89,18 @@ export const getSession = async (req: Request, res: Response): Promise }) } - logger.info(`Session retrieved successfully: ${sessionId}`) - return res.json(session) + // Fetch session messages + logger.info(`Fetching messages for session: ${sessionId}`) + const { messages } = await sessionMessageService.listSessionMessages(sessionId) + + // Add messages to session + const sessionWithMessages = { + ...session, + messages: messages + } + + logger.info(`Session retrieved successfully: ${sessionId} with ${messages.length} messages`) + return res.json(sessionWithMessages) } catch (error: any) { logger.error('Error getting session:', error) return res.status(500).json({ diff --git a/src/renderer/src/types/agent.ts b/src/renderer/src/types/agent.ts index cac06bdf7..96767aa42 100644 --- a/src/renderer/src/types/agent.ts +++ b/src/renderer/src/types/agent.ts @@ -61,6 +61,7 @@ export interface AgentSessionEntity extends AgentConfiguration { user_goal?: string // Initial user goal for the session status: SessionStatus external_session_id?: string // Agent session for external agent management/tracking + messages?: SessionMessageEntity[] // Hierarchical session messages created_at: string updated_at: string } @@ -72,7 +73,7 @@ export interface SessionMessageEntity { parent_id?: number // For tree structure (e.g., tool calls under an action) role: SessionMessageRole // 'user', 'agent', 'system', 'tool' type: SessionMessageType // Type of log entry - content: Record // JSON structured data + content: string | Record // JSON structured data metadata?: Record // Additional metadata (optional) created_at: string // ISO timestamp updated_at: string // ISO timestamp