From 0925f89b7c5c35b56f1f031257c1e75fc20a620b Mon Sep 17 00:00:00 2001 From: Anish Sarkar <104695310+AnishSarkar22@users.noreply.github.com> Date: Fri, 10 Apr 2026 15:29:56 +0530 Subject: [PATCH] fix: guard display_name.split() against whitespace-only IndexError (recurseml feedback) --- surfsense_backend/app/agents/new_chat/memory_extraction.py | 4 +++- .../app/agents/new_chat/middleware/memory_injection.py | 4 ++-- surfsense_backend/app/routes/memory_routes.py | 6 +++++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/surfsense_backend/app/agents/new_chat/memory_extraction.py b/surfsense_backend/app/agents/new_chat/memory_extraction.py index 5a056cb35..221c4c75a 100644 --- a/surfsense_backend/app/agents/new_chat/memory_extraction.py +++ b/surfsense_backend/app/agents/new_chat/memory_extraction.py @@ -131,7 +131,9 @@ async def extract_and_save_memory( old_memory = user.memory_md first_name = ( - user.display_name.split()[0] if user.display_name else "The user" + user.display_name.strip().split()[0] + if user.display_name and user.display_name.strip() + else "The user" ) prompt = _MEMORY_EXTRACT_PROMPT.format( current_memory=old_memory or "(empty)", diff --git a/surfsense_backend/app/agents/new_chat/middleware/memory_injection.py b/surfsense_backend/app/agents/new_chat/middleware/memory_injection.py index 74a9611fd..6179adccd 100644 --- a/surfsense_backend/app/agents/new_chat/middleware/memory_injection.py +++ b/surfsense_backend/app/agents/new_chat/middleware/memory_injection.py @@ -76,8 +76,8 @@ class MemoryInjectionMiddleware(AgentMiddleware): # type: ignore[type-arg] ) elif self.user_id is not None: user_memory, display_name = await self._load_user_memory(session) - if display_name: - first_name = display_name.split()[0] + if display_name and display_name.strip(): + first_name = display_name.strip().split()[0] memory_blocks.append(f"{first_name}") if user_memory: chars = len(user_memory) diff --git a/surfsense_backend/app/routes/memory_routes.py b/surfsense_backend/app/routes/memory_routes.py index e182960b9..f5df45cf1 100644 --- a/surfsense_backend/app/routes/memory_routes.py +++ b/surfsense_backend/app/routes/memory_routes.py @@ -107,7 +107,11 @@ async def edit_user_memory( await session.refresh(user, ["memory_md", "display_name"]) current_memory = user.memory_md or "" - first_name = user.display_name.split()[0] if user.display_name else "The user" + first_name = ( + user.display_name.strip().split()[0] + if user.display_name and user.display_name.strip() + else "The user" + ) prompt = _MEMORY_EDIT_PROMPT.format( current_memory=current_memory or "(empty)",