Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions .github/workflows/code-quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,11 @@ jobs:
python -m pip install --upgrade pip
pip install -r requirements.txt

- name: Run Naming Tests
run: python test-env/test-naming-issues.py
- name: Run Tests
run: |
python test-env/test-naming-issues.py
python test-env/test-ai-providers.py
python test-env/test-ai-provider-integration.py

version-check:
runs-on: ubuntu-latest
Expand Down
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,17 @@

All notable changes to Library Manager will be documented in this file.

## [0.9.0-beta.155] - 2026-07-15

### Added
- **Generic local AI provider** - Added a user-configured OpenAI-compatible provider for llama.cpp, LM Studio, vLLM, LocalAI, and similar servers. Library Manager discovers live model IDs from `/v1/models`, supports optional bearer authentication, and uses `/v1/chat/completions` across text verification, localization, and transcript identification.

### Fixed
- **Ollama model selection is no longer locked to a hardcoded model** - Removed runtime and UI fallbacks to specific Ollama model names. Model discovery now accepts `name`, `model`, and string response shapes, excludes embedding-only entries, keeps the model field editable, and auto-selects only when the server exposes exactly one model. Native Ollama requests use bounded structured output, including an explicit array schema for multi-book batches, and both local-provider paths prevent runaway responses.
- **Skaldleita transcripts now reach AI fallbacks** - When Skaldleita transcribes audio but cannot identify the book, the transcript continues through the configured provider chain instead of ending the audio-identification attempt early.
- **Provider selection configures working fallback chains** - Setup and Settings automatically place the selected AI provider into the text and audio fallback chains while preserving Skaldleita as the first hosted audio-identification service.
- **Provider secrets stay server-side** - New and updated `secrets.json` files enforce `0600` permissions, provider keys remain excluded from `config.json`, and Settings receives only configured/not-configured state instead of raw stored tokens.

## [0.9.0-beta.154] - 2026-07-14

### Fixed
Expand Down
15 changes: 14 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,11 @@

## Recent Changes (stable)

> **beta.155** - **Local AI Is Provider-Agnostic**
> - Added llama.cpp and generic OpenAI-compatible API support with live `/v1/models` discovery.
> - Removed hardcoded Ollama model fallbacks and fixed `undefined` model entries across API response shapes.
> - Skaldleita transcripts now continue into the selected AI fallback instead of stopping early.

> **beta.150** - **Fix: Hosted AI Model Picker Uses Live Provider Models** (Issue #216)
> - Replaced stale hardcoded Gemini/OpenRouter model dropdowns with editable model fields backed by live provider model lists.
> - Gemini models load from the configured Gemini key; OpenRouter models load from OpenRouter's `/models` endpoint.
Expand Down Expand Up @@ -419,6 +424,14 @@ See [docs/DOCKER.md](docs/DOCKER.md) for detailed setup guides.
- Multiple model options
- Free tier available

**Ollama**
- Self-hosted with live model discovery from the user's server
- No hardcoded model requirement

**llama.cpp / OpenAI-compatible**
- Works with llama.cpp, LM Studio, vLLM, LocalAI, and compatible `/v1` APIs
- Live model discovery and optional API-key authentication

---

## API Reference
Expand Down Expand Up @@ -561,7 +574,7 @@ The idea for **Skaldleita** (audio fingerprinting + narrator voice identificatio
## Contributing

Pull requests welcome! Ideas:
- [ ] Ollama/local LLM support
- [x] Ollama and generic local LLM support
- [ ] Cover art fetching
- [x] Metadata embedding (added in v0.9.0-beta.20)
- [ ] Movie/music library support
Expand Down
Loading
Loading