{"repo":"NousResearch/hermes-agent","public_id":"1770","display_label":"FTS5 query sanitization: hyphens, operators, quoting","summary":"These issues and fixes all concern malformed or mishandled FTS5 queries involving hyphenated tokens, stacked/adjacent boolean operators, and dotted or special-character terms that cause silent empty results or crashes. The work spans session search, fact_store, and holographic memory components.","subsystem":"agent","counts":{"members":16,"open_issues":2,"open_issues_distinct":2,"open_prs":5,"closed_issues":3,"merged_prs":1,"attempt_prs":10},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":1776},"resolution":{"state":"partially_resolved","by":"pr-1776"},"freshness":{"state":"stale","last_verified_at":"2026-03-17T16:44:01+00:00","is_stale":true},"grouping":{"backbone":"STRUCTURAL_PARTIAL","link_density":0.10666666666666667},"fix_edges":[{"issue_number":1770,"pr_number":1776,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true}],"members":[{"kind":"issue","number":1770,"title":"session_search mishandles hyphenated FTS5 queries and strips quoted literals","url":null,"state":"closed"},{"kind":"issue","number":7824,"title":"Session search broad FTS query can fail on hyphenated OR terms","url":null,"state":"closed"},{"kind":"issue","number":14024,"title":"[Bug]: fact_store search action fails with \"no such column\" error on hyphenated queries (FTS5 tokenization)","url":null,"state":"open"},{"kind":"issue","number":21102,"title":"Holographic memory: `fact_store action=\"search\"` silently returns 0 results when query contains FTS5 operator characters (e.g. hyphens)","url":null,"state":"closed"},{"kind":"issue","number":56871,"title":"session_search silently returns empty for stacked/adjacent FTS5 boolean operators (a AND OR b, AND NOT x)","url":null,"state":"open"},{"kind":"pr","number":1773,"title":"fix: handle hyphenated FTS5 queries and preserve quoted literals","url":null,"state":"closed","close_reason":{"category":"silent_close","implication":"active"},"merged":false},{"kind":"pr","number":1776,"title":"fix: handle hyphenated FTS5 queries and preserve quoted literals","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["hermes_state.py","tests/test_hermes_state.py"]},{"kind":"pr","number":1777,"title":"fix(search): handle hyphenated queries and preserve quoted literals in FTS5","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#1776","number":1776}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":7820,"title":"fix: sanitize hyphenated session-search FTS queries","url":null,"state":"closed","close_reason":{"category":"silent_close","implication":"active"},"merged":false},{"kind":"pr","number":14033,"title":"fix(memory): sanitize holographic fact_store FTS queries","url":null,"state":"open","close_reason":{"refs":[{"kind":"pr","value":"#11333","number":11333},{"kind":"pr","value":"#6667","number":6667}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":14262,"title":"fix(memory/holographic): sanitize hyphenated tokens in FTS5 queries","url":null,"state":"open","close_reason":{"refs":[{"kind":"commit","value":"40dbfa0e3ce85dc0d63f1ebe1319d212c53d3511","number":0},{"kind":"commit","value":"38e7bd8a08a9df450b7d8661778ecc47f25323c2","number":0}],"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":14794,"title":"fix(tools): auto-quote hyphenated tokens in fact_store FTS5 queries","url":null,"state":"open","close_reason":{"refs":[{"kind":"pr","value":"#14033","number":14033},{"kind":"pr","value":"#14024","number":14024},{"kind":"pr","value":"#14262","number":14262},{"kind":"pr","value":"#14024","number":14024},{"kind":"pr","value":"#14794","number":14794},{"kind":"pr","value":"#14033","number":14033}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":39663,"title":"fix(memory): sanitize FTS5 queries to prevent crashes on hyphenated tokens (#14024)","url":null,"state":"open","close_reason":{"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":56872,"title":"fix(agent): collapse stacked FTS5 boolean operators in session search","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#48212","number":48212},{"kind":"pr","value":"#48212","number":48212}],"category":"superseded_by_pr","implication":"superseded"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true},{"kind":"pr","number":64209,"title":"fix(holographic): hyphenated-identifier search returned 0 results","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#14033","number":14033},{"kind":"pr","value":"#14024","number":14024},{"kind":"pr","value":"#14033","number":14033},{"kind":"pr","value":"#39664","number":39664}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":91075,"title":"fix(state): collapse stacked/adjacent FTS5 boolean operators instead of a silent empty search","url":null,"state":"open","close_reason":{"refs":[{"kind":"pr","value":"#48212","number":48212},{"kind":"pr","value":"#56871","number":56871},{"kind":"pr","value":"#48212","number":48212},{"kind":"pr","value":"#48212","number":48212}],"category":"superseded_by_pr","implication":"superseded"},"merged":false}],"trust":{"default_tier":"verified","includes_suggested":false}}