mirror of
https://github.com/mudler/LocalAI.git
synced 2026-11-06 04:23:15 -05:00
Search read the newest 500 chats and scanned them in memory, so older chats dropped out silently. The chat store now keeps a search index of the text of user and assistant messages: FTS5 with the trigram tokenizer on SQLite, a pg_trgm GIN index on PostgreSQL, and a scan of the same table when neither is there. The file store scans its in-memory transcripts for up to two seconds, newest chat first, and says when it stopped early. The index row is written in the transaction that writes the entry and removed in the one that deletes the chat or truncates the transcript. A query joins the chat row for the owner, so one user never sees the chats of another, and sub-agent chats stay out. Messages written before the index existed are added in the background with a resumable cursor and progress in the log; startup does not wait for it. GET /api/chats/search keeps its fields and adds the role, time, match count and highlight offsets of the hit, and filters for agent, origin, role and date range. A phrase in double quotes is one word. Hits rank by match quality and recency. group=message lists every matching line. Assisted-by: Claude:claude-sonnet-5-5