Skip to content

feat(search): in-chat message search and session list filter - #26

Merged
theblazehen merged 3 commits into
theblazehen:mainfrom
MassimilianoPili:feat/chat-search
Jun 28, 2026
Merged

feat(search): in-chat message search and session list filter#26
theblazehen merged 3 commits into
theblazehen:mainfrom
MassimilianoPili:feat/chat-search

Conversation

@MassimilianoPili

@MassimilianoPili MassimilianoPili commented Jun 21, 2026

Copy link
Copy Markdown
Contributor

Summary

Two client-side search capabilities, mirroring the existing file/command search UX (transparent-bordered field, TUI glyphs):

  • In-chat message search — searches the open conversation across text and reasoning parts, with a live match counter (3/12), previous/next navigation and scroll-to-match plus a subtle highlight on the current hit. Opened from the chat overflow menu (⌕ Search chat); Back closes the search bar.
  • Session-list filter — a search field toggled from the sessions top bar that filters the conversation list by title. While searching, the tree flattens to matching sessions so a child session isn't hidden by a filtered-out parent.

Implementation

  • ChatSearch.kt — pure, testable match logic over MessageBlocks (Part.Text/Part.Reasoning/tool names/subtask prompts).
  • ChatSearchBar.kt — the in-chat search bar composable.
  • ChatScreen.kt — search state, scroll-to-match, current-hit highlight via itemsIndexed, Back handler.
  • SessionListScreen.kt — sticky-header search field + title filter.
  • New string resources only; no dependency or build config changes.

Testing

Built with JDK 17 (./gradlew :app:assembleDebug) and verified on a physical device: both searches work, match navigation scrolls correctly, no crashes.


Open in Stage

Search within the open conversation across text and reasoning parts, with a
match counter, previous/next navigation and scroll-to-match highlight. Add a
session-list title filter reachable from the sessions top bar. Both mirror the
existing file/command search UX (transparent-bordered field, TUI glyphs).
@ghost

ghost commented Jun 21, 2026

Copy link
Copy Markdown

Ready to review this PR? Stage has broken it down into 5 individual chapters for you:

Title
1 Define search-related string resources
2 Implement core chat search logic
3 Create the in-chat search bar UI
4 Integrate search into the chat screen
5 Implement session list filtering
Open in Stage

Chapters generated by Stage for commit f9a3491 on Jun 21, 2026 7:34pm UTC.

@theblazehen
theblazehen merged commit be54036 into theblazehen:main Jun 28, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants