Add superfast local BM25 chat search with Command-K #8
Labels
No labels
delivered
outstanding
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
kayg/hermternal-apple#8
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Add near-instant local chat/message search, opened with ⌘K, backed by an incremental full-text index over the local transcript cache.
Direction
bm25()if the deployed macOS SQLite supports it; benchmark before considering a custom BM25 implementation.Performance bar
Dependencies
Message-level navigation needs the stable server-backed identity tracked in the deep-link issue. Chat-level results can ship first.
Design-session details to carry into implementation:
>for an action/command mode listing settings panes and app commands. Action labels match by substring; message text matches by token prefix.Clarification from the issue author: #8 is authoritative over a competing design produced in a separate design session. Implement FTS5 with
bm25()and an incremental index as #8 states, ship chat-level results first, and treat the 50 ms warm-result bar as the target. A proposed 120 ms input debounce was rejected as incompatible with that bar.Diversity ranking remains an open question layered on top of bm25, not a decision: measure strict bm25 first, and only add a diversity pass if one long conversation visibly monopolises the top of the results.