4101 Commits

Author SHA1 Message Date
Deluan
a9331d5ddf
fix(dockerfile): remove the healthcheck, it gives more headaches than benefits.
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:22 +00:00
Deluan
e55c4ce2e5
chore(deps): upgrade viper to 1.20.0, add tests for the supported config formats
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:20 +00:00
Rob Emery
d4e8c17b9c
fix(msi): don't override custom ini config (#3836)
Previously addLine would add-or-update, resulting in the custom settings being overriden on upgrade. createLine will only add to the ini if the key doesn't already exist.
2026-01-02 20:47:44 +00:00
Deluan
d14e64b560
chore(server): show square flag in resize artwork logs
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:44 +00:00
Deluan Quintão
9b8b4fa446
chore(deps): upgrade to Go 1.24.1 (#3851)
* chore(deps): upgrade to Go 1.24.1

Signed-off-by: Deluan <deluan@navidrome.org>

* chore(deps): add reflex as go.mod tool

Signed-off-by: Deluan <deluan@navidrome.org>

* chore(deps): add wire as go.mod tool

Signed-off-by: Deluan <deluan@navidrome.org>

* chore(deps): add goimports as go.mod tool

Signed-off-by: Deluan <deluan@navidrome.org>

* chore(deps): add ginkgo as go.mod tool

Signed-off-by: Deluan <deluan@navidrome.org>

---------

Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:44 +00:00
Deluan Quintão
be0dd1b7ab
fix(scanner): fix displayArtist logic (#3835)
* fix displayArtist logic

Signed-off-by: Deluan <deluan@navidrome.org>

* remove unneeded value

Signed-off-by: Deluan <deluan@navidrome.org>

* refactor

Signed-off-by: Deluan <deluan@navidrome.org>

* Use first albumartist if it cannot figure out the display name

Signed-off-by: Deluan <deluan@navidrome.org>

---------

Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:44 +00:00
Kendall Garner
88ebb6ff19
fix(ui): minor icon inconsistencies and "no missing files" translation (#3837)
* chore(ui): Fix minor inconsistencies

1. The icons in the user menu are a mix of MUI and react-icons. Move them all to react-icons, and use a standard size (24px)
2. On missing files page, provide a custom Empty component that just removes 'yet'

* use RA's builtin support for custom empty message

Signed-off-by: Deluan <deluan@navidrome.org>

---------

Signed-off-by: Deluan <deluan@navidrome.org>
Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:44 +00:00
Deluan Quintão
994d82457b
feat(server): add Role filters to albums (#3829)
* navidrome artist filtering

* address discord feedback

* perPage min 36

* various artist artist_id -> albumartist_id

* artist_id, role_id separate

* remove all ui changes I guess

* Add tests, check for possible SQL injection

Signed-off-by: Deluan <deluan@navidrome.org>

---------

Signed-off-by: Deluan <deluan@navidrome.org>
Co-authored-by: Kendall Garner <17521368+kgarner7@users.noreply.github.com>
2026-01-02 20:47:44 +00:00
Kendall Garner
8d97ae8ca3
fix(subsonic): fix albumCount in artists (#3827)
* only do subsonic instead

* make sure to actually populate response first

* navidrome artist filtering

* address discord feedback

* perPage min 36

* various artist artist_id -> albumartist_id

* artist_id, role_id separate

* remove all ui changes I guess

* Revert role filters

Signed-off-by: Deluan <deluan@navidrome.org>

---------

Signed-off-by: Deluan <deluan@navidrome.org>
Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:44 +00:00
Deluan
85a4bec2a5
docs(scanner): clarifies the purpose of the mappings.yaml file for regular users
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:44 +00:00
Deluan
350a3900c5
chore(scanner): add logs to .ndignore processing
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:44 +00:00
Kendall Garner
8178792189
fix(scanner): restore setsubtitle as discsubtitle for non-WMA (#3821)
With old metadata, Disc Subtitle was one of `tsst`, `discsubtitle`, or `setsubtitle`.
With the updated, `setsubtitle` is only available for flac.
Update `mappings.yaml` to maintain prior behavior.
2026-01-02 20:47:43 +00:00
Deluan
2c5282d364
feat(scanner): allow disabling tags with Tags.<tag>.Ignore=true
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:43 +00:00
Deluan
bb58769aa6
fix(scanner): add back the Scanner.GenreSeparators as a deprecated option
This allows easy upgrade of containers in PikaPods

Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:43 +00:00
Deluan Quintão
6543e4864a
fix(server): skip non-UTF encoding during the database migration. (#3803)
Fix #3787

Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:43 +00:00
Deluan
7f1adfb9a3
fix(scanner): watcher not working with relative MusicFolder
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:43 +00:00
Deluan
e0c769243a
fix(scanner): full_text not being updated on scan
Fixes #3813

Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:43 +00:00
Deluan
202d2b0919
fix(subsonic): getRandomSongs with genre filter
fix https://github.com/dweymouth/supersonic/issues/577

Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:43 +00:00
Rodrigo Iglesias
111eda1730
fix(ui): update Español translation (#3805)
Corrected "aletorio" and added some more translations
2026-01-02 20:47:43 +00:00
Deluan Quintão
1bf27e6a95
fix(ui): skip missing files in bulk operations (#3807)
* fix(ui): skip missing files when adding to playqueue

Signed-off-by: Deluan <deluan@navidrome.org>

* fix(ui): skip missing files when adding to playlists

* fix(ui): skip missing files when shuffling songs

Signed-off-by: Deluan <deluan@navidrome.org>

---------

Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:43 +00:00
Deluan Quintão
3039d29ff1
fix(server): db migration does not work for MusicFolders ending with a trailing slash. (#3797)
* fix(server): db migration was not working for MusicFolders ending with a trailing slash.

Signed-off-by: Deluan <deluan@navidrome.org>

* fix(server): db migration for relative paths

Signed-off-by: Deluan <deluan@navidrome.org>

---------

Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:43 +00:00
Kendall Garner
24cef004ba
fix(ui): fix make dev (#3795)
1. For some bizarre reason, importing inflection by itself is undefined. But you can import specific functions
2. Per https://github.com/vite-pwa/vite-plugin-pwa/issues/419, `type: 'module',` is only for non-chromium browsers
2026-01-02 20:47:43 +00:00
Deluan
f68ce0c960
fix(server): panic when logging tag type. Fix #3790
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:43 +00:00
Deluan Quintão
c460f5422d
fix(server): db migration not working when MusicFolder is a relative path (#3766)
* fix(server): db migration not working when MusicFolder is a relative path

Signed-off-by: Deluan <deluan@navidrome.org>

* remove todo

Signed-off-by: Deluan <deluan@navidrome.org>

* fix migration of paths in Windows

---------

Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:43 +00:00
Deluan Quintão
82bb934ee9
fix(ui): update Finnish, Hungarian, Russian, Ukrainian translations from POEditor (#3780)
Co-authored-by: navidrome-bot <navidrome-bot@navidrome.org>
2026-01-02 20:47:42 +00:00
Deluan
25e4004df0
fix(subsonic): don't return empty disctitles for a single disc album
See https://support.symfonium.app/t/hide-disc-header-for-albums-with-only-1-disc/6877/1

Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:42 +00:00
Deluan
234d661b01
feat(subsonic): rename AppendSubtitle conf to Subsonic.AppendSubtitle, for consistency
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:42 +00:00
Deluan
bfea453516
chore(deps): bump more JS dependencies
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:42 +00:00
Deluan
1374c49154
chore(deps): bump Vite version
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:42 +00:00
Deluan
3ece7262bd
chore(deps): bump JS dependencies
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:42 +00:00
Deluan
e5c33ce215
chore(deps): bump Go dependencies
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:41 +00:00
Deluan
025b7a3849
fix(ui): disable bulk action buttons if transcoding edit is disabled
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:16 +00:00
Deluan
c7dd473915
build(ci): show English names for changed languages in POEditor PRs
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:16 +00:00
Deluan
c222ae0079
feat(server): deprecate Scanner.GroupAlbumReleases config option
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:16 +00:00
Deluan
d640fc0ab8
feat(ui): use webp for login backgrounds
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:16 +00:00
ChekeredList71
831cba6cdb
fix(ui): updated Hungarian translation for BFR (#3773)
* Hungarian translation for v0.54.1 done

* Hungarian translation for v0.54.1 done

* Updated Hugarian translation

* Updated Hugarian translation

---------

Co-authored-by: ChekeredList71 <null@example.com>
Co-authored-by: ChekeredList71 <ads@asd.com>
2026-01-02 20:47:16 +00:00
Kendall Garner
64561872be
fix(scanner): always refresh folder image time when adding first image (#3764)
* fix(scanner): Always refresh folder image time when adding first image

Currently, the `images_updated_at` field is only set to the image modification time.
However, in cases where a new image is added _and_ said image is older than the folder mod time, the field is not updated properly.

In this the case where `images_updated_at` is null (no images were ever added) and a new images is found, use the folder modification time instead of image modification time.

**Note**, this doesn't handle cases such as replacing a newer image with an older one.

* simplify image update at

* we don't want to set imagesUpdatedAt when there's no images in the folder

Signed-off-by: Deluan <deluan@navidrome.org>

---------

Signed-off-by: Deluan <deluan@navidrome.org>
Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:15 +00:00
Deluan
f65238c4b5
fix(ui): replace bulk "delete" label with "remove" in playlists
Fix #3525

Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:15 +00:00
Kendall Garner
18212d1ef1
feat(subsonic): set sortName for OS AlbumList (#3776)
* feat(subsonic): Set SortName for OS AlbumList, test to JSON/XML

* albumlist2, star2 updated properly

* fix(subsonic): add sort or order name based on config

Signed-off-by: Deluan <deluan@navidrome.org>

---------

Signed-off-by: Deluan <deluan@navidrome.org>
Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:15 +00:00
Deluan
6326b1407d
fix(server): change log level for some unimportant messages
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:15 +00:00
Deluan
854729b0f3
fix(server): only build core.Agents once
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:15 +00:00
Deluan
188ff20289
fix(server): remove misleading "Agent not available" warning.
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:15 +00:00
Deluan
deb6f03607
feat(server): make appending subtitle to song title configurable
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:15 +00:00
Deluan
26ccd0fb90
feat(server): group Subsonic config options together
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:15 +00:00
Deluan
0847a927fd
feat(server): removed GenreSeparator, replaced with Tag.Genre.Split
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:15 +00:00
Deluan
3b2eac2bbc
feat(insights): send scanner options
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:15 +00:00
Deluan
36f8705924
feat(server): rename ScanSchedule conf to Scanner.Schedule, for consistency
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:15 +00:00
Deluan
52503ee539
feat(server): warn users of ffmpeg extractor that it is not available anymore
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:15 +00:00
Deluan Quintão
39c317fd2d
fix(server): import absolute paths in m3u (#3756)
* fix(server): import playlists with absolute paths

Signed-off-by: Deluan <deluan@navidrome.org>

* fix(server): optimize playlist import

Signed-off-by: Deluan <deluan@navidrome.org>

* fix(server): add test with multiple libraries

Signed-off-by: Deluan <deluan@navidrome.org>

* fix(server): refactor

Signed-off-by: Deluan <deluan@navidrome.org>

---------

Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:15 +00:00
Deluan Quintão
3c6ea68e24
fix(ui): update Deutsch, Español, Euskara, Galego, Bahasa Indonesia, 日本語, Português, Pусский, Türkçe translations from POEditor (#3681)
Co-authored-by: navidrome-bot <navidrome-bot@navidrome.org>
2026-01-02 20:47:14 +00:00