Release 1.13.0 - Sagarmatha Dawn
Summary
This release ushers in centralized API error handling, strengthened logging, broader profile sampling, and a broad set of performance improvements. It also simplifies the homepage UI by removing the taste-profile card and applies several domain and data fixes. Version 1.13.0 carries a Nepal-inspired name to celebrate new heights: Sagarmatha Dawn.
Features
- Centralized API error handling: errors are now managed in one place rather than at each endpoint, reducing duplication and improving consistency.
- Enhanced logging: configure Loguru, tag every log line with a request ID, and suppress sensitive credentials from tracebacks for safer, cleaner logs.
- Warm-up progress visibility: users see warm-up progress before handing over the final URL, improving perceived readiness.
- Profile sampling expansion: sampling increased from 30 items to up to 200 library items for richer, more accurate taste profiles.
- Homepage simplification: removed the taste-profile feature card to streamline the landing experience.
Improvements
- Config UI refinement: the saved-key marker is replaced with a fingerprint display for clearer identification.
- Profile workflow enhancements:
- Sampling quota is weighted toward rated titles to better reflect user preferences.
- Strongest items are prioritized during sampling instead of an arbitrary slice.
- Incremental, two-source change-detection mechanism improves efficiency.
- Trakt/Simkl items are now scored with the real scorer, improving accuracy and consistency.
- Reuse unchanged Trakt/Simkl taste profiles to avoid unnecessary recomputation.
Performance Enhancements
- Catalogs: serve stable slot IDs to prevent unnecessary refreshes caused by shifting slots; refresh behind the response for smoother UX.
- Catalogs: serve stale rows immediately and refresh in the background to keep data fresh without blocking.
- Install: warm accounts in the background and cache the manifest for faster initial access.
- Cache: compress large per-user cache values to reduce memory and bandwidth.
- Manifest handling: drop the manifest when all user data is invalidated to avoid stale metadata.
- Watch history handling: page through the entire Trakt watch history to ensure complete data retrieval.
Bug Fixes
- Poster domain: follow Top Posters to the new domain to ensure continued availability.
- Translation: map ISO language codes to Google-friendly names consistently to improve localization.
- Trakt paging: fix paging to ensure complete watch history is retrieved.
- Configure UI: do not show the saved-key marker; show a fingerprint instead for clearer security indicators.
Refactors / Architecture
- Refactor(profile): drop the external history round trip to simplify data flow.
- Refactor(profile): score Trakt/Simkl items using the real scorer for accuracy.
- Refactor(profile): reuse unchanged Trakt/Simkl taste profiles to optimize performance.
- Refactor(homepage): drop the taste-profile feature card as part of UI simplification.