From 3aec08d650a4eb65f21b342ffdc9bb0c22325277 Mon Sep 17 00:00:00 2001 From: Vaayne Date: Sat, 2 Aug 2025 11:42:29 +0800 Subject: [PATCH] feat: improve memory service logging and per-assistant configuration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Enhance memory search logging with structured context in MemoryProcessor - Add per-assistant memory configuration support in MemoryService - Reduce log verbosity in StreamProcessingService (debug to silly) - Fix memory search to use assistant's memoryUserId when available 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- src/renderer/src/services/MemoryProcessor.ts | 6 ++---- src/renderer/src/services/MemoryService.ts | 12 ++++++++++++ src/renderer/src/services/StreamProcessingService.ts | 2 +- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/renderer/src/services/MemoryProcessor.ts b/src/renderer/src/services/MemoryProcessor.ts index ef7833494b..2c8ab8348b 100644 --- a/src/renderer/src/services/MemoryProcessor.ts +++ b/src/renderer/src/services/MemoryProcessor.ts @@ -238,12 +238,10 @@ export class MemoryProcessor { limit }) - logger.debug( - `Searching memories with query: ${query} for user: ${userId} and assistant: ${assistantId} result: ${result}` - ) + logger.debug('Searching memories successful', { query, userId, assistantId, result }) return result.results } catch (error) { - logger.error('Error searching memories:', error as Error) + logger.error('Searching memories error:', { error }) return [] } } diff --git a/src/renderer/src/services/MemoryService.ts b/src/renderer/src/services/MemoryService.ts index cf6cbbc41a..b584302ba4 100644 --- a/src/renderer/src/services/MemoryService.ts +++ b/src/renderer/src/services/MemoryService.ts @@ -12,6 +12,8 @@ import { MemorySearchResult } from '@types' +import { getAssistantById } from './AssistantService' + const logger = loggerService.withContext('MemoryService') // Main process SearchResult type (matches what the IPC actually returns) @@ -186,6 +188,16 @@ class MemoryService { userId: this.currentUserId } + // If agentId is provided, resolve userId from assistant's memoryUserId + if (optionsWithUser.agentId) { + const assistant = getAssistantById(optionsWithUser.agentId) + if (assistant) { + optionsWithUser.userId = assistant.memoryUserId || this.currentUserId + } + } + + logger.debug('Searching memories start with options', { query: query, options: optionsWithUser }) + try { const result: SearchResult = await window.api.memory.search(query, optionsWithUser) diff --git a/src/renderer/src/services/StreamProcessingService.ts b/src/renderer/src/services/StreamProcessingService.ts index 4861e5b11a..6075ddde69 100644 --- a/src/renderer/src/services/StreamProcessingService.ts +++ b/src/renderer/src/services/StreamProcessingService.ts @@ -51,7 +51,7 @@ export function createStreamProcessor(callbacks: StreamProcessorCallbacks = {}) return (chunk: Chunk) => { try { const data = chunk - logger.debug('data: ', data) + logger.silly('data: ', data) switch (data.type) { case ChunkType.BLOCK_COMPLETE: { if (callbacks.onComplete) callbacks.onComplete(AssistantMessageStatus.SUCCESS, data?.response)