diff --git a/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/chat-panel-messages.ts b/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/chat-panel-messages.ts index 42149fbb8..d1c954a94 100644 --- a/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/chat-panel-messages.ts +++ b/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/chat-panel-messages.ts @@ -71,6 +71,12 @@ export class ChatPanelMessages extends WithDisposable(ShadowlessElement) { user-select: none; } + .message-info { + color: var(--affine-placeholder-color); + font-size: 12px; + font-weight: 400; + } + .avatar-container { width: 24px; height: 24px; @@ -370,6 +376,12 @@ export class ChatPanelMessages extends WithDisposable(ShadowlessElement) { renderAvatar(item: ChatItem) { const isUser = 'role' in item && item.role === 'user'; + const isAssistant = 'role' in item && item.role === 'assistant'; + const isWithDocs = + isAssistant && + item.content && + item.content.includes('[^') && + /\[\^\d+\]:{"type":"doc","docId":"[^"]+"}/.test(item.content); return html`
${isUser @@ -380,6 +392,9 @@ export class ChatPanelMessages extends WithDisposable(ShadowlessElement) {
` : AffineAvatarIcon} ${isUser ? 'You' : 'AFFiNE AI'} + ${isWithDocs + ? html`with your docs` + : nothing} `; } diff --git a/tests/affine-cloud-copilot/e2e/copilot.spec.ts b/tests/affine-cloud-copilot/e2e/copilot.spec.ts index 504f86f63..4d233ec15 100644 --- a/tests/affine-cloud-copilot/e2e/copilot.spec.ts +++ b/tests/affine-cloud-copilot/e2e/copilot.spec.ts @@ -865,7 +865,7 @@ test.describe('chat with doc', () => { name: 'You', content: 'What is AFFiNE AI?', }); - expect(history[1].name).toBe('AFFiNE AI'); + expect(history[1].name).toBe(`AFFiNE AI\nwith your docs`); expect( await page.locator('chat-panel affine-footnote-node').count() ).toBeGreaterThan(0);