From b64023d69a086b1a985535cbc88067eea5e72a8d Mon Sep 17 00:00:00 2001 From: hugo Date: Sun, 15 Feb 2026 10:00:37 +0100 Subject: [PATCH] fix: better chat window with long queries --- src/main/engine/ChatEngine.ts | 4 ++-- src/renderer/components/ChatPanel/ChatPanel.css | 3 ++- src/renderer/components/ChatPanel/ChatPanel.tsx | 11 ++++++++++- tests/engine/ChatEngine.test.ts | 4 ++-- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/main/engine/ChatEngine.ts b/src/main/engine/ChatEngine.ts index 2a0aa07..0ca1b77 100644 --- a/src/main/engine/ChatEngine.ts +++ b/src/main/engine/ChatEngine.ts @@ -50,7 +50,7 @@ export class ChatEngine { const drizzle = this.db.getLocal(); const id = `chat_${uuidv4()}`; const title = input.title || 'New Chat'; - const model = input.model || 'claude-sonnet-4'; + const model = input.model || 'claude-sonnet-4-5'; const now = new Date(); await drizzle.insert(chatConversations).values({ @@ -383,7 +383,7 @@ When answering questions: return rows[0].value; } - return 'claude-sonnet-4'; + return 'claude-sonnet-4-5'; } /** diff --git a/src/renderer/components/ChatPanel/ChatPanel.css b/src/renderer/components/ChatPanel/ChatPanel.css index 103f2c0..309250f 100644 --- a/src/renderer/components/ChatPanel/ChatPanel.css +++ b/src/renderer/components/ChatPanel/ChatPanel.css @@ -308,7 +308,7 @@ .chat-input { flex: 1; min-height: 24px; - max-height: 120px; + max-height: 200px; padding: 0; font-size: 14px; font-family: inherit; @@ -318,6 +318,7 @@ border: none; outline: none; resize: none; + overflow-y: auto; } .chat-input::placeholder { diff --git a/src/renderer/components/ChatPanel/ChatPanel.tsx b/src/renderer/components/ChatPanel/ChatPanel.tsx index d65d22b..730a5ba 100644 --- a/src/renderer/components/ChatPanel/ChatPanel.tsx +++ b/src/renderer/components/ChatPanel/ChatPanel.tsx @@ -140,6 +140,10 @@ export const ChatPanel: React.FC = ({ conversationId }) => { if (!message || isStreaming) return; setInputValue(''); + // Reset textarea height + if (inputRef.current) { + inputRef.current.style.height = 'auto'; + } setIsStreaming(true); streamingRef.current = ''; setStreamingContent(''); @@ -480,7 +484,12 @@ export const ChatPanel: React.FC = ({ conversationId }) => { ref={inputRef} className="chat-input" value={inputValue} - onChange={(e) => setInputValue(e.target.value)} + onChange={(e) => { + setInputValue(e.target.value); + // Auto-grow the textarea + e.target.style.height = 'auto'; + e.target.style.height = `${Math.min(e.target.scrollHeight, 200)}px`; + }} onKeyDown={handleKeyDown} placeholder="Type a message..." rows={1} diff --git a/tests/engine/ChatEngine.test.ts b/tests/engine/ChatEngine.test.ts index a4bafc2..25c71df 100644 --- a/tests/engine/ChatEngine.test.ts +++ b/tests/engine/ChatEngine.test.ts @@ -130,7 +130,7 @@ describe('ChatEngine', () => { expect(result.id).toMatch(/^chat_mock-uuid-/); expect(result.title).toBe('New Chat'); - expect(result.model).toBe('claude-sonnet-4'); + expect(result.model).toBe('claude-sonnet-4-5'); expect(result.createdAt).toBeInstanceOf(Date); expect(result.updatedAt).toBeInstanceOf(Date); }); @@ -768,7 +768,7 @@ describe('ChatEngine', () => { const result = await chatEngine.getSelectedModel(); - expect(result).toBe('claude-sonnet-4'); + expect(result).toBe('claude-sonnet-4-5'); }); });