Releases: TimilsinaBimal/Watchly
Release list
Release 1.13.1 - Sagarmatha
Summary
This patch bumps the application to v1.13.1 and includes targeted bug fixes to token handling, improving reliability and security around OAuth tokens.
Bug Fixes
- Auth: Skip provider verification for masked tokens to avoid unnecessary verification steps when tokens are masked in logs or configs.
- Configure: Do not clobber live OAuth tokens with the stored-secret marker; active tokens are preserved and not overwritten by secret markers.
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.
Release 1.12.0 - Sagarmatha
Summary
This release expands provider integrations, strengthens authentication flows, and improves user experience around Nuvio, Trakt/Simkl, and LLM/provider support. It introduces dynamic poster URL placeholders, a more flexible login model, and streamlined Nuvio installation flows.
Features
- Surface Nuvio support on the homepage to showcase latest integration and quick access.
- One-click Install on Nuvio via Nuvio Sync to simplify onboarding.
- UI enhancements for selecting LLM providers, enabling any LLM provider through a user-key approach powered by pydantic-ai.
- Poster URLs now support {type} placeholder in custom posters for dynamic posters.
- Configure: load saved settings automatically when logging in with Trakt or Simkl to preserve session state.
- Configure: allow Trakt/Simkl-only setup directly from the UI for a streamlined setup.
- Catalogs: serve Trakt/Simkl-only accounts without requiring Stremio authentication.
- Auth: allow any provider to perform a full login, not limited to Stremio.
- Auth: align identities with provider accounts and deduplicate duplicates to improve identity resolution.
Bug Fixes
- fix(nuvio): Harden the third-party sign-in prompt to reduce friction and improve reliability.
- fix(auth): Prevent identity lookup from leaking the user's other secrets.
- fix(auth): Avoid blocking account saves due to stale provider tokens.
- fix(catalogs): Accept minted base64url tokens in route validation for safer token handling.
Improvements
- General reliability and UX improvements across login flows and account setup, including more robust handling of third-party sign-in prompts and token validation.
Release 1.11.1 - Sagarmatha Summit
Summary
- Release 1.11.1 improves reliability, configurability, and documentation. Key fixes include aligning signal data sources, respecting Retry-After for HTTP retries, bounding enrichment concurrency, and aligning cache bootstrapping with configured sources.
Features
- No new user-facing features in this release.
Bug Fixes
- Single source of truth for popularity and other signals: centralizes signal calculation to ensure consistent behavior across components.
- Cache bootstrap: bootstrapping now respects the configured watch_history_source, aligning cache data with user configuration.
- HTTP: Retry-After header is now honored for 429 responses, resulting in smarter backoff and reduced unnecessary retries.
- Profile builder: bounds TMDB enrichment concurrency to prevent resource contention and improve stability.
Improvements
- Documentation improvements: expanded guidance for multi-source history, catalog engines, and full configuration.
- Claude documentation: updated to replace coding standards with coding-mindset and write-like-a-human guidance to reflect modern practices.
Release 1.11.0 - Sagarmatha Dawn
Summary
This release introduces a new logged-in user dashboard, adds support for custom poster URLs, improves API documentation accessibility in the Vercel environment, and simplifies donation options by removing the Ko-fi option. The project version has been bumped to reflect these updates.
Features
- Logged-in User Dashboard: Provides a personalized overview for authenticated users with quick actions and summary of activity.
- Custom Poster URLs: Allow specifying custom poster URLs to customize visuals for previews and shares.
Improvements
- Swagger API docs now exposed in the Vercel environment, making API references easier to access in production deployments.
UI/UX Changes
- Ko-fi donation option removed; Buy Me MoMo remains as the sole supported donation method to streamline the user experience.
Version
- Bumped version to v1.11.0 to align with the new features and improvements.
Release 1.10.0 - Machhapuchhre-Continuum
Release Notes
Summary
This milestone delivers a substantial modernization of the platform, focusing on architectural improvements, richer localization, smarter media assets, and deeper integrations with external services. Users will experience more accurate and language-aware media representations, more resilient authentication and token handling, and richer, personalized watch history data for smarter recommendations. The changes also consolidate and simplify numerous internal services for better maintainability and performance.
Features
- Language-aware media assets: posters and logo backgrounds are now retrieved in the user language from TMDB for a more cohesive localization experience.
- Catalog metadata enhancements: added logo support and normalized IMDb ratings to ensure consistent catalog presentation.
- User-centric cache controls: introduced opt-out flags for token negative caches and rate limiting to give users and administrators finer control over caching behavior.
- Per-user caching improvements: bound Redis caches to 90 days with refresh-on-read to improve responsiveness while keeping data fresh.
- Automatic token refresh: Trakt and Simkl access tokens now refresh automatically when expired, reducing interruptions.
- Watch history integrations: added seamless integration with Trakt and Simkl to enrich user history data used for recommendations.
- New profile and scoring models: introduced enhanced data handling and scoring models to improve personalization.
- User context service: new service for managing user data and settings in a centralized way.
- Dynamic content rows: added new row-building functions to support dynamic content generation in the row_generator service.
- Simplified sampling logic: replaced SmartSampler with a standalone sample_items function for clearer and more maintainable code.
- Authentication enhancements: introduced a dedicated auth service and refactored token endpoints for a cleaner authentication workflow.
- Opt-out capabilities: additional opt-out flags for token negative cache and rate limiting provide better control for edge cases.
Improvements & Refactors
- Core service modernization: migrated Trakt and Simkl services to a common BaseClient for improved testability, consistency, and performance.
- Catalog data model improvements: watchly.item display name is now visible and read-only; merged watchly.loved and watchly.watched into watchly.item for a unified data model.
- Profile and integration consolidation: refactored profile section and merged profile service with integration components to streamline user data handling.
- Front-end modularization: broke down frontend components into separate files for easier maintenance and evolution.
- Translation and localization: refactored translation module with better fallbacks and caching behavior; added static regex values to correct German translations; avoided caching failed translation fallbacks.
- Recommendation system refinements: clarified item-based candidate fetching, improved diversity handling, and adjusted year-era bucketing logic for more meaningful recommendations.
- Library and ingestion improvements: library ingestion now respects IMDb prefix consistently and can rebuild from Trakt/Simkl sources when configured.
- Cleanup and modernization: removed obsolete migration scripts, tightened token-related regex and startup logging, and performed various low-severity cleanup tasks to improve stability.
Bug Fixes
- Model compatibility: replaced deprecated gemma3 model with gemma4 to align with current APIs.
- Token and caching fixes: removed unnecessary negative token cache to prevent stale decisions; reduced token TTL and improved security around token handling.
- Translation fixes: avoid word-for-word title translations in certain cases and reuse the meta language; improved German translation handling and removed problematic caching on API failures.
- API and webhook fixes: token DELETE endpoints now return JSON objects; OAuth callback pages are properly HTML-escaped to prevent injection issues; CSRF state validation added to OAuth callbacks.
- Watch history and data integrity: ensured Simkl provides accurate watch counts; cleaned up token refresh flows and 401/403 handling by clearing revoked tokens.
- Ingestion and catalog fixes: ensured IMDb prefix presence during ingestion; guard against malformed cinemeta values; fall back gracefully when seed item has no title.
- Performance and reliability: differentiation of 404 vs 5xx errors in TMDB lookups to improve logging accuracy; reuse of AsyncClient instances across calls for efficiency.
- Privacy and security: ensured catalog responses are privately cached where appropriate; eliminated exposure of raw exception details in catalog 500 responses.
- Miscellaneous fixes: corrected library construction from configured sources and improved overall error handling and resilience across services.
Deprecations & Migrations
- Gemma model upgrade: deprecated gemma3 model in favor of gemma4 to align with updated external APIs and data structures.
Known Considerations
- The refactors introduce architectural changes that may require configuration alignment in some deployments. Review related docs for any changes to BaseClient usage and auth endpoints.
Notes for Developers
- This release focuses on stability, localization quality, and scalable architecture. If you customize catalog metadata or translation behavior, review the new integration points and token handling policies.
Release 1.9.7 - Sagarmatha-Refine
Summary
This release updates the core model usage by migrating from the deprecated gemma3 model to gemma4, and enhances the user experience with improved French translations.
Improvements
- Upgraded core model from gemma3 to gemma4, replacing deprecated usage and aligning with the latest APIs for better stability and future compatibility.
- Enhanced French translations across the UI for a more natural phrasing and consistency (PR #130).
Release 1.9.6 - Sagarmatha
Summary
This patch removes an unnecessary negative token cache from the authentication flow, simplifying the verification path and reducing memory usage.
Bug Fixes
- Removed the negative token cache for failed token verifications. This eliminates potential edge cases stemming from cached negatives and ensures correctness when token state changes.
- Reduces memory footprint associated with token caching.
Improvements
- Cleaner authentication code path with easier maintenance. Fewer caches to reason about.
Release 1.9.5 - Sagarmatha
Summary
This release is a maintenance update focused on upgrading a set of project dependencies to newer versions. There are no new features or user-facing changes, but the updates improve security, compatibility, and stability across the ecosystem.
Improvements
- Upgraded selected dependencies to the latest safe minor/patch versions to address security advisories and compatibility with modern toolchains.
- Alignment with current ecosystem standards to ensure smoother operation in newer runtimes.
Bug Fixes
- No user-facing bugs fixed in this release.
Security
- Dependency upgrades include security patches and mitigations where applicable. No action required for users beyond building with updated dependencies.
Upgrade Notes
- This update does not introduce API changes. Users should run their normal build processes to adopt the updated dependencies.
Release 1.9.4 - Sagarmatha Vista
Release 1.9.4
Summary
This release bumps the application to version 1.9.4 and focuses on localization-driven visuals and translation quality. It adds language-aware imagery pulled from TMDB, fixes title translation behavior, and enhances the README with contributor visuals.
Features
- Language-aware imagery for posters and logo backgrounds are now localized using TMDB data to reflect the active language.
Bug Fixes
- Translation: Title translation now reuses the meta language title instead of a literal word-for-word translation, ensuring consistency with the configured language.
Improvements
- Documentation: README updated to include contributor images for better attribution.
Notes
- Version bump performed as part of the release process (1.9.3 -> 1.9.4).