From 638d2e7bfcad1be6e779c0d1af95481a6e92d811 Mon Sep 17 00:00:00 2001 From: teknium1 <127238744+teknium1@users.noreply.github.com> Date: Tue, 30 Jun 2026 15:34:35 -0700 Subject: [PATCH] fix(memory/holographic): apply FTS5 sanitizer to search_facts sibling The store-level search_facts() shared the same raw-MATCH bug class as _fts_candidates (FTS5 AND-joins tokens, zeroing prose recall). Route it through FactRetriever._sanitize_fts_query via a lazy import to keep the store->retrieval layering acyclic. Also add cyb3rwr3n to release AUTHOR_MAP. --- plugins/memory/holographic/store.py | 9 ++++++++- scripts/release.py | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/plugins/memory/holographic/store.py b/plugins/memory/holographic/store.py index 67628102d..7ffc7db0f 100644 --- a/plugins/memory/holographic/store.py +++ b/plugins/memory/holographic/store.py @@ -205,7 +205,14 @@ class MemoryStore: if not query: return [] - params: list = [query, min_trust] + # FTS5 AND-joins tokens by default, which zeroes out recall on + # natural-language queries. Reuse the retriever's sanitizer + # (stopword drop + OR-join content tokens). Imported lazily to + # avoid a store->retrieval import cycle. + from plugins.memory.holographic.retrieval import FactRetriever + + match_query = FactRetriever._sanitize_fts_query(query) + params: list = [match_query, min_trust] category_clause = "" if category is not None: category_clause = "AND f.category = ?" diff --git a/scripts/release.py b/scripts/release.py index 693465696..de1f0fbec 100755 --- a/scripts/release.py +++ b/scripts/release.py @@ -45,6 +45,7 @@ ACP_REGISTRY_MANIFEST = REPO_ROOT / "acp_registry" / "agent.json" # Auto-extracted from noreply emails + manual overrides AUTHOR_MAP = { + "cyb3rwr3n@users.noreply.github.com": "cyb3rwr3n", # PR #11333 salvage (sanitize FTS5 queries for natural-language recall in holographic memory) "186512915+lEWFkRAD@users.noreply.github.com": "lEWFkRAD", # PR #53848 salvage (stream the MoA aggregator response to the user) "193368749+jimmyjohansson84@users.noreply.github.com": "jimmyjohansson84", # PR #27123 salvage (Kanban unknown-skill warn-instead-of-crash; #27136) "gxalong@gmail.com": "Jeffgithub0029", # PR #28558 salvage (chunk Telegram text *after* MarkdownV2/HTML formatting so escaping inflation can't push a send over the 4096 UTF-16 limit; #28557)