From a38f7eef52b7446741f2559844b139a92fd46ae4 Mon Sep 17 00:00:00 2001 From: Digital-Meta <137065378+Digital-Meta@users.noreply.github.com> Date: Sun, 27 Sep 2026 15:35:34 +0100 Subject: [PATCH 1/9] refactor(sessions): extract shared SessionList from SessionSidebar --- .../chat/session-sidebar/SessionList.svelte | 219 ++++++++++++++++++ .../session-sidebar/SessionSidebar.svelte | 209 +---------------- 2 files changed, 221 insertions(+), 207 deletions(-) create mode 100644 src/components/chat/session-sidebar/SessionList.svelte diff --git a/src/components/chat/session-sidebar/SessionList.svelte b/src/components/chat/session-sidebar/SessionList.svelte new file mode 100644 index 00000000..6a4bf051 --- /dev/null +++ b/src/components/chat/session-sidebar/SessionList.svelte @@ -0,0 +1,219 @@ + + +
+ + +
+ +
+ + +
+ +{#if !showArchived && sections.pinned.length} +
+
Pinned
+ {#each sections.pinned as row (row.threadId)} + open(row.threadId)} + onRename={() => rename(row.threadId, row.title)} + onDelete={() => del(row.threadId, row.title)} + onTogglePin={() => togglePin(row.threadId, row.pinned)} + onToggleArchive={() => toggleArchive(row.threadId, row.archived)} + /> + {/each} +
+{/if} + +
+
{showArchived ? "Archived" : "Sessions"}
+ {#if visibleRows.length === 0} +
{query ? "No matching sessions" : "No conversations"}
+ {/if} + {#each visibleRows as row (row.threadId)} + open(row.threadId)} + onRename={() => rename(row.threadId, row.title)} + onDelete={() => del(row.threadId, row.title)} + onTogglePin={() => togglePin(row.threadId, row.pinned)} + onToggleArchive={() => toggleArchive(row.threadId, row.archived)} + /> + {/each} + {#if remaining > 0} + + {/if} +
+ + diff --git a/src/components/chat/session-sidebar/SessionSidebar.svelte b/src/components/chat/session-sidebar/SessionSidebar.svelte index 0b2eb6d7..122a852a 100644 --- a/src/components/chat/session-sidebar/SessionSidebar.svelte +++ b/src/components/chat/session-sidebar/SessionSidebar.svelte @@ -1,145 +1,14 @@
-
- - -
- -
- - -
- - {#if !showArchived && sections.pinned.length} -
- - {#each sections.pinned as row (row.threadId)} - open(row.threadId)} - onRename={() => rename(row.threadId, row.title)} - onDelete={() => del(row.threadId, row.title)} - onTogglePin={() => togglePin(row.threadId, row.pinned)} - onToggleArchive={() => toggleArchive(row.threadId, row.archived)} - /> - {/each} -
- {/if} - -
- - {#if visibleRows.length === 0} -
{query ? "No matching sessions" : "No conversations"}
- {/if} - {#each visibleRows as row (row.threadId)} - open(row.threadId)} - onRename={() => rename(row.threadId, row.title)} - onDelete={() => del(row.threadId, row.title)} - onTogglePin={() => togglePin(row.threadId, row.pinned)} - onToggleArchive={() => toggleArchive(row.threadId, row.archived)} - /> - {/each} - {#if remaining > 0} - - {/if} -
+
From 8c0e15e56c2a553050f31d9909f50e03b91bc3b4 Mon Sep 17 00:00:00 2001 From: Digital-Meta <137065378+Digital-Meta@users.noreply.github.com> Date: Sun, 27 Sep 2026 15:42:17 +0100 Subject: [PATCH 2/9] feat(sessions): touch overflow menu for session rows --- .../session-sidebar/SessionSidebarItem.svelte | 82 ++++++++++++++++++- 1 file changed, 79 insertions(+), 3 deletions(-) diff --git a/src/components/chat/session-sidebar/SessionSidebarItem.svelte b/src/components/chat/session-sidebar/SessionSidebarItem.svelte index c7ee310e..634c8058 100644 --- a/src/components/chat/session-sidebar/SessionSidebarItem.svelte +++ b/src/components/chat/session-sidebar/SessionSidebarItem.svelte @@ -1,4 +1,5 @@
@@ -58,6 +90,14 @@ const dateStr = $derived(new Date(row.updatedAt).toLocaleDateString());
+