You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
FTS5-powered search — search now runs against Orbit's full-text index instead of a brute-force scan over every message, so results come back fast even on large session libraries.
Smarter matching — queries match whole words and word prefixes (auth finds "authentication`), and multi-word searches match sessions where each term appears anywhere in the transcript — even across different messages.
Relevance ranking — while searching, results are ordered by relevance: title matches first, then sessions whose best-matching message scores highest (bm25), with recency as the tiebreaker. Clear the search box and the familiar recency ordering returns.
Notes
Mid-word substrings (e.g. rror matching "error") no longer match — that's the trade-off for indexed, ranked search.
Search results may include sessions where the query isn't a literal contiguous phrase (terms matched separately); highlighting marks literal occurrences, so those hits simply show no <mark>.
Technical
get_sessions builds a safe FTS5 MATCH expression from raw input — quoted prefix terms neutralize FTS5 query syntax such as (, *, NEAR
A ranking CTE computes each session's best bm25 rank; per-term subqueries enforce session-level AND semantics (every term must match somewhere in the session)
Falls back automatically to the previous LIKE scan if the FTS query ever fails
Removed the unused search_sessions command and search_messages query; parameterized LIMIT/OFFSET in get_sessions