fix(memory): reject empty search queries (#5258)

This commit is contained in:
Ritwij Aryan Parmar
2026-06-08 21:11:11 +05:30
committed by GitHub
parent 366945965d
commit f32eb4406b
4 changed files with 73 additions and 0 deletions
+17
View File
@@ -169,6 +169,21 @@ def _validate_search_params(threshold: Optional[float] = None, top_k: Optional[i
)
def _validate_and_trim_search_query(query: str) -> str:
"""
Validates and normalizes a search query before embedding/vector search.
Raises:
ValueError: If query is not a string or is empty/whitespace-only.
"""
if not isinstance(query, str):
raise ValueError("Invalid query: must be a non-empty string.")
trimmed = query.strip()
if not trimmed:
raise ValueError("Invalid query: cannot be empty or whitespace-only.")
return trimmed
def _is_sensitive_field(field_name: str) -> bool:
"""Check if a field should be redacted for telemetry safety.
@@ -1178,6 +1193,7 @@ class Memory(MemoryBase):
# Validate search parameters (before applying defaults)
_validate_search_params(threshold=threshold, top_k=top_k)
query = _validate_and_trim_search_query(query)
# Validate and trim entity IDs in filters
effective_filters = filters.copy() if filters else {}
@@ -2620,6 +2636,7 @@ class AsyncMemory(MemoryBase):
# Validate search parameters (before applying defaults)
_validate_search_params(threshold=threshold, top_k=top_k)
query = _validate_and_trim_search_query(query)
# Validate and trim entity IDs in filters
effective_filters = filters.copy() if filters else {}