diff --git a/CHANGELOG.md b/CHANGELOG.md index b4244ff..3bcaaf5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,40 @@ All notable changes to Library Desk will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.5.0] - 2025-12-26 + +### Added + +- **Central Settings Database** - Tatlock-wide configuration via PostgreSQL + - `SettingsClient` for async access to `system_settings` database + - User-scoped settings with global fallback + - API config storage with `enabled` toggle and per-source category filters + - JSON Schema support for future UI rendering + +- **External API Providers** - Modular `src/apis/` package with swappable implementations + - `OpenMeteoProvider` - Weather with geocoding (free, no API key) + - `NOSProvider` - Dutch news RSS (16 categories including sports) + - `BBCProvider` - English news RSS (21 categories including sports) + - `AggregatedNewsProvider` - Merges sources chronologically with category filtering + - `AlphaVantageProvider` - Stock/crypto quotes (API key from settings DB) + - Abstract base classes for provider interoperability + +- **Provider Dependency Injection** + - `WeatherProviderDep`, `NewsProviderDep`, `AlphaVantageProviderDep` type aliases + - Async initialization with settings database integration + - Lifecycle management in `shutdown_clients()` + +- **Development Dependencies** - `requirements-dev.txt` + - `pip-audit` for security vulnerability scanning + - `ruff` for code quality + - Testing packages moved from main requirements + +### Changed + +- News sources configurable via `news.sources` setting +- Per-source category filtering via `api.{source}.categories` +- Categories default to all if not specified + ## [1.4.8] - 2025-12-25 ### Added diff --git a/pyproject.toml b/pyproject.toml index 2744a6e..454995c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "library-desk" -version = "1.4.9" +version = "1.5.0" description = "Coordination service for The Library system - HybridRAG queries, document ingestion, entity extraction, and knowledge consolidation" readme = "README.md" requires-python = ">=3.12"