diff --git a/hermes_state.py b/hermes_state.py index e87997ece..b35723d1c 100644 --- a/hermes_state.py +++ b/hermes_state.py @@ -757,16 +757,14 @@ class SessionDB: if not query: return [] - if source_filter is None: - source_filter = ["cli", "telegram", "discord", "whatsapp", "slack"] - # Build WHERE clauses dynamically where_clauses = ["messages_fts MATCH ?"] params: list = [query] - source_placeholders = ",".join("?" for _ in source_filter) - where_clauses.append(f"s.source IN ({source_placeholders})") - params.extend(source_filter) + if source_filter is not None: + source_placeholders = ",".join("?" for _ in source_filter) + where_clauses.append(f"s.source IN ({source_placeholders})") + params.extend(source_filter) if role_filter: role_placeholders = ",".join("?" for _ in role_filter) diff --git a/tests/test_hermes_state.py b/tests/test_hermes_state.py index f9155d3f2..c731ccf3f 100644 --- a/tests/test_hermes_state.py +++ b/tests/test_hermes_state.py @@ -210,6 +210,25 @@ class TestFTS5Search: sources = [r["source"] for r in results] assert all(s == "telegram" for s in sources) + def test_search_default_sources_include_acp(self, db): + db.create_session(session_id="s1", source="acp") + db.append_message("s1", role="user", content="ACP question about Python") + + results = db.search_messages("Python") + sources = [r["source"] for r in results] + assert "acp" in sources + + def test_search_default_includes_all_platforms(self, db): + """Default search (no source_filter) should find sessions from any platform.""" + for src in ("cli", "telegram", "signal", "homeassistant", "acp", "matrix"): + sid = f"s-{src}" + db.create_session(session_id=sid, source=src) + db.append_message(sid, role="user", content=f"universal search test from {src}") + + results = db.search_messages("universal search test") + found_sources = {r["source"] for r in results} + assert found_sources == {"cli", "telegram", "signal", "homeassistant", "acp", "matrix"} + def test_search_with_role_filter(self, db): db.create_session(session_id="s1", source="cli") db.append_message("s1", role="user", content="What is FastAPI?")