feat: add release notes to install script and smart embedding model detection

Install script improvements:
- Show release notes after --update completes
- Detect installed version from backend/cmd/server/main.go
- Fetch releases from GitHub API and display changes between versions
- Graceful fallback when jq not installed (shows link only)

Embedding model detection:
- Add EMBEDDING_MODEL_PATTERNS for detecting embedding models
- Add embeddingModels and hasEmbeddingModel derived properties
- KnowledgeTab shows embedding model status conditionally
- MemoryTab shows model installation status with three states
This commit is contained in:
2026-01-07 20:30:33 +01:00
parent 245526af99
commit c2136fc06a
4 changed files with 145 additions and 13 deletions

View File

@@ -75,9 +75,25 @@
<option value={model}>{model}</option>
{/each}
</select>
<p class="mt-2 text-xs text-theme-muted">
Note: The model must be installed in Ollama. Run <code class="bg-theme-tertiary px-1 rounded">ollama pull {settingsState.embeddingModel}</code> if not installed.
</p>
{#if !modelsState.hasEmbeddingModel}
<p class="mt-2 text-xs text-amber-400">
No embedding model installed. Run <code class="bg-theme-tertiary px-1 rounded text-theme-muted">ollama pull {settingsState.embeddingModel}</code> to enable semantic search.
</p>
{:else}
{@const selectedInstalled = modelsState.embeddingModels.some(m => m.name.includes(settingsState.embeddingModel.split(':')[0]))}
{#if !selectedInstalled}
<p class="mt-2 text-xs text-amber-400">
Selected model not installed. Run <code class="bg-theme-tertiary px-1 rounded text-theme-muted">ollama pull {settingsState.embeddingModel}</code> or select an installed model.
</p>
<p class="mt-1 text-xs text-theme-muted">
Installed: {modelsState.embeddingModels.map(m => m.name).join(', ')}
</p>
{:else}
<p class="mt-2 text-xs text-emerald-400">
Model installed and ready.
</p>
{/if}
{/if}
</div>
<!-- Auto-Compact Toggle -->