diff --git a/apps/desktop/src/components/claude-chat/chat-composer.tsx b/apps/desktop/src/components/claude-chat/chat-composer.tsx index 98ca70b..f577442 100644 --- a/apps/desktop/src/components/claude-chat/chat-composer.tsx +++ b/apps/desktop/src/components/claude-chat/chat-composer.tsx @@ -118,9 +118,7 @@ export const ChatComposer: FC<{ isOpen?: boolean }> = ({ isOpen }) => { const setActiveApiCredential = useClaudeSetupStore( (s) => s.setActiveApiCredential, ); - const deleteApiCredential = useClaudeSetupStore( - (s) => s.deleteApiCredential, - ); + const deleteApiCredential = useClaudeSetupStore((s) => s.deleteApiCredential); const activeProviderCredential = openAiCredentials.find( (credential) => credential.id === activeOpenAiCredentialId, @@ -130,9 +128,9 @@ export const ChatComposer: FC<{ isOpen?: boolean }> = ({ isOpen }) => { const selectedProviderCredential = selectedProviderCredentialId && selectedProviderCredentialId !== CLAUDE_CODE_PROVIDER_ID - ? openAiCredentials.find( + ? (openAiCredentials.find( (credential) => credential.id === selectedProviderCredentialId, - ) ?? null + ) ?? null) : selectedProviderCredentialId === CLAUDE_CODE_PROVIDER_ID ? null : activeProviderCredential; @@ -288,7 +286,9 @@ export const ChatComposer: FC<{ isOpen?: boolean }> = ({ isOpen }) => { .then((models) => { if (cancelled) return; const options = Array.from( - new Set([selectedProviderCredential.model, ...models].filter(Boolean)), + new Set( + [selectedProviderCredential.model, ...models].filter(Boolean), + ), ); setProviderModelOptions((prev) => ({ ...prev, @@ -312,11 +312,7 @@ export const ChatComposer: FC<{ isOpen?: boolean }> = ({ isOpen }) => { return () => { cancelled = true; }; - }, [ - modelPickerOpen, - providerModelOptions, - selectedProviderCredential, - ]); + }, [modelPickerOpen, providerModelOptions, selectedProviderCredential]); // Pinned contexts — supports multiple files/selections const [pinnedContexts, setPinnedContexts] = useState([]); @@ -965,9 +961,9 @@ export const ChatComposer: FC<{ isOpen?: boolean }> = ({ isOpen }) => { }, ]; const activeProviderModelOptions = selectedProviderCredential - ? providerModelOptions[selectedProviderCredential.id] ?? [ + ? (providerModelOptions[selectedProviderCredential.id] ?? [ selectedProviderCredential.model, - ] + ]) : []; const activeProviderModelsLoading = !!selectedProviderCredential && @@ -1046,7 +1042,8 @@ export const ChatComposer: FC<{ isOpen?: boolean }> = ({ isOpen }) => { {openAiCredentials.map((credential) => { - const active = selectedProviderCredential?.id === credential.id; + const active = + selectedProviderCredential?.id === credential.id; const displayName = getProviderDisplayName({ label: credential.label, baseUrl: credential.base_url, @@ -1130,7 +1127,7 @@ export const ChatComposer: FC<{ isOpen?: boolean }> = ({ isOpen }) => { ); })} @@ -1253,7 +1248,7 @@ export const ChatComposer: FC<{ isOpen?: boolean }> = ({ isOpen }) => { )} - + Add AI Provider diff --git a/apps/desktop/src/components/claude-chat/session-selector.tsx b/apps/desktop/src/components/claude-chat/session-selector.tsx index 5e956e3..44fbd13 100644 --- a/apps/desktop/src/components/claude-chat/session-selector.tsx +++ b/apps/desktop/src/components/claude-chat/session-selector.tsx @@ -221,8 +221,7 @@ export function SessionSelector() { : "Delete session" } disabled={ - sessionIsStreaming || - deletingId === session.session_id + sessionIsStreaming || deletingId === session.session_id } onPointerDown={(event) => event.stopPropagation()} onClick={(event) => { diff --git a/apps/desktop/src/components/workspace/sidebar.tsx b/apps/desktop/src/components/workspace/sidebar.tsx index 5ca50a9..20b6269 100644 --- a/apps/desktop/src/components/workspace/sidebar.tsx +++ b/apps/desktop/src/components/workspace/sidebar.tsx @@ -768,7 +768,10 @@ export function Sidebar() { onClick={() => void runRefreshFiles()} >