/
/
/
# What does this implement/fix? Refactors the existing library-based recommendation rows (previously hardcoded in the controller) into a standalone `PluginProvider`, enabling better modularity and consistency with other recommendation sources. As part of this refactor, adds 5 new discovery folders that utilize the library's playback history: - **Forgotten Tracks/Albums/Artists**: Library items least recently played (uses new `played_only` parameter from #4502) - **Most Played Tracks**: Library tracks with highest play count - **Never / Rarely Played**: Library tracks with the lowest play count **Note:** All 11 existing library recommendation folders (In Progress, Recently Played, Recently Added, Recently Favorited, Favorite Playlists, Favorite Radio, etc.) are preserved with identical functionality, but are now **disabled by default**. Users can re-enable any folder individually via the Discover page settings. Existing user preferences (if previously configured) are preserved. The new plugin loads at startup and integrates seamlessly with the existing recommendation controller. Each folder can be individually toggled on/off on the Discover page and displays 10 items. ## Types of changes - [ ] Bugfix (non-breaking change which fixes an issue) — `bugfix` - [ ] New feature (non-breaking change which adds functionality) — `new-feature` - [ ] Enhancement to an existing feature — `enhancement` - [x] New music/player/metadata/plugin provider — `new-provider` - [x] Breaking change (fix or feature that would cause existing functionality to not work as expected) — `breaking-change` - [x] Refactor (no behaviour change) — `refactor` - [ ] Documentation only — `documentation` - [ ] Maintenance / chore — `maintenance` - [ ] CI / workflow change — `ci` - [ ] Dependencies bump — `dependencies` ## Checklist - [x] The code change is tested and works locally. - [x] `pre-commit run --all-files` passes. - [x] `pytest` passes, and tests have been added/updated under `tests/` where applicable. - [ ] For changes to shared models, the companion PR in `music-assistant/models` is linked. - [ ] For changes affecting the UI, the companion PR in `music-assistant/frontend` is linked. - [x] I have read and complied with the project's [AI Policy](https://github.com/music-assistant/.github/blob/main/AI_POLICY.md) for any AI-assisted contributions. - [ ] I have raised a PR against the documentation repository targeting the main or beta branch as appropriate. ### Screenshots #### Forgotten Tracks <img width="1349" height="296" alt="forgotten tracks" src="https://github.com/user-attachments/assets/775fd87a-6895-41cf-a270-48cdc91f2d58" /> #### Forgotten Albums <img width="1349" height="296" alt="forgotten albums" src="https://github.com/user-attachments/assets/effa8caa-2d76-48a3-959d-afbd3573d42b" /> #### Forgotten Artists <img width="1349" height="296" alt="forgotten artists" src="https://github.com/user-attachments/assets/c9af31df-cab9-436f-b935-52a21362399a" /> #### Most Played Tracks <img width="1349" height="296" alt="most played tracks" src="https://github.com/user-attachments/assets/3395febd-9633-4b85-bc99-7f6e5f3cb3b0" /> #### Never / Rarely Played <img width="1349" height="296" alt="never rarely played tracks" src="https://github.com/user-attachments/assets/2dd5af50-5e73-45c6-91f6-3b70afe8f985" /> --------- Co-authored-by: Moos, Daniel <[email protected]>