feat(ollama): add availability check before model operations

Add `ensureOllamaAvailable` function to lib/ollama.ts for checking and waiting for Ollama server health with configurable timeout.

Integrate the check in GET /api/ollama/models route with 3s timeout to prevent UI blocking, and in POST /api/ollama/pull route with 20s timeout to ensure availability before pulling models.

Update ChatContainer to always render ModelDropdown for better UX when no model is selected.
This commit is contained in:
Evandro Fonseca Junior committed 2025-10-29 16:21:49 -03:00
1 parent f96d4ed696
commit 7b2386876a
12 files changed
+211 -20

No files matched your search

+9 -13
View File
@@ -435,20 +435,16 @@ export function ChatContainer({
<div className="border-b border-[var(--border)] p-4 flex items-center justify-between gap-3 flex-shrink-0">
<div className="flex items-center gap-3">
<h1 className="text-lg font-semibold">
{selectedModelData
? "Chat with"
: "Select a model to start chatting"}
{selectedModelData ? "Chat with" : "Select a model to start chatting"}
</h1>
{selectedModelData && (
<ModelDropdown
models={models}
selectedModel={selectedModel}
onSelectModel={handleSelectModel}
onDeleteModel={handleDeleteModel}
onPullModel={handlePullModel}
disabled={isStreaming}
/>
)}
<ModelDropdown
models={models}
selectedModel={selectedModel}
onSelectModel={handleSelectModel}
onDeleteModel={handleDeleteModel}
onPullModel={handlePullModel}
disabled={isStreaming}
/>
</div>
<div className="flex items-center gap-2">
<SettingsModal