diff --git a/backend/app/services/memory/indexing/index.py b/backend/app/services/memory/indexing/index.py index 9f3a02c..27fab01 100644 --- a/backend/app/services/memory/indexing/index.py +++ b/backend/app/services/memory/indexing/index.py @@ -197,10 +197,17 @@ class VectorIndex(MemoryIndex[T]): results = [(s, e) for s, e in results if e.memory_type == memory_type] # Store similarity in metadata for the returned entries + # Use a copy of metadata to avoid mutating cached entries output = [] for similarity, entry in results[:limit]: - entry.metadata["similarity"] = similarity - output.append(entry) + # Create a shallow copy of the entry with updated metadata + entry_with_score = VectorIndexEntry( + memory_id=entry.memory_id, + memory_type=entry.memory_type, + embedding=entry.embedding, + metadata={**entry.metadata, "similarity": similarity}, + ) + output.append(entry_with_score) logger.debug(f"Vector search returned {len(output)} results") return output