Skip to content

Commit b5d947f

Browse files
authored
docs: release beta.156 documentation sync (#271)
2 parents c893c33 + 266df73 commit b5d947f

8 files changed

Lines changed: 19 additions & 11 deletions

File tree

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,14 @@ All notable changes to Library Manager will be documented in this file.
44

55
## [Unreleased]
66

7+
## [0.9.0-beta.156] - 2026-07-15
8+
79
### Changed
810
- **License restored to MIT** - Replaced AGPL-3.0 with the project's original MIT license and updated README and contribution terms to match.
911

12+
### Documentation
13+
- Synchronized the published version, provider lists, Skaldleita credential guidance, multilingual-provider notes, and configured request-rate defaults with current behavior.
14+
1015
## [0.9.0-beta.155] - 2026-07-15
1116

1217
### Added

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
**Smart Audiobook Library Organizer with Multi-Source Metadata & AI Verification**
66

7-
[![Version](https://img.shields.io/badge/version-0.9.0--beta.153-blue.svg)](CHANGELOG.md)
7+
[![Version](https://img.shields.io/badge/version-0.9.0--beta.156-blue.svg)](CHANGELOG.md)
88
[![Docker](https://img.shields.io/badge/docker-ghcr.io-blue.svg)](https://ghcr.io/deucebucket/library-manager)
99
[![License](https://img.shields.io/badge/license-MIT-orange.svg)](LICENSE)
1010

@@ -16,6 +16,10 @@
1616

1717
## Recent Changes (stable)
1818

19+
> **beta.156** - **MIT License and Documentation Sync**
20+
> - Restored the project's MIT license and aligned contribution terms.
21+
> - Synchronized provider, Skaldleita credential, multilingual model, and request-rate guidance with current behavior.
22+
1923
> **beta.155** - **Local AI Is Provider-Agnostic**
2024
> - Added llama.cpp and generic OpenAI-compatible API support with live `/v1/models` discovery.
2125
> - Removed hardcoded Ollama model fallbacks and fixed `undefined` model entries across API response shapes.

app.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
- Multi-provider AI (Gemini, OpenRouter, Ollama, OpenAI-compatible APIs)
1212
"""
1313

14-
APP_VERSION = "0.9.0-beta.155"
14+
APP_VERSION = "0.9.0-beta.156"
1515
GITHUB_REPO = "deucebucket/library-manager" # Your GitHub repo
1616

1717
# Versioning Guide:

docs/Configuration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ When "Backup Tags" is enabled, original tags are saved to `.library-manager.tags
100100
| OpenRouter | Varies by model |
101101
| Ollama / local compatible API | Self-hosted |
102102

103-
The app defaults to 2000 calls/hour to stay well under limits.
103+
Library Manager defaults to 200 requests/hour and allows a configured range of 10-500 requests/hour. Provider-specific backoff and circuit breakers apply when a service returns rate-limit responses.
104104

105105
## Config Files
106106

docs/FAQ.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,7 @@ Just renames folders. Files inside stay exactly where they are - only the folder
3333

3434
### What APIs does it use?
3535

36-
1. Audnexus (Audible data)
37-
2. OpenLibrary (Internet Archive)
38-
3. Google Books
39-
4. Hardcover
36+
Metadata can come from Skaldleita, Audnexus, OpenLibrary, Google Books, and Hardcover. Optional AI verification uses the configured Gemini, OpenRouter, Ollama, or OpenAI-compatible provider.
4037

4138
### Why Gemini over GPT-4?
4239

docs/FEATURE-language-preference.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ def get_localized_metadata(book_info, target_language):
151151
- Gemini: Excellent multilingual (100+ languages)
152152
- GPT-4/OpenRouter: Strong multilingual support
153153
- Ollama (local): Depends on model, Llama 3 has decent multilingual
154+
- llama.cpp/OpenAI-compatible: Depends on the model loaded by the user's server
154155

155156
### Audio Language Detection
156157

@@ -200,7 +201,7 @@ Use cases:
200201
- Audio detection uses existing Gemini integration (no new dependencies)
201202
- Language codes follow ISO 639-1 standard
202203
- Default behavior unchanged for existing users (`en`, preserve=true)
203-
- **AI Translation Strategy**: All AI providers (Gemini, OpenRouter, Ollama) support multilingual prompts
204+
- **AI Translation Strategy**: All configured AI paths (Gemini, OpenRouter, Ollama, and OpenAI-compatible servers) accept multilingual prompts; result quality depends on the selected model
204205
- Add language instruction to existing prompts: "Respond in {language}"
205206
- Titles returned should match user's preferred language when official translations exist
206207
- AI handles translation automatically - no external translation API needed

library_manager/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ def _detect_data_dir():
157157
"openrouter_api_key": "",
158158
"gemini_api_key": "",
159159
"openai_compatible_api_key": "",
160-
"bookdb_api_key": "", # Optional API key for Skaldleita (not required for public endpoints)
160+
"bookdb_api_key": "", # Optional personal key; the bundled shared key is used when empty
161161
"abs_api_token": "",
162162
"webhook_secret": "" # Shared secret for webhook authentication (referenced as {{webhook_secret}} in hook headers)
163163
}

library_manager/hints.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
HINTS = {
77
# === Identification Layers ===
88
'layer_1': 'Database Lookups: Searches Skaldleita, Audnexus, OpenLibrary, Google Books, and Hardcover for metadata matches. Free, fast, no API key needed.',
9-
'layer_2': 'AI Verification: When databases return uncertain matches, AI (Gemini, OpenRouter, or Ollama) cross-checks the results. Uses your configured AI provider.',
9+
'layer_2': 'AI Verification: When databases return uncertain matches, your configured provider (Gemini, OpenRouter, Ollama, or an OpenAI-compatible server) cross-checks the results.',
1010
'layer_3': 'Audio Analysis: Extracts the first 90 seconds of audio to identify the book from narrator intros and title announcements. Can use Skaldleita GPU or your own Gemini API.',
1111
'layer_4': 'Content Analysis: Last resort. Transcribes story text with Whisper and sends it to AI to identify the book. Slowest but catches edge cases other layers miss.',
1212

@@ -15,6 +15,7 @@
1515
'gemini': 'Google Gemini AI. Free tier offers 14,400 calls/day with Gemma 3 models. Handles both text verification and native audio analysis.',
1616
'openrouter': 'API gateway to multiple AI models. Free models available (Llama, Gemma). Used as fallback when Gemini is unavailable or for Layer 4 content analysis.',
1717
'ollama': 'Self-hosted AI. Run models locally with no API costs or rate limits. Requires separate Ollama installation.',
18+
'openai_compatible': 'User-configured local or remote AI server with OpenAI-compatible model and chat-completions endpoints, including llama.cpp, LM Studio, vLLM, and LocalAI.',
1819

1920
# === Confidence & Verification ===
2021
'confidence_threshold': 'Minimum confidence percentage before a book is considered identified. Higher values mean more certainty but slower processing. Lower values accept weaker matches faster.',
@@ -59,7 +60,7 @@
5960
'openai_compatible_api_key': 'Optional bearer token for a user-configured OpenAI-compatible AI server.',
6061
'openai_compatible_url': 'API base URL for llama.cpp, LM Studio, vLLM, LocalAI, or another OpenAI-compatible server.',
6162
'openai_compatible_model': 'Model ID loaded from the configured server. Manual model IDs are also accepted.',
62-
'bookdb_api_key': 'Optional Skaldleita API key. Increases your rate limit from 500 to 1000 requests per hour. Free to register.',
63+
'bookdb_api_key': 'Optional personal Skaldleita API key. When empty, Library Manager uses its bundled shared credential for authenticated metadata and audio requests.',
6364
'google_books_api_key': 'Optional Google Books API key for higher rate limits on book lookups.',
6465
'ai_provider': 'Which AI to try first for text verification. Falls back to other configured providers automatically if the primary fails.',
6566
'provider_chain': 'Order in which providers are tried. If the first one fails or is unavailable, the next one is used automatically.',

0 commit comments

Comments
 (0)