]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
Handle legacy 'context' attachments (#16687)
authorAleksander Grygier <redacted>
Mon, 20 Oct 2025 17:49:02 +0000 (19:49 +0200)
committerGitHub <redacted>
Mon, 20 Oct 2025 17:49:02 +0000 (19:49 +0200)
tools/server/public/index.html.gz
tools/server/webui/src/app.d.ts
tools/server/webui/src/lib/components/app/chat/ChatAttachments/ChatAttachmentsList.svelte
tools/server/webui/src/lib/services/chat.ts
tools/server/webui/src/lib/types/database.d.ts

index 816fdb786a7afc127daf1ef9a092927791baadb5..08450a93cb3f43e837577a80f9f1b048d76e56af 100644 (file)
Binary files a/tools/server/public/index.html.gz and b/tools/server/public/index.html.gz differ
index e9bb140939886b9918624e3b3d62bb5eb79d7d44..eb14d6fe45143a9c63a322b170a959943a87760a 100644 (file)
@@ -31,7 +31,8 @@ import type {
        DatabaseMessageExtraAudioFile,
        DatabaseMessageExtraImageFile,
        DatabaseMessageExtraTextFile,
-       DatabaseMessageExtraPdfFile
+       DatabaseMessageExtraPdfFile,
+       DatabaseMessageExtraLegacyContext
 } from '$lib/types/database';
 
 import type {
@@ -73,6 +74,7 @@ declare global {
                DatabaseMessageExtraImageFile,
                DatabaseMessageExtraTextFile,
                DatabaseMessageExtraPdfFile,
+               DatabaseMessageExtraLegacyContext,
                SettingsConfigValue,
                SettingsFieldConfig,
                SettingsConfigType,
index 0007c4c0b4597df2e888f5c506eca5dae78560ee..e378139d1b62667299afc5089e8ba756f82e7d89 100644 (file)
                                        attachmentIndex: index,
                                        textContent: attachment.content
                                });
+                       } else if (attachment.type === 'context') {
+                               // Legacy format from old webui - treat as text file
+                               items.push({
+                                       id: `attachment-${index}`,
+                                       name: attachment.name,
+                                       type: 'text',
+                                       isImage: false,
+                                       attachment,
+                                       attachmentIndex: index,
+                                       textContent: attachment.content
+                               });
                        } else if (attachment.type === 'audioFile') {
                                items.push({
                                        id: `attachment-${index}`,
index 99dc3da9f3feafd103e3800f1834d3bb17448f74..2c4e53a02b2da01aa55aaa7172dd61d02e99218e 100644 (file)
@@ -462,6 +462,19 @@ export class ChatService {
                        });
                }
 
+               // Handle legacy 'context' type from old webui (pasted content)
+               const legacyContextFiles = message.extra.filter(
+                       (extra: DatabaseMessageExtra): extra is DatabaseMessageExtraLegacyContext =>
+                               extra.type === 'context'
+               );
+
+               for (const legacyContextFile of legacyContextFiles) {
+                       contentParts.push({
+                               type: 'text',
+                               text: `\n\n--- File: ${legacyContextFile.name} ---\n${legacyContextFile.content}`
+                       });
+               }
+
                const audioFiles = message.extra.filter(
                        (extra: DatabaseMessageExtra): extra is DatabaseMessageExtraAudioFile =>
                                extra.type === 'audioFile'
index 7f6b76ba271cc087ffde989dccbc70b462560316..b5318b73f41080cb72407262df6746748b30e75d 100644 (file)
@@ -34,11 +34,22 @@ export interface DatabaseMessageExtraPdfFile {
        processedAsImages: boolean; // Whether PDF was processed as images
 }
 
+/**
+ * Legacy format from old webui - pasted content was stored as "context" type
+ * @deprecated Use DatabaseMessageExtraTextFile instead
+ */
+export interface DatabaseMessageExtraLegacyContext {
+       type: 'context';
+       name: string;
+       content: string;
+}
+
 export type DatabaseMessageExtra =
        | DatabaseMessageExtraImageFile
        | DatabaseMessageExtraTextFile
        | DatabaseMessageExtraAudioFile
-       | DatabaseMessageExtraPdfFile;
+       | DatabaseMessageExtraPdfFile
+       | DatabaseMessageExtraLegacyContext;
 
 export interface DatabaseMessage {
        id: string;