|
Add session search across messages with backend + frontend
Backend: - GET /sessions now accepts `search` query param - _session_summary computes match_indices and match_preview from messages - pg_session_store: messages ILIKE added to search_list and count_all - In-memory store: search_list also filters by message content Frontend: - AppSidebar: search toggle icon + debounced input, Ctrl+K shortcut - SessionItem: highlight matching text, show match_preview from search - SessionList: pass searchQuery to SessionItem - SessionsStore: searchQuery/searchActive state, setSearch/clearSearch - API layer: getSessions accepts search param - MessageList: scroll to target message + brightness flash animation - ChatStore: loadSession accepts targetMessageIndex, scrollToMessageIndex ref - CSS: msg-flash keyframe animation in app.scss - Tests updated for new getSessions signature Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
|---|
|
|
| navi/api/routes/sessions.py |
|---|
| navi/core/pg_session_store.py |
|---|
| navi/core/session.py |
|---|
| webclient/src/api/index.js |
|---|
| webclient/src/components/chat/MessageList.vue |
|---|
| webclient/src/components/sidebar/AppSidebar.vue |
|---|
| webclient/src/components/sidebar/SessionItem.vue |
|---|
| webclient/src/components/sidebar/SessionList.vue |
|---|
| webclient/src/stores/chat.js |
|---|
| webclient/src/stores/sessions.js |
|---|
| webclient/src/styles/app.scss |
|---|
| webclient/tests/unit/stores/sessions.test.js |
|---|