test(session-search): guard projected enrichment

This commit is contained in:
Jakub Wolniewicz 2026-07-14 10:59:26 +02:00 committed by kshitij
parent ffb54305c4
commit f795d542f6
1 changed files with 36 additions and 0 deletions

View File

@ -677,9 +677,45 @@ class TestFTS5Search:
]
assert all("context" in row and row["context"] for row in default)
def test_search_projection_skips_context_enrichment_queries(self, db):
db.create_session(session_id="s1", source="cli")
db.append_message("s1", role="user", content="before")
db.append_message("s1", role="assistant", content="projectionneedle")
db.append_message("s1", role="user", content="after")
statements = []
read_conn = db._get_read_conn() or db._conn
traced_connections = [db._conn]
if read_conn is not db._conn:
traced_connections.append(read_conn)
for conn in traced_connections:
conn.set_trace_callback(statements.append)
def context_query_count():
normalized = (" ".join(sql.upper().split()) for sql in statements)
return sum("WITH TARGET AS (" in sql for sql in normalized)
try:
projected = db.search_messages(
"projectionneedle", fields=("session_id", "snippet")
)
assert len(projected) == 1
assert context_query_count() == 0
full = db.search_messages(
"projectionneedle", fields=("session_id", "context")
)
assert len(full) == 1
assert full[0]["context"]
assert context_query_count() == 1
default = db.search_messages("projectionneedle")
assert len(default) == 1
assert default[0]["context"]
assert context_query_count() == 2
finally:
for conn in traced_connections:
conn.set_trace_callback(None)
def test_sanitize_fts5_query_strips_dangerous_chars(self):
"""Unit test for _sanitize_fts5_query static method."""