Skip to content

Commit c9c1972

Browse files
authored
Handle legacy 'context' attachments (ggml-org#16687)
1 parent b617cfd commit c9c1972

File tree

5 files changed

+39
-2
lines changed

5 files changed

+39
-2
lines changed

tools/server/public/index.html.gz

34 Bytes
Binary file not shown.

tools/server/webui/src/app.d.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ import type {
3131
DatabaseMessageExtraAudioFile,
3232
DatabaseMessageExtraImageFile,
3333
DatabaseMessageExtraTextFile,
34-
DatabaseMessageExtraPdfFile
34+
DatabaseMessageExtraPdfFile,
35+
DatabaseMessageExtraLegacyContext
3536
} from '$lib/types/database';
3637

3738
import type {
@@ -73,6 +74,7 @@ declare global {
7374
DatabaseMessageExtraImageFile,
7475
DatabaseMessageExtraTextFile,
7576
DatabaseMessageExtraPdfFile,
77+
DatabaseMessageExtraLegacyContext,
7678
SettingsConfigValue,
7779
SettingsFieldConfig,
7880
SettingsConfigType,

tools/server/webui/src/lib/components/app/chat/ChatAttachments/ChatAttachmentsList.svelte

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,17 @@
9494
attachmentIndex: index,
9595
textContent: attachment.content
9696
});
97+
} else if (attachment.type === 'context') {
98+
// Legacy format from old webui - treat as text file
99+
items.push({
100+
id: `attachment-${index}`,
101+
name: attachment.name,
102+
type: 'text',
103+
isImage: false,
104+
attachment,
105+
attachmentIndex: index,
106+
textContent: attachment.content
107+
});
97108
} else if (attachment.type === 'audioFile') {
98109
items.push({
99110
id: `attachment-${index}`,

tools/server/webui/src/lib/services/chat.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,19 @@ export class ChatService {
462462
});
463463
}
464464

465+
// Handle legacy 'context' type from old webui (pasted content)
466+
const legacyContextFiles = message.extra.filter(
467+
(extra: DatabaseMessageExtra): extra is DatabaseMessageExtraLegacyContext =>
468+
extra.type === 'context'
469+
);
470+
471+
for (const legacyContextFile of legacyContextFiles) {
472+
contentParts.push({
473+
type: 'text',
474+
text: `\n\n--- File: ${legacyContextFile.name} ---\n${legacyContextFile.content}`
475+
});
476+
}
477+
465478
const audioFiles = message.extra.filter(
466479
(extra: DatabaseMessageExtra): extra is DatabaseMessageExtraAudioFile =>
467480
extra.type === 'audioFile'

tools/server/webui/src/lib/types/database.d.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,22 @@ export interface DatabaseMessageExtraPdfFile {
3434
processedAsImages: boolean; // Whether PDF was processed as images
3535
}
3636

37+
/**
38+
* Legacy format from old webui - pasted content was stored as "context" type
39+
* @deprecated Use DatabaseMessageExtraTextFile instead
40+
*/
41+
export interface DatabaseMessageExtraLegacyContext {
42+
type: 'context';
43+
name: string;
44+
content: string;
45+
}
46+
3747
export type DatabaseMessageExtra =
3848
| DatabaseMessageExtraImageFile
3949
| DatabaseMessageExtraTextFile
4050
| DatabaseMessageExtraAudioFile
41-
| DatabaseMessageExtraPdfFile;
51+
| DatabaseMessageExtraPdfFile
52+
| DatabaseMessageExtraLegacyContext;
4253

4354
export interface DatabaseMessage {
4455
id: string;

0 commit comments

Comments
 (0)