feat: add session library UX with search, filters, actions, and favorites

- Sidebar: search input with live results via querySessions
- Sidebar: filter chips for Running, Error, Pinned, Archived
- Sidebar: per-session context menu with Rename, Duplicate, Pin, Archive
- Sidebar: inline rename editing with Enter/Escape/blur handling
- Sidebar: pinned sessions sort first, archived sessions hidden by default
- NewSessionModal: favorite patterns with star toggle, favorites sort first

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
David Kaya
2026-03-22 19:50:49 +01:00
co-authored by Copilot
parent 6a6fd35361
commit 1d649da5d4
3 changed files with 476 additions and 98 deletions
+15
View File
@@ -253,6 +253,18 @@ export default function App() {
onSessionSelect={(sessionId) => {
void api.selectSession(sessionId);
}}
onRenameSession={(sessionId, title) => {
void api.renameSession({ sessionId, title });
}}
onDuplicateSession={(sessionId) => {
void api.duplicateSession({ sessionId });
}}
onSetSessionPinned={(sessionId, isPinned) => {
void api.setSessionPinned({ sessionId, isPinned });
}}
onSetSessionArchived={(sessionId, isArchived) => {
void api.setSessionArchived({ sessionId, isArchived });
}}
workspace={workspace}
/>
}
@@ -266,6 +278,9 @@ export default function App() {
setShowNewSession(false);
void api.createSession({ projectId, patternId });
}}
onTogglePatternFavorite={(patternId, isFavorite) => {
void api.setPatternFavorite({ patternId, isFavorite });
}}
patterns={workspace.patterns}
projects={workspace.projects}
/>