-
version-0.4.8
StableAll checks were successfulRelease / create-release (push) Successful in 9sreleased this
2026-09-01 22:49:44 +02:00 | 220 commits to main since this releaseQobuz Caching & Persistence
- Migrated
QobuzCacheto a persistent SQLite backend storing JSON payloads with configurable, per-collection TTLs and automatic expiration purging (every 6 hours). - Implemented dual expiration regime: sliding expiration for media metadata, fixed expiration for playlists, searches, and stream URLs.
- Introduced
CacheEntrywrapper with payload data and metadata, supporting optional bundle version parameters for proactive invalidation during bundle rotations. - Added thread-safe bundle version tracking to enforce strict agent interaction rules, propagate response timestamps, and prevent redundant network requests via enriched entity persistence.
Favorites System
- Replaced legacy cache module with an async
FavoriteStorebacked by SQLite for persistent ID storage. - Extended
FavoriteKindenum with aPlaylistvariant; added client methods to fetch, filter by owner ID, and cache playlist favorites. - Unified favorite verification via centralized
is_favorite(kind, id)method. - Added background synchronization (120s TTL) to maintain local indexes without blocking reads.
API & Client Improvements
-
Implemented generic pagination with a reusable
paginatemethod andPaginatedResponse<T>structure, automatically iterating until exhaustion or incomplete retrieval. -
Updated API struct to use
RwLock<AudioFormat>for thread-safe access; refactored client state sharing viaArc. -
Wired cache through mandatory client configuration with dedicated storage directory settings.
-
Added CLI example for exporting favorite albums.
-
Bumped project version from 0.4.6 to 0.4.8 across metadata files and workflow scripts.
-
Enhanced Makefile release loop and improved JSON parsing robustness to prevent downstream failures during tag processing.
-
Added internal documentation outlining cache architecture, development workflow, collection definitions, API behavior, and test requirements.
-
Updated
.gitignoreto preserve new source directories; removed obsolete prompt file and applied minor formatting adjustments.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Migrated