diff --git a/tools/server/public/index.html.gz b/tools/server/public/index.html.gz
index 48e341dbd1..5ee68eced2 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/.gitignore b/tools/server/webui/.gitignore
index cc54bb717f..051d884b08 100644
--- a/tools/server/webui/.gitignore
+++ b/tools/server/webui/.gitignore
@@ -25,3 +25,4 @@ vite.config.ts.timestamp-*
*storybook.log
storybook-static
+*.code-workspace
\ No newline at end of file
diff --git a/tools/server/webui/package-lock.json b/tools/server/webui/package-lock.json
index a11b87ad50..4af5e86ab9 100644
--- a/tools/server/webui/package-lock.json
+++ b/tools/server/webui/package-lock.json
@@ -2109,9 +2109,9 @@
}
},
"node_modules/@sveltejs/kit": {
- "version": "2.48.4",
- "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.48.4.tgz",
- "integrity": "sha512-TGFX1pZUt9qqY20Cv5NyYvy0iLWHf2jXi8s+eCGsig7jQMdwZWKUFMR6TbvFNhfDSUpc1sH/Y5EHv20g3HHA3g==",
+ "version": "2.48.5",
+ "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.48.5.tgz",
+ "integrity": "sha512-/rnwfSWS3qwUSzvHynUTORF9xSJi7PCR9yXkxUOnRrNqyKmCmh3FPHH+E9BbgqxXfTevGXBqgnlh9kMb+9T5XA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5087,9 +5087,9 @@
"license": "MIT"
},
"node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
+ "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true,
"license": "MIT",
"dependencies": {
diff --git a/tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessage.svelte b/tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessage.svelte
index e47a5a7dba..ae0dc2ed9f 100644
--- a/tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessage.svelte
+++ b/tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessage.svelte
@@ -10,6 +10,7 @@
class?: string;
message: DatabaseMessage;
onCopy?: (message: DatabaseMessage) => void;
+ onContinueAssistantMessage?: (message: DatabaseMessage) => void;
onDelete?: (message: DatabaseMessage) => void;
onEditWithBranching?: (message: DatabaseMessage, newContent: string) => void;
onEditWithReplacement?: (
@@ -17,6 +18,7 @@
newContent: string,
shouldBranch: boolean
) => void;
+ onEditUserMessagePreserveResponses?: (message: DatabaseMessage, newContent: string) => void;
onNavigateToSibling?: (siblingId: string) => void;
onRegenerateWithBranching?: (message: DatabaseMessage) => void;
siblingInfo?: ChatMessageSiblingInfo | null;
@@ -26,9 +28,11 @@
class: className = '',
message,
onCopy,
+ onContinueAssistantMessage,
onDelete,
onEditWithBranching,
onEditWithReplacement,
+ onEditUserMessagePreserveResponses,
onNavigateToSibling,
onRegenerateWithBranching,
siblingInfo = null
@@ -133,17 +137,33 @@
onRegenerateWithBranching?.(message);
}
+ function handleContinue() {
+ onContinueAssistantMessage?.(message);
+ }
+
function handleSaveEdit() {
if (message.role === 'user') {
+ // For user messages, trim to avoid accidental whitespace
onEditWithBranching?.(message, editedContent.trim());
} else {
- onEditWithReplacement?.(message, editedContent.trim(), shouldBranchAfterEdit);
+ // For assistant messages, preserve exact content including trailing whitespace
+ // This is important for the Continue feature to work properly
+ onEditWithReplacement?.(message, editedContent, shouldBranchAfterEdit);
}
isEditing = false;
shouldBranchAfterEdit = false;
}
+ function handleSaveEditOnly() {
+ if (message.role === 'user') {
+ // For user messages, trim to avoid accidental whitespace
+ onEditUserMessagePreserveResponses?.(message, editedContent.trim());
+ }
+
+ isEditing = false;
+ }
+
function handleShowDeleteDialogChange(show: boolean) {
showDeleteDialog = show;
}
@@ -166,6 +186,7 @@
onEditedContentChange={handleEditedContentChange}
{onNavigateToSibling}
onSaveEdit={handleSaveEdit}
+ onSaveEditOnly={handleSaveEditOnly}
onShowDeleteDialogChange={handleShowDeleteDialogChange}
{showDeleteDialog}
{siblingInfo}
@@ -181,6 +202,7 @@
messageContent={message.content}
onCancelEdit={handleCancelEdit}
onConfirmDelete={handleConfirmDelete}
+ onContinue={handleContinue}
onCopy={handleCopy}
onDelete={handleDelete}
onEdit={handleEdit}
diff --git a/tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageActions.svelte b/tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageActions.svelte
index c16a3105cb..d37d806514 100644
--- a/tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageActions.svelte
+++ b/tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageActions.svelte
@@ -1,5 +1,5 @@