What's New?
Yandex Music Source
Thanks to @Druidblack for implementing a new source for the Yandex Music service! ๐
Check the docs for setup and configuration.
Improved Source/Client Restart
An overhaul of the functionality responsible for Source polling and Client scrobble processing makes restarts from the dashboard cleaner and more dependable. There shouldn't be any more instances of unable to restart due to waiting for signal... ๐
New Docs Domain and Social Previews
Docs are now "officially" located at https://docs.multi-scrobbler.app
Note
The old site at https://foxxmd.github.io/multi-scrobbler will continue to work and both sites are the same documentation. Eventually, the old site will be retired and redirect to the new one automatically.
Docs have also been improved with nice social graph preview images (og:image) that will display when a page is shared on a social site. There are images generated for each page that include the page title and/or description.
Tip
You can help improve these cards:
- click the โ๏ธ Edit this page link at the bottom of any page to open the corresponding file in the repo
- open a PR (or click Pencil Icon at the top of the file) and fill in the
descriptionortitleproperty
Docker Log Colors
Logs viewed through docker logs now have ~f a n c y~ colors that mirror what is seen in the dashboard.
These are turned on by default but if you prefer plain logs they can be disabled by setting this environmental variable:
COLORED_STD=false
Image Cleanup Space Savings ๐งน
Fixing how the frontend is served from the backend enabled almost all frontend packages to be removed from the production build. This, along with a node_modules cleanup script, results in a ~32% decrease in docker image size.
Breaking Changes
Important
BREAKING: Node has been updated to 24.14.0. This does not affect docker users but if you are running a local installation you will need to update your local node/npm install.
Changelog Highlights
โฐ๏ธ Features
- (client) Make scrobble processing abortable
- (client) Strict ENV types
- (docker) Use prune-mod to remove unneeded files in image
- (docker) Make colored console output the default
- (docs) Update docusaurus to 3.9.2
- (musicbrainz) Handle rate limiting within api calls
- (source) Make discover abortable
- (sources) Better type enforcement
- (yandex) add yandex music by @Druidblack #523
๐ Bug Fixes
- (jellyfin) Fix typo on devicesBlock env assignment #522
- (scrobbler) Fix stagger map generation variable usage
- (No Category) Fix circular dependency in error utils
- (No Category) Align dockefile and devcontainer node/npm versions to fix lockfile mismatch
- (No Category) Initialize plays in correct scope
- (No Category) Build vite-express config based on production env to avoid making vite fallback to development
โ๏ธ Miscellaneous Tasks
- (No Category) Remove unused testing libraries and fix storybook version
- (No Category) Update node/npm engine constraints in package.json
- (No Category) Bump node to 24
- BREAKING: Bump node to 24
๐ Documentation
- (No Category) Add Yandex Music Source docs
- (No Category) Replace instances of foxxmd.github.io
- (No Category) Finalize a working social card strategy
๐ Refactor
- (No Category) Implement abortable source polling
- (No Category) Reduce docker image by moving frontend packages to devDependencies
- (No Category) Install expressjs@5
- (No Category) Replace awaitjs/express with express usage
๐งช Testing
- (No Category) Make loop stop wait time configurable so tests run faster/more stable