Deluan
6fc3e2762b
build(makefile): add golangci-lint installation step to setup
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:51:25 +00:00
Deluan Quintão
7f62aaa578
fix(server): fix numeric comparisons for float custom tags in smart playlists ( #4116 )
...
* Fix numeric comparisons for custom float tags
* feat(criteria): cast numeric tags for sorting and comparisons
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:51:25 +00:00
dependabot[bot]
ecf9a54263
chore(deps): bump eslint-config-prettier from 9.1.0 to 10.1.5 in /ui ( #4077 )
...
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier ) from 9.1.0 to 10.1.5.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases )
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md )
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v9.1.0...v10.1.5 )
---
updated-dependencies:
- dependency-name: eslint-config-prettier
dependency-version: 10.1.5
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-02 20:51:25 +00:00
dependabot[bot]
377c06f52a
build(deps): bump golangci/golangci-lint-action in /.github/workflows ( #4035 )
...
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action ) from 7 to 8.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases )
- [Commits](https://github.com/golangci/golangci-lint-action/compare/v7...v8 )
---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
dependency-version: '8'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-02 20:51:25 +00:00
Deluan
24e8b2c378
test: update test command to run without watch mode
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:51:24 +00:00
Deluan
dbdf6d6c3d
chore(deps): update JS dependencies
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:51:24 +00:00
Deluan
2f1b8709db
build(makefile): fix golangci-lint installation path check
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:51:24 +00:00
Deluan
0ced591918
chore(deps): update Go dependencies
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:51:24 +00:00
Deluan Quintão
35e51c9b0f
fix(ui): improve scan status handling (again) ( #4115 )
2026-01-02 20:51:24 +00:00
Deluan
b51afbec90
feat(ui): add missing filter for admin users in album, artist, and song lists
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:51:24 +00:00
Xabi
4fbd09d21a
fix(ui): update Basque translation ( #4064 )
...
* Update eu.json
Added roles, reordered some strings, small fixes
* fix(ui): update Basque translation
* Update eu.json
third time's the charm
* please bear with me
I'm not a developer. I'm trying my hardest.
* Update eu.json
Added newest strings
2026-01-02 20:51:24 +00:00
ChekeredList71
a83e87f612
fix(ui): update Hungarian translation ( #4112 )
...
added: bitDepth, sampleRate, album/date, saveQueue, missing/empty, actions/remove_all, remove_all_missing_title, remove_all_missing_content, scanType, status, elapsedTime
edited (better sentence structuring, making it make more sense, etc.): listenBrainzLinkSuccess, playListsText
Co-authored-by: ChekeredList71 <asd@asd.com>
2026-01-02 20:51:24 +00:00
Deluan
376828ff39
fix(scanner): optimize missing flag update logic for artists
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:51:24 +00:00
Deluan
ea221743db
fix(ui): improve elapsed time handling during scans
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:51:24 +00:00
Deluan
4008ab6856
fix(ui): elapsed time for scans
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:51:24 +00:00
Deluan Quintão
7810736486
feat(ui) add Save Queue to Playlist ( #4110 )
...
* ui: add save queue to playlist
* fix(ui): improve toolbar layout
Signed-off-by: Deluan <deluan@navidrome.org>
* fix(ui): add loading state to save queue dialog
Signed-off-by: Deluan <deluan@navidrome.org>
* fix(ui): refresh playlist after saving queue
Signed-off-by: Deluan <deluan@navidrome.org>
* fix lint
Signed-off-by: Deluan <deluan@navidrome.org>
* remove duplication in PlayerToolbar and add tests
Signed-off-by: Deluan <deluan@navidrome.org>
* fix(i18n): update save queue text for clarity in English and Portuguese
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:51:24 +00:00
Deluan
ec9b44826f
fix(ui): update artist link rendering and improve button styles
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:51:24 +00:00
Deluan
3e0e091cb1
test: fix flaky scanner tests by setting maximum open connections to 1
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:51:23 +00:00
Ewen
e32071a046
fix(ui): update French translation ( #4069 )
...
Signed-off-by: Malesio <krytonspace@gmail.com>
2026-01-02 20:51:23 +00:00
Deluan
e3f1146bd9
fix(ui): the Portuguese translation is actually Brazilian Portuguese
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:51:23 +00:00
Deluan
12a74a9e2b
fix: small formatting error in en.json
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:51:23 +00:00
Deluan
9ce9986326
fix(ui): update Portuguese translations
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:51:23 +00:00
Deluan
77ee54fd5d
fix: add useResourceRefresh hook to AlbumShow, ArtistShow, MissingFilesList, and PlaylistShow components
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:51:23 +00:00
Deluan Quintão
93eecd4332
feat(ui): add remove all missing files functionality ( #4108 )
...
* Add remove all missing files feature
* test: update mediafile_repository tests for missing files deletion
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:51:23 +00:00
Copilot
8225bddca3
feat(scanner): add Scanner.PurgeMissing configuration option ( #4107 )
...
* Initial plan for issue
* Add Scanner.PurgeMissing configuration option
Co-authored-by: deluan <331353+deluan@users.noreply.github.com>
* Remove GC call from phaseMissingTracks.purgeMissing method
Co-authored-by: deluan <331353+deluan@users.noreply.github.com>
* Address PR comments for Scanner.PurgeMissing feature
Co-authored-by: deluan <331353+deluan@users.noreply.github.com>
* Address PR comments and add DeleteAllMissing method
Co-authored-by: deluan <331353+deluan@users.noreply.github.com>
* refactor(scanner): simplify purgeMissing logic and improve error handling
Signed-off-by: Deluan <deluan@navidrome.org>
* fix configuration test
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: deluan <331353+deluan@users.noreply.github.com>
Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:51:21 +00:00
Deluan Quintão
a693231e98
test: add PERFORMER tests ( #4105 )
...
* Add performer participant tests with MBIDs
* test: add handling for mismatched performer names and MBIDs in participant tests
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:49:55 +00:00
Deluan Quintão
0d11fb2afb
test: fix ignored artwork tests ( #4103 )
...
* Fix artwork internal tests
* fix: rename artistReader functions to artistArtworkReader for clarity
Signed-off-by: Deluan <deluan@navidrome.org>
* fix: update artwork internal tests to handle corrupted cover scenarios
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:49:55 +00:00
Deluan
841c97e5bb
chore: update Makefile to install golangci-lint if not present and adjust lint command
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:49:55 +00:00
Deluan
5a67929258
docs: update copilot instructions with important commands and linting guidelines
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:49:55 +00:00
Deluan Quintão
5a6d99ab09
fix(transcoding): restrict transcoding operations to admin users ( #4096 )
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:49:55 +00:00
Kendall Garner
1bbc5f6566
fix(db): allow deleting users that have shares ( #4098 )
...
* fix(db): allow deleting users that have shares
* remove placeholders
2026-01-02 20:49:55 +00:00
Deluan
380d9e2bd0
docs: add code guidelines for backend and frontend development
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:49:55 +00:00
Deluan Quintão
e6089d18df
fix(server): memory leak in cache warmer ( #4095 )
...
* Prevent cache warmer memory leak when cache disabled
* refactor(tests): replace disabledCache with mockFileCache in CacheWarmer tests
Signed-off-by: Deluan <deluan@navidrome.org>
* test(cache): enhance CacheWarmer tests for initialization, buffer management, and error handling
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:49:54 +00:00
Deluan
5c049ea478
Revert "refactor(server): simplify lastfm agent initialization logic"
...
This reverts commit 6f52c0201cdc6e92bf4e47394d79767db9c33640.
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:49:54 +00:00
Kendall Garner
43692bca00
fix(subsonic): find lyrics by artist or albumartist ( #4093 )
...
* find artist by multivalued exact match, instead of 'artist' field
* check if lyrics are not empty
* refactor(filters): rename function to better reflect its purpose
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:49:54 +00:00
Deluan Quintão
702295698a
feat(ui): add scan progress and error reporting to UI ( #4094 )
...
* feat(scanner): add LastScanError tracking to scanner status
- Introduced LastScanErrorKey constant for error tracking.
- Updated StatusInfo struct to include LastError field.
- Modified scanner logic to store and retrieve last scan error.
- Enhanced ScanStatus response to include error information.
- Updated UI components to display last scan error when applicable.
- Added tests to verify last scan error functionality.
Signed-off-by: Deluan <deluan@navidrome.org>
* feat(scanner): enhance scan status with type and elapsed time tracking
- Added LastScanTypeKey and LastScanStartTimeKey constants for tracking scan type and start time.
- Updated StatusInfo struct to include ScanType and ElapsedTime fields.
- Implemented getScanInfo method to retrieve scan type, elapsed time, and last error.
- Modified scanner logic to store scan type and start time during scans.
- Enhanced ScanStatus response and UI components to display scan type and elapsed time.
- Added formatShortDuration utility for better elapsed time representation.
- Updated activity reducer to handle new scan status fields.
Signed-off-by: Deluan <deluan@navidrome.org>
* refactor(tests): consolidate controller status tests into a single file
- Removed the old controller_status_test.go file.
- Merged relevant tests into the new controller_test.go file for better organization and maintainability.
- Ensured all existing test cases for controller status are preserved and functional.
Signed-off-by: Deluan <deluan@navidrome.org>
* Fix formatting issues
* refactor(scanner): update getScanInfo method documentation
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:49:54 +00:00
Caio Cotts
6e8d961240
feat(server): add DefaultShareExpiration config option ( #4082 )
...
* add DefaultShareExpiration config option
* run prettier so that I can push
* undo reformatting
* sort imports
2026-01-02 20:49:54 +00:00
Deluan Quintão
a106dc67d1
feat: hide missing artists from regular users and Subsonic API ( #4092 )
...
* Handle missing artists for non-admin users
* feat(artist): enhance ArtistList with missing row styling and class management
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:49:54 +00:00
Deluan
92f8cfb78e
chore: removed unused file
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:49:54 +00:00
Deluan Quintão
04d5a0e92e
feat(subsonic): add ISRC support for OpenSubsonic Child ( #4088 )
...
* docs: add testing and logging guidelines to AGENTS.md
Signed-off-by: Deluan <deluan@navidrome.org>
* Introduce TagISRC and update ISRC handling
* fix: update .gitignore to exclude executable files and bin directory
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:49:54 +00:00
Caio Cotts
72a6f96242
fix: update Makefile with new demo URLs ( #4080 )
2026-01-02 20:49:54 +00:00
Deluan Quintão
976d5ac101
feat(scanner): add Scanner.FollowSymlinks option ( #4061 )
...
* Add Scanner.FollowSymlinks option (default: true) - Fixes #4060
* fix(mockMusicFS): improve symlink handling in Open, Stat, and ReadDir methods
Signed-off-by: Deluan <deluan@navidrome.org>
* refactor(tests): enhance walkDirTree tests with symlink handling and cleanup
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:49:54 +00:00
Deluan Quintão
7522702de3
fix(scanner): optimize refresh ( #4059 )
...
* fix(artist): update RefreshStats to only process artists with recently updated media files
Signed-off-by: Deluan <deluan@navidrome.org>
* fix: paginate Artist's RefreshStats, also replace rawSQL with Expr
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:49:54 +00:00
Kendall Garner
76af60dae9
feat:(server): support reading lyrics from filesystem ( #2897 )
...
* simplified lyrics handling
* address initial feedback
* add some trace and error logging
* allow fallback lyrics
* update nit
* restore artist/title filter only
2026-01-02 20:49:54 +00:00
Kendall Garner
8c645be311
fix(scanner): check if aiff/wma file has cover art ( #3996 )
...
* check if aiff file has cover art
* add cover art to test files, more support in wrapper
* remove wavpak since tag does't read it anyway
2026-01-02 20:49:54 +00:00
Deluan
c5d8492f8e
docs(scanner): add overview README document
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:49:53 +00:00
Kendall Garner
4bbffbc26f
feat(server): add artist/albumartist filter to media file ( #4001 )
...
* add artist/albumartist filter to media file
* artist -> artists_id
2026-01-02 20:49:53 +00:00
DDinghoya
a4fb8b2194
fix(ui): update Korean translation ( #3980 )
...
* Update ko.json
* Extra characters '들' present before the key.
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* Update resources/i18n/ko.json
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* Update resources/i18n/ko.json
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* Update resources/i18n/ko.json
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* Update resources/i18n/ko.json
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* Update resources/i18n/ko.json
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
---------
Co-authored-by: Deluan Quintão <github@deluan.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2026-01-02 20:49:53 +00:00
Kendall Garner
3db88372f7
feat(scanner): add unsynced lyrics to default mapping ( #3997 )
2026-01-02 20:49:53 +00:00
Deluan Quintão
2517c4b7d5
chore: remove DevEnableBufferedScrobble and always enable buffered scrobbling ( #3999 )
...
Removed all code, config, and test references to DevEnableBufferedScrobble. Buffered scrobbling is now always enabled. Added this option to the list of deprecated config options with a warning. Updated all logic and tests to reflect this. No linter issues remain. Some PlayTracker tests are failing, but these are likely due to test data or logic unrelated to this change. All other tests pass. Review required for PlayTracker test failures.
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:49:53 +00:00