diff --git a/tools/server/public/index.html.gz b/tools/server/public/index.html.gz index 3fd631b77a..1834d1d91f 100644 Binary files a/tools/server/public/index.html.gz and b/tools/server/public/index.html.gz differ diff --git a/tools/server/webui/src/lib/components/app/chat/ChatSettings/ChatSettingsImportExportTab.svelte b/tools/server/webui/src/lib/components/app/chat/ChatSettings/ChatSettingsImportExportTab.svelte index 7edce48b9b..1c8b41102a 100644 --- a/tools/server/webui/src/lib/components/app/chat/ChatSettings/ChatSettingsImportExportTab.svelte +++ b/tools/server/webui/src/lib/components/app/chat/ChatSettings/ChatSettingsImportExportTab.svelte @@ -1,9 +1,11 @@
@@ -229,6 +264,25 @@
{/if} + +
+

Delete All Conversations

+ +

+ Permanently delete all conversations and their messages. This action cannot be undone. + Consider exporting your conversations first if you want to keep a backup. +

+ + +
@@ -249,3 +303,15 @@ onCancel={() => (showImportDialog = false)} onConfirm={handleImportConfirm} /> + + diff --git a/tools/server/webui/src/lib/stores/conversations.svelte.ts b/tools/server/webui/src/lib/stores/conversations.svelte.ts index f766561971..3300eb3113 100644 --- a/tools/server/webui/src/lib/stores/conversations.svelte.ts +++ b/tools/server/webui/src/lib/stores/conversations.svelte.ts @@ -385,8 +385,7 @@ class ConversationsStore { this.conversations = this.conversations.filter((c) => c.id !== convId); if (this.activeConversation?.id === convId) { - this.activeConversation = null; - this.activeMessages = []; + this.clearActiveConversation(); await goto(`?new_chat=true#/`); } } catch (error) { @@ -394,6 +393,29 @@ class ConversationsStore { } } + /** + * Deletes all conversations and their messages + */ + async deleteAll(): Promise { + try { + const allConversations = await DatabaseService.getAllConversations(); + + for (const conv of allConversations) { + await DatabaseService.deleteConversation(conv.id); + } + + this.clearActiveConversation(); + this.conversations = []; + + toast.success('All conversations deleted'); + + await goto(`?new_chat=true#/`); + } catch (error) { + console.error('Failed to delete all conversations:', error); + toast.error('Failed to delete conversations'); + } + } + // ───────────────────────────────────────────────────────────────────────────── // Import/Export // ─────────────────────────────────────────────────────────────────────────────