diff --git a/src/renderer/components/ChatPanel/ChatPanel.css b/src/renderer/components/ChatPanel/ChatPanel.css index bbd737e..0e9a8fc 100644 --- a/src/renderer/components/ChatPanel/ChatPanel.css +++ b/src/renderer/components/ChatPanel/ChatPanel.css @@ -55,6 +55,8 @@ right: 0; margin-top: 4px; min-width: 160px; + max-height: 300px; + overflow-y: auto; background-color: var(--vscode-dropdown-background); border: 1px solid var(--vscode-dropdown-border); border-radius: 4px; diff --git a/src/renderer/components/ChatPanel/ChatPanel.tsx b/src/renderer/components/ChatPanel/ChatPanel.tsx index de15d83..0f90b4d 100644 --- a/src/renderer/components/ChatPanel/ChatPanel.tsx +++ b/src/renderer/components/ChatPanel/ChatPanel.tsx @@ -44,7 +44,7 @@ export const ChatPanel: React.FC = ({ conversationId }) => { // Load conversation and messages const loadData = useCallback(async () => { try { - const [conv, msgs, models] = await Promise.all([ + const [conv, msgs, modelsResult] = await Promise.all([ window.electronAPI?.chat.getConversation(conversationId), window.electronAPI?.chat.getHistory(conversationId), window.electronAPI?.chat.getAvailableModels() @@ -52,7 +52,7 @@ export const ChatPanel: React.FC = ({ conversationId }) => { if (conv) setConversation(conv); if (msgs) setMessages(msgs); - if (models) setAvailableModels(models); + if (modelsResult?.models) setAvailableModels(modelsResult.models); } catch (error) { console.error('Failed to load chat data:', error); } diff --git a/src/renderer/types/electron.d.ts b/src/renderer/types/electron.d.ts index e32f84b..1f276a8 100644 --- a/src/renderer/types/electron.d.ts +++ b/src/renderer/types/electron.d.ts @@ -341,7 +341,7 @@ export interface ElectronAPI { getApiKey: () => Promise; // Settings - getAvailableModels: () => Promise; + getAvailableModels: () => Promise<{ success: boolean; models?: ChatModel[]; selectedModel?: string; error?: string }>; setDefaultModel: (modelId: string) => Promise; getSystemPrompt: () => Promise; setSystemPrompt: (prompt: string) => Promise;