Commit Graph

15 Commits

Author SHA1 Message Date
Bendt
994e545bd0 Add toggle read/unread action with 'u' keybinding in mail app 2025-12-19 16:18:09 -05:00
Bendt
39a5efbb81 Add 'r' keybinding to refresh mail message list 2025-12-19 16:16:12 -05:00
Bendt
9a2f8ee211 Add search autocomplete and fix search state restoration
- Add SuggestFromList with Himalaya keywords for search input autocomplete
- Cache and restore metadata_by_id when cancelling search (fixes navigation)
- Set search_mode=True when opening panel for consistent Escape behavior
- Fix SearchPanel CSS vertical alignment with explicit heights
2025-12-19 15:33:42 -05:00
Bendt
5deebbbf98 Fix search stability and improve Escape key behavior
- Add bounds check in _mark_message_as_read to prevent IndexError
- Clear metadata_by_id when search returns no results
- Escape now focuses search input when in search mode instead of exiting
- Add focus_input() method to SearchPanel
2025-12-19 15:10:50 -05:00
Bendt
a5f7e78d8d Fix IndexError when pressing Escape to exit search mode
Add bounds check in refresh_list_view_items() to handle cases where
ListView and message_store.envelopes are temporarily out of sync
during transitions (e.g., when exiting search mode).
2025-12-19 14:54:40 -05:00
Bendt
f56f1931bf Fix IndexError when selecting search results
The search header was being added to ListView but not to message_store.envelopes,
causing an index mismatch when marking messages as read. Now the search header
is included in the envelopes list and metadata_by_id is properly updated so
indices align between ListView and the message store.
2025-12-19 14:52:00 -05:00
Bendt
bbc53b4ce7 Add Himalaya search integration tests and fix 0 results display
- Add test mailbox with 5 sample emails for integration testing
- Add himalaya_test_config.toml for local Maildir backend testing
- Create 12 integration tests covering search by from/to/subject/body
- Fix search results display to clear list and show message when 0 results
- Add clear_content() method to ContentContainer widget
2025-12-19 14:42:10 -05:00
Bendt
8be4b4785c Add live search panel with debounced Himalaya search and help modal 2025-12-19 14:31:21 -05:00
Bendt
0cd7cf6984 Implement mail search using Himalaya CLI with auto-select first result 2025-12-19 14:18:40 -05:00
Bendt
be2f67bb7b Fix TUI bugs: folder selection, filter stability, UI consistency
- Mail: Fix folder/account selector not triggering reload (use direct
  fetch instead of reactive reload_needed flag)
- Tasks: Store all_projects/all_tags on mount so filters don't change
  when filtering; add OR search for multiple tags
- Sync: Use rounded borders and border_title for sidebar/activity log
- Calendar: Remove padding from mini-calendar, add rounded border and
  border_title to invites panel
2025-12-19 11:24:15 -05:00
Bendt
25385c6482 Add search functionality to Mail TUI with / keybinding
- Add reusable SearchScreen modal and ClearableSearchInput widget
- Implement filter_by_query in MessageStore for client-side filtering
- Search matches subject, sender name/email, recipient name/email
- Press / to open search, Escape to clear search filter
- Shows search query in list subtitle when filter is active
2025-12-19 11:01:05 -05:00
Bendt
d4226caf0a Complete Phase 1: parallel sync, IPC, theme colors, lazy CLI loading
- Sync: Parallelize message downloads with asyncio.gather (batch size 5)
- Sync: Increase HTTP semaphore from 2 to 5 concurrent requests
- Sync: Add IPC notifications to sync daemon after sync completes
- Mail: Replace all hardcoded RGB colors with theme variables
- Mail: Remove envelope icon/checkbox gap (padding cleanup)
- Mail: Add IPC listener for refresh notifications from sync
- Calendar: Style current time line with error color and solid line
- Tasks: Fix table not displaying (CSS grid to horizontal layout)
- CLI: Implement lazy command loading for faster startup (~12s to ~0.3s)
- Add PROJECT_PLAN.md with full improvement roadmap
- Add src/utils/ipc.py for Unix socket cross-app communication
2025-12-19 10:29:53 -05:00
Bendt
a41d59e529 WIP 2025-12-18 22:11:47 -05:00
Bendt
0ed7800575 add new tasks 2025-12-18 15:40:03 -05:00
Bendt
fe65183fb7 move and rename module 2025-12-18 14:00:54 -05:00