Skip to content

feat: session search by title and last message with match highlighting - #6

Merged
alexmt merged 1 commit into
mainfrom
feat/session-search
Apr 11, 2026
Merged

feat: session search by title and last message with match highlighting#6
alexmt merged 1 commit into
mainfrom
feat/session-search

Conversation

@alexmt

@alexmt alexmt commented Apr 11, 2026

Copy link
Copy Markdown
Owner

Closes #5

Summary

  • Press / from the list pane to enter search mode
  • Filters sessions in real-time by title (custom name or slug) and last message snippet
  • Matching text highlighted inline (yellow background) in name and snippet rows of non-selected rows
  • Status bar shows / query█ N/M ↑/↓ navigate enter resume esc cancel
  • esc exits search and restores cursor to the same session in the full list
  • README updated with / keybinding and Search feature description

Implementation notes

  • visibleSessions() computes filtered slice on the fly (no cached state to sync)
  • renderWithHighlight() segments text into match/non-match runs, styling each independently — avoids ANSI nesting issues between dimStyle and matchStyle
  • exitSearch() translates the filtered-list cursor back to the full-list index
  • All existing operations (rename, delete, move) are blocked while searching; esc returns to normal mode first

🤖 Generated with Claude Code

Press / to enter search mode; type to filter sessions in real-time by
title (custom name or slug) or last message snippet. Matching text is
highlighted inline (yellow bg) in name and snippet rows. Status bar
shows query, N/M count, and keys. esc exits and restores cursor to the
full list.

Closes #5

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@alexmt
alexmt merged commit daaf7b2 into main Apr 11, 2026
1 check 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.

feat: session search by title and last message with match highlighting

1 participant