Conversation
Add zeppelin-embed 0.3.0 as a static XCFramework dependency for the app and integration-test targets. FluidVoice needs lastAsPrefix on QueryOptions for type-ahead search. Add FluidZeppelinRoot, the single Zeppelin database under Application Support. Namespaces are created on demand, independent of each other, and opened under one cached task so concurrent first callers share the open instead of racing on the writer lock. Every namespace is a derived copy of a store the app already keeps, so the library's default derived durability applies and one that cannot be read is reset and rebuilt from its source. Namespaces are closed at termination so their logs are checkpointed rather than replayed.
Mirror dictation history, file transcripts, and Command Mode chats into separate record-only Zeppelin namespaces while keeping the existing stores authoritative. Reconcile each namespace from source records so launch backfill, write-through updates, eviction cleanup, and reset recovery share one idempotent path. Reconciles for one kind run in order so two cannot interleave. Search the namespaces with last-word prefix matching and combine them with in-memory matches for dictionary entries, prompts, vocabulary, punctuation rules, and settings. Preserve group ordering, rank only within a group, cancel stale queries, and build highlighted snippets from the source text.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
The PR Policy check is blocking this PR because required template information is missing. Please update the PR description with:
Visual files detected:
Screenshots or video are required for UI, UX, settings, onboarding, overlay, menu bar, or visual behavior changes. If this PR has no visual changes, check the no-visual-change box in the template. If this remains incomplete for 48 hours after opening, the PR may be closed. |
Greptile SummaryThis PR adds application-wide search backed by Zeppelin Embed.
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 804640820b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
A chat hit now loads that session before opening Command Mode instead of showing whichever chat was current. When a reconcile adds or removes rows, the open query is re-run, so a search made before launch backfill finishes fills in on its own and a dictation made while the results are open appears in them.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ae398376fb
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
A changed query left stale rows actionable during debounce. Global settings search exposed hidden controls, and transcript hits scrolled to their list rows instead of the selected details. Invalidate published groups whenever a query changes. Share the existing availability rules across both search surfaces, and give each selected transcript detail an explicit scroll target. Cover query invalidation, conditional settings filtering, and transcript detail targeting with focused regression tests.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 33390101b4
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
History selection tried to scroll before clearing a local filter had rendered the target row. Self-target dictation also treated every FluidVoice field editor as a sidebar search destination, even when the recording began in another app. Defer filtered history scrolling to the next main-loop turn. Mark sidebar search controls explicitly, and insert into their field editor only when the captured recording focus is still exact and owned by FluidVoice.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 26c539fe76
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Chat search derived its revision from updatedAt. A clock correction could therefore make later saves look older than the indexed document and leave stale message text searchable. Persist a per-session search revision and advance it on every save. Legacy sessions seed the counter from their existing timestamp revision, so the first update remains newer without requiring Zeppelin to accept a lower revision.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d134b1a0f6
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Up and Down moved the custom search cursor without moving the result list, so the highlighted row could leave the visible sidebar while Return still targeted it. Wrap the grouped results in a ScrollViewReader and reveal each new cursor target using the row identifiers already shared with AppSearchHit.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d32915db7c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Settings search exposed Dictation controls that SettingsView omits until Accessibility permission is enabled. Opening those results selected a reveal target with no rendered row or scroll anchor. Apply the same permission gate to every nested Dictation target while keeping the visible permission and Global Hotkey rows searchable. Preserve the existing history conditions for audio storage.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a63d5ce69d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Description
Adding general search to FluidVoice.
Users will now be able to search across their conversation history, transcripts, settings, everything that is text within the app.
Clicking the results will take them there directly.
Type of Change
Related Issue or Discussion
Closes #944
Discussed this with maintainers in person.
Testing
swiftlint --strict --config .swiftlint.yml Sources Tests Package.swiftswiftformat --config .swiftformat SourcesScreenshots / Video
Attach screenshots or a video for UI, UX, settings, onboarding, overlay, menu bar, or visual behavior changes.


Notes