Repository navigation
Conversation
A SQLite FTS5 index beside the profile store, one row per user or assistant message (reasoning and tool output stay out). It refreshes from snapshot freshness on each search, within a time budget, and drops deleted chats. Every query word must match as a literal prefix. Hits carry the chat, a snippet and whether the user wrote the message. The snapshot freshness index lives outside the numbered sync migrations. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Find in thread: - A find field in the chat's top-right corner, styled like the session cards, which stack below it while it is open. - Matches are washed inline in assistant markdown (paragraphs, lists, tables, code) and user bubbles; the current one is stronger. - The counter and Enter / Shift+Enter step per occurrence, scrolling to its row. Palette: - A Messages tab (third, after Threads) and an "In messages" section in All, fed by SearchTranscripts. Rows show the title, project and device, time, You: or Agent:, and the snippet with matched words bold. - Opening a result opens the chat with the same words in its find bar. - Threads matches chat titles only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Author
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
⌘F opens a find field in the chat's top-right corner. Matches are highlighted in both your messages and the agent's, and ↑/↓ or Enter steps through every occurrence. The ⌘K palette gets a Messages tab (⌘3) that searches the text of every chat. Opening a result opens that chat with the same words already in its find field.
How
crates/engine/src/transcript_search.rs): a newSearchTranscriptsRPC backed by a SQLite FTS5 index beside the profile store, with one row per user or assistant message. Reasoning and tool output aren't indexed. Each search first refreshes chats whose snapshot changed, within a 1s budget, and drops deleted chats. Every query word must match as a literal prefix, so FTS operators in user text stay inert. Hits carry the chat id, a snippet andfrom_user.crates/sync/src/store.rs): snapshotsaved_atlookups for the refresh, kept outside the numbered migrations.crates/ui/src/find.rs,transcript.rs):find_in_thread, defaultmod-f). It only fires on a chat, so it doesn't clash with ⌘F in settings search (Settings search: find any setting from the sidebar, with ⌘F #1018).crates/ui/src/shell/command_palette.rs):project · device, time,You:/Agent:and the snippet with the matched words bold.Screenshots
Tests
cargo test -p zeron-engine --test transcript_searchpasses. The new test covers user and assistant text being found, reasoning staying out, every word having to match, hostile FTS input, delete, restart, and rebuilding after the index file is removed.cargo check -p zeron-uipasses.Not verified
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.