Skip to content

Releases: navidrome/navidrome

v0.47.5

22 Jan 01:20
86fe1e3

Choose a tag to compare

This bug-fix release includes a fix to a potential SQL injection and a couple of other niceties and fixes.

There are a few nice contributions that needs more testing, and I plan to validate and release them in
the next month or so. Stay tuned!

Highlights

  • [UI] Set volume to 100% when web player is in mobile mode. Fix #1429
  • [UI] New translations: Bulgarian (thanks @MrEddX) and Catalan (thanks Sàdur)
  • [UI] Fix ActivityPanel should behave better now, with (hopefully) no more UI freezing
  • [UI] Handle invalid theme in ui state (#1504) (thanks @srichter)
  • [Server] Fix potential SQL injection in Smart Playlists (thanks @DePierre)
  • [Server] Fix issue in smart playlists with values compared to 0 (See: #1417 (comment))
  • [Server] Add name and comment fields to .NSP files
  • [Server] Allowing 3rd party UIs to access x-total-count http header (#1470) (thanks @bricej13)
  • [Subsonic] Add userRating to Subsonic Album/Artist responses. Fix #1486

Changelog

86fe1e3 Bump github.com/ReneKroon/ttlcache/v2 from 2.9.0 to 2.11.0 (#1529)
eed54d7 Bump github.com/lestrrat-go/jwx from 1.2.11 to 1.2.17 (#1574)
ab36344 Bump github.com/microcosm-cc/bluemonday from 1.0.16 to 1.0.17 (#1560)
e5d03a3 Bump github.com/Masterminds/squirrel from 1.5.1 to 1.5.2 (#1501)
30813cd Update translations (#1578)
6164f37 Added Bulgarian Translation (#1577)
9e79b5c Fix potential SQL injection in Smart Playlists
8c707b4 Handle invalid theme in ui state (#1504)
910091f Fix playCount casing
2e1b985 Revert "Direct link to dev build"
100b805 Update README.md
bde9d5f Fix TypeError: Cannot read property 'id' of undefined
69615f1 Trying to fix multiple EventStream connections, one more time
a99b9b4 Direct link to dev build
9892524 Connect eventStream after login
9fe9789 Try to avoid creating multiple eventStreams
5425c1a Update translations (#1489)
afe1e4c Fix lint for public credentials
20cdd38 Better logging for agents configuration
913a4cf Bump github.com/onsi/gomega from 1.16.0 to 1.17.0 (#1459)
121ada5 Bump @testing-library/jest-dom from 5.14.1 to 5.15.0 in /ui (#1456)
e59a95c Bump github.com/golangci/golangci-lint from 1.42.1 to 1.43.0 (#1460)
d75f286 Update zh-Hans.json (#1478)
30d3f1e Add userRating to Subsonic Album/Artist responses. Closes #1486
6a1f967 Bump github.com/ReneKroon/ttlcache/v2 from 2.8.1 to 2.9.0 (#1414)
a0977ce Bump github.com/go-chi/chi/v5 from 5.0.4 to 5.0.7 (#1484)
b3d8038 Bump github.com/lestrrat-go/jwx from 1.2.7 to 1.2.11 (#1485)
0714f08 Recover from SIGSEGVs in taglib's code
cbeaadf Fix logging smart playlist's song count
3e282df Set volume to 100% when web player is in mobile mode.
ce7940b Allow overriding name and comment when importing NSP playlists
92c31c9 Fix values from annotation table cannot be compared to 0
4bf4765 Bot that adds a download link on pull requests
6d947f6 Allowing 3rd party UIs to access x-total-count http header (#1470)

v0.47.0

18 Nov 23:22
8c7d95c

Choose a tag to compare

New in this release

First implementation of Smart Playlists
Smart Playlists can be created as a .NSP file and they will be imported the same way as .M3U files. Some examples are available in the GitHub issue. While I don't write a documentation page for this feature, please check the info in the issue (examples, list of fields and operators). Feel free to open an issue if you are having difficulties to use it.

Lyrics support (thanks @dheerajdlalwani / @chiraglulla)
Embedded lyrics are now supported by both the Subsonic API and in the UI. There's a limitation in the UI that it only works with synchronized lyrics for now, but the work with this feature is not complete and there's more things in the pipeline. Expect the following enhancements in future versions: support for external .LRC files, unsynchronized lyrics in the UI, grabbing lyrics from external services.

ListenBrainz scrobbling (thanks @srichter)
Same as with Last.fm, the user needs to link ListenBrainz to their account, by going to the Personal menu in the UI and enabling Scrobble to ListenBrainz.

Speaking of external integrations, if you don't want Navidrome to connect to any external service, you can now disable everything with just one config option: EnableExternalServices=false (default is true).

Thanks for all contributors who helped in this release.

Highlights

  • [UI] More improvements to the Artist Page (#1391). Thanks @Dnouv
  • [UI] Display synced lyrics in the UI if available (#1406). Thanks @chiraglulla
  • [UI] Allow changing playlist's owner
  • [UI] Add bulk action to make playlists private/public
  • [UI] Add links to artists from songs (only when artists have albums)
  • [UI] Fix default volume (#1395). Thanks @sparkhom
  • [UI] Fix translations on Windows
  • [UI] Fix Player incorrectly scrobbles tracks when unpaused (#1397). Thanks @srichter
  • [Server] Optimize Playlists operations
  • [Server] Speed-up a bunch of SQL queries
  • [Server] ListenBrainz support (#1424). Thanks @srichter
  • [Server] New config option to disable all external integrations (#102)
  • [Subsonic API] Add GetLyrics endpoint (#1379). Thanks @dheerajdlalwani
  • [Subsonic API] Don't send invalid artistIds

Changelog

8c7d95c Update Translations (#1471)
d4447e3 Fix sorting albums by year (should use name as secondary sort field).
3bd6f82 Rename ListenBrainz config flag and enable by default (#1443)
da26c5c Combined multiple appends into a single one (#1464)
023d7bf Remove link from songs to artist (when artist has no albums)
48a6278 Simplify prototype definition for taglib_read
91b470c Show artist link in Songs lists
1c82bf5 Remove non-album artist_ids from the DB
0d9dceb Fix playlist cannot be empty via Subsonic API
5994c31 Fix migration to support null values
804fb71 Show in the logs how long it took to startup
d3a2f76 Better logging of GetSimilar call
68a84ec Smarter cache of external info calls (last.fm / spotify)
9e48d87 Add a new index for album, to optimize the getAlbumList?type=alphabeticalByArtist Subsonic query
9712a5b Fix error codes for required parameters in getAlbumList
9422373 Optimize AlbumRepository.GetAll and add a GetAllWithoutGenres method specifically for Subsonic API, where multiple-genres are not required
bc8132e Bump @testing-library/user-event from 13.2.1 to 13.5.0 in /ui
82bc8cd Bump github.com/go-chi/httprate from 0.5.1 to 0.5.2
1e5ab59 Bump github.com/onsi/ginkgo from 1.16.4 to 1.16.5
28ad91a Bump github.com/Masterminds/squirrel from 1.5.0 to 1.5.1
e40e865 Bump github.com/microcosm-cc/bluemonday from 1.0.15 to 1.0.16
12818fb Make song/album/artist endpoints read-only
aaeaa3c Fix playlist filter
0539091 More info in scrobbling logs
6a87fc8 Ignores invalid timestamps in requests (use current time)
975986a Add bulk action to make playlists private/public
778f474 Use new rest lib (Update receives all columns that need to be updated)
b2acec0 When externals services are disabled, only disable UILoginBackgroundURL if it is not set by the user
e720233 Ignore empty lines in M3U files
8c2e4da Fix dateLoved in criteria. Now log invalid field names in criteria
a4d3bf4 Remove some duplicated code
765557d Remove "Show" button from PlaylistEdit view
86afd16 Allow changing playlist's owner. Relates to #698
133fed3 Add owner_id to playlist
84bbcdb Add artist image lightbox
1823159 New config to disable all external integrations. Closes #102
0b5ed9e Update ListenBrainz Portuguese translations
a56d5bc Listenbrainz scrobbling (#1424)
ccc871d Only reset player scrobbled state on track change or end (#1432)
d3e1422 Fix TypeError: Cannot read properties of undefined (reading 'length')
a42aeff Optimize queries by path, should speed up the scanner a bit
7cdbc04 Update caniuse-lite
f3fae7e Optimize basic media_file query, avoiding adding "group by" or joining with genres if not required
074732b Filter playlists by names and comments
66a9cbb Remove temp folders after tests
fa3471f Simplify resources code, enabling any resource to be overridden (not just translations)
9072412 Fix translations on Windows
cca3236 Use refetch when changing the playlist (as opposed to a full refresh)
85d4847 Add .mka file format. Only works with ffmpeg extractor
2183eb6 Should not allow changing sort order in Album songs view
ea435d0 Fix error on empty playlists. Simplify code for some operations
f645c47 Fix double escaped lyrics and comments
5e87280 Load playlist track genres
526b659 Remove duplication for loading tracks
5dce499 Fix/Optimized Playlist tracks deletion
fbd87ba Fix console error "Cannot convert undefined or null to object PlaylistsSubMenu"
63b5191 Fix lint
af00503 Optimize playlist updates
85185e3 Misc small changes (#1433)
83eaafc Add dateLoved Criteria field
93ce0b5 Fix Genre field and Contains/NotContains/StartsWith/EndsWith in Criteria (Smart Playlists)
47549ec Increase updatePlaylist chunk to 100 tracks
ed1ca65 Show hotkeys as chips, for easier reading
8d6b5f9 Speed up Subsonic GetPlaylist (by optimizing loadTracks)
76fdcd1 Tweak SimilarSongs algorithm to prioritize the requested main artist
18e1c16 Don't read the whole smart playlist file in memory
4bc4daa Improve git-vs-tarball detection (#1423)
cc1659a Better way to match top songs from external sources (Last.fm)
31c598d Fix drag-n-drop from a playlist, also fix useDrag memoization
2e2a647 Make SmartPlaylists read-only
d169f54 Rename hasCoverArt field in criteria
1494be9 Add playCount and playDate columns to album songs list
c73f64e Removed unused code
806b13c Update stats of Smart Playlist when it is created
2c860ed Don't import invalid .nsp files
6a550da Use new Criteria and remove SmartPlaylist struct
3972616 New Criteria API
d0ce030 Add PlayCount and PlayDate columns to PlaylistSongs
9473536 Include never played songs in the "not in the last" operator
2b57b98 Fix smart playlist refreshing only after the tracks were loaded
1a96e9f Import smart playlists (extension .nsp)
21da1df Cache smart playlist refreshes for 5 seconds
d21932b First version of SmartPlaylists being generated on demand
c72add5 Add methods to Playlist model
d200933 Reduce number of queries for some playlists operations.
943082e Fix time-based tests (again)
c3fb4e1 Fix rules serialization
9c8f779 Fix time-based tests
8156237 Load SmartPlaylists rules from DB
7221b49 More tests
cf8d08e Initial drafts for Smart Playlists
2a756ea Show external links on all resolutions but mobile
104679c Guard against record being undefined. Fix error Cannot read properties of undefined (reading 'id')
5621551 Adds Lyrics Support to Subsonic API (#1379)
3214783 Remove double-retching playlist's tracks
34b01c2 Display lyrics on UI if synced lyrics present in metadata (#1406)
0d2a8f5 Enable new Artist Page by default
b7feddd Guard against record being undefined. Fix error Cannot read properties of undefined (reading 'albumId')
1d742cf Artist page improvements (#1391)
7505b5c Bump GoLang to 1.17.2
174ad9e Fix ffmpeg bitrate parsing for flac files
ba0ee6a Rename manifest.json to manifest.webmanifest (#1399)
6b38aca Update README.md
ee8943f Fix semantic classes for currently playing song
86a87b4 Fix default volume (#1395)

v0.46.0

06 Oct 22:29

Choose a tag to compare

Welcome to a new version of Navidrome! The main change in this release is that now playlists are accessible from the sidebar menu, and you can add songs/discs/albums/artists to them via drag'n'drop. If you have issues with this functionality, it can be disabled by setting DevSidebarPlaylists=false in your config (or setting the env var ND_DEVSIDEBARPLAYLISTS=false)

Also there's initial work for a new Artist page. It still has some rough edges to fix, so we decided to disable it by default for now, but you can experiment with it by setting DevShowArtistPage=true in your config. If you do so, please give us feedback.

As part of preparing Navidrome to start using Infinite Scroll, we moved song and album details from the expandable panel to a new Get Info dialog, accessible from the context Menu.

Last but not least, if you want Navidrome to import playlists only from specific folder(s), you can do it now by setting the new PlaylsitsPath. It can contain a path or a list of paths separated by : (or ; in Windows), and it also allows globs (like "playlists/**/**")

We have a few other cool features cooking right now, so hopefully the next release won't take as long as this one.

Highlights

  • [UI] Show playlists on the sidebar (#1339). Based on work by @aldrinjenson
  • [UI] Show song/album details in a dialog, instead of an expandable panel (#1259), Thanks @samarsault
  • [UI] Initial work on a new Artist Page (#1287). Thanks @Dnouv
  • [UI] Player preloads next song. Reduce gap between songs in some setups
  • [UI] Self-host workbox, no need to contact Google's CDN anymore (#1358). Thanks @ajgon
  • [UI] New translations: Persian (thanks parviz.homayun) and Finnish (thanks harmie)
  • [Server] Add support for Audio Channels metadata (#1294). Thanks @mayanez
  • [Scanner] Fix special chars scanning in Windows with TagLib (#1310). Thanks @caiocotts
  • [Scanner] Only import playlists from configured paths in option PlaylistsPath (#1181)
  • [Scanner] Recover from any possible taglib panics (#1343)

Changelog

8bbb878 Add Finnish translation
8591a9a Update translations (#1383)
b6e30cd Return playlists sorted in getPlaylists Subsonic endpoint
058e7e4 Add logo to README
152836a Bump @testing-library/react from 12.1.1 to 12.1.2 in /ui
6139338 Bump react-icons from 4.2.0 to 4.3.1 in /ui
f0c1191 Revert: Small optimization in genre mapping
a631125 Fix layout error in ArtistShow (#1387)
dbde0ff Bump github.com/djherbis/atime to v1.1.0
fba7337 Sort songs by artist/album/disc/track_number before adding to playlist
e673360 Limit number of playlists displayed in the sidebar, to avoid UI freezes
2b105ca Enable DevSidebarPlaylists by default.
9c29ee3 Check permissions before adding songs to playlists
6c3e45d Add songs to playlists with drag and drop
2ab4647 Bump golang.org/x/tools from 0.1.6 to 0.1.7 (#1382)
91e36a2 Check goimports in the pipeline (#1381)
0cbba80 Bump react-router-dom from 5.2.0 to 5.3.0 in /ui (#1330)
f9d9104 Bump react-admin to 3.18.3
be3a6dc Use local copy of workbox service worker scripts (#1358)
b1e7760 Preload next song
ad45ab4 Fix genre update chunking
24fef58 Bump react-jinke-music-player from 4.24.0 to 4.24.2 (#1378)
e17d436 Do not attach Genres to the "Various Artists" artist
73659e5 Change "Build" link to point to the latest build artifacts from master
71b1e7f Bump github.com/lestrrat-go/jwx from 1.2.6 to 1.2.7
6940560 Bump @testing-library/react from 12.1.0 to 12.1.1 in /ui
4fda895 Bump blueimp-md5 from 2.18.0 to 2.19.0 in /ui
f664af5 Bump react-admin from 3.18.1 to 3.18.2 in /ui
c6868ff Don't show Artist Page for "Various Artists"
0b65a4e Fix comment word wrapping
24872e6 Fix biography word wrapping and requests for undefined resource
b4e5c66 Fix JS console warning
6752e0a Fix harmless error message in logs when ScanSchedule set was "0"
5680e53 Update genres in chunks. Should fix #1368
482c2de Artist Detail Page (first cut) (#1287)
210dc6b Add x-total-count to Subsonic API getAlbumList (#1360)
73a2271 Small optimization in genre mapping
0c0bd29 Replace expanded with a dialog (#1258)
15ae3d4 Only apply audioStreamRx once
1365adb Support 7.1 (8) channels
e12a14a feat: Adds Audio Channel Metadata - #1036
0079a9b Close Sidebar when going to Playlists list
892c2bf Revert "Disable mini-player (bubble) dragging. Should fix #1217"
5fb7328 Bump golang.org/x/tools from 0.1.5 to 0.1.6
86479a6 More info when recovering from panic
76bd20e Recover from any possible taglib panics. Fixes #1343
7a15ed0 Bump prettier from 2.4.0 to 2.4.1 in /ui
d574df5 Bump github.com/go-chi/jwtauth/v5 from 5.0.1 to 5.0.2
a7ace48 Bump github.com/ReneKroon/ttlcache/v2 from 2.8.0 to 2.8.1
84d9801 Bump github.com/spf13/viper from 1.8.1 to 1.9.0
e63804f Use newer versions of node in the pipeline
a5101fa Use npm dependencies cache from setup-node@v2
f2ed3f2 Bump prettier from 2.3.2 to 2.4.0 in /ui (#1341)
b23ab1c Bump @testing-library/react from 12.0.0 to 12.1.0 in /ui (#1342)
abf6318 Disable mini-player (bubble) dragging. Should fix #1217
b55f3a6 Add paddingBottom to the whole sidebar menu, to avoid playlists to be covered by the player
ab2912b Only import playlists from configured paths in option PlaylistsPath. Closes #1181
9f00aad Upgrade to GoLang 1.17.1
79363d6 Move Playlists to the sidebar menu (#1339)
a7017e4 Fix JS console warning
dc0ec32 Fix menu items highlight
06b1a1a Album size overflow fixed (#1071)
6ac2fef Make AppBar stick on scroll
2e921cd Fix sidebar scroll height (#1338)
c2251e6 Update GoLang to 1.17 (#1295)
25aab8b go mod tidy
94083f8 Bump @testing-library/react-hooks version
f0ef518 Bump react-redux version
79e79b6 Bump github.com/go-chi/chi
a961ffe Bump github.com/golangci/golangci-lint
402aaaa Bump github.com/lestrrat-go/jwx version
5c7784f Bump github.com/cespare/reflex version
a4e96d2 Pin Node to 16.8 as a workaround to nodejs/node#40030
8444c28 Upgrade react-admin to 3.18.1
fb11080 Improve performance of placeholder images (#1325)
173b30c Extract version from directory name if .git dir is missing (#1327)
af7c87d Give a warning on commands that do not build the frontend.
8df056b ru.json update (#1320)
54f9849 Use wchar_t for TagLib filenames on Windows (#1310)

v0.45.1

26 Aug 02:21
c55e659

Choose a tag to compare

Bug fix point release

This release fixes the following regressions:

  • Fix getArtistInfo Subsonic API returns "Internal Error" (#1293)
  • Fix random volume changes (#1296 & #1297)

Also, please read the release notes from 0.45.0 if you haven't already done so.

Downloads are available here: https://github.com/navidrome/navidrome/releases/tag/v0.45.1

Changelog

c55e659 Bump github.com/onsi/gomega from 1.15.0 to 1.16.0 (#1300)
d37231f Bump github.com/ReneKroon/ttlcache/v2 from 2.7.0 to 2.8.0 (#1298)
47fa32e Bump github.com/golangci/golangci-lint from 1.41.1 to 1.42.0 (#1299)
cf042ed Fix random volume changes
d481864 Some small refactorings
c2927e1 Fix loadSimilar method, was causing "internal error". Fix #1293
6983390 Setup git hooks when running make setup
143f5ba Import song duration with hundredths when using TagLib

v0.45.0

19 Aug 13:06

Choose a tag to compare

Multiple genres is finally here! Navidrome now supports multiple genres for songs and albums (and artists!). It can read multi-valued
tags from ID3v2.4 and Vorbis Comments, and also can split the genres by a configured set of separators
(config option Scanner.GenreSeparators, default is ;, / and ,). This is now reflected in the UI,
that has new Genres filters and information, and in the Subsonic API.

There were also lots of refactorings and bug fixes in this release.

Highlights

  • [UI] In album view, add links to Last.FM and MusicBrainz (when mbid is available)
  • [UI] Add Genre and Comments columns in Songs listview (hidden by default). Thanks @certuna (#1219)
  • [UI] When clicking on an album/playlist song to start playing, adds all songs to the playlist (#703)
  • [UI] EnableCoverAnimation=false now works in mobile view. Thanks @mill1000 (#1268)
  • [UI] Show rectangular cover art when animations is disabled
  • [UI] Change default volume to 50% (#1052)
  • [UI] "Add to Playlist" on AlbumList actions. Thanks @lostpolaris (#1257)
  • [Server] Scrobbling is now buffered and will be retried in case Last.FM is not available
  • [Server] Use AlbumArtist tag even for compilations, when it is specified
  • [Server] Completely disable Last.FM when LastFM.Enabled is false
  • [Server] Fix infinite loop when the fs fails (#1164)
  • [Server] Full rescan now does what it is supposed to do: re-import all metadata
  • [Server] Abort startup if config file is invalid
  • [Server] Use ffmpeg extractor by default on Windows platforms
  • [Server] Support local paths as urls when importing playlists. Thanks @caiocotts (#1215)
  • [Build] Support Docker on Linux 32 bits platform

Changelog

05e2709 Fix getTopSongs endpoint
aa72d3d Add missing song information to players and apply EnableCoverAnimation to mobile player. (#1268)
a20bd5f Correct some french translations (#1278)
99aeaab Update translations (#1285)
0a5f966 Bump redux from 4.1.0 to 4.1.1 in /ui
5338567 Bump github.com/onsi/gomega from 1.14.0 to 1.15.0
5052602 Bump github.com/lestrrat-go/jwx from 1.2.4 to 1.2.5
db4165f Bum react-admin to 3.17.2. Fix SearchInput border
a8cf887 Adjust icon size
63000ab Update en.json (POEditor.com)
b44ef81 Allow 0 value to disable ScanSchedule.
e9d0abe Support local paths as urls in playlists.
bcafe88 Don't autoplay when reloading play queue from Redux store
1710730 Bump github.com/kr/pretty from 0.2.1 to 0.3.0 (#1267)
aa1571e Remove unused AnnotatedModel interface
c831dc4 Use structs lib to map models to DB. Fix #1266
344d7a4 Inject DB into DataStore, instead of hardcode the dependency
c0fc36d Make album genres clickable
e68b22e Don't send invalid scrobbles when clearing the player's queue
fb4eefc "Add to Playlist" on AlbumList actions (#1257)
615cac2 Extract ExternalLinks into its own component
72f9e3e Bump @testing-library/user-event from 13.2.0 to 13.2.1 in /ui
763bcaf Use Tooltip in links to external sites
5b81f7a Fix get song by id
7bd506a Retrieve all options for Genre filters
b66c394 Fix build
4ed01ba Use ffmpeg extractor by default on Windows
d3975d2 Reorganize metadata extractors code
6175629 Build and release Docker image for Linux 32 bits platform (#1260)
6c55081 Use TagLib to detect whether a media file has embedded cover or not
9132507 Change fallback extractor to taglib, the default option
876dda8 Reduce number of calls to lstat.
86c0b42 Small refactorings
1cef44a Show in the logs which mbid will be used if multiple mbids are found for album/artist
4fcb238 Fix "too many SQL variables" error in GetStarred endpoint
4f9d546 Abort startup if config file is invalid
eeb14f0 Removed unused function
a89bdfb Fix build
8afa2cd Remove dependency of deprecated ioutil package
774ad65 Use fs.FS in MergeFS implementation
7540881 Small refactorings
08840f6 Simplify cover detection in roll-up code by left-joining synthesized table
cddd1b3 Simplify genre roll-up code by left-joining synthesized tables
bc6b175 Make getGenre Subsonic endpoint returns genres sorted by counts
b6e9ec4 Optimize GetAll genres query
1471e12 Show songs' genres as text instead of Chips
95181d7 Fix rollup of track genres to albums and artists.
254e567 Fix log message about artist with Various Artists' mbid
00e418c Fix log message about multiple MBIDs
2742977 Fix multiple id3v2.4 genres appearing as one big concatenated genre
69f71be Add more tests
58ee4c6 Add Links to external sites
21cd50d Fix aggregated values (count, size, duration) in roll-up queries
054b5ea Add Genres as "Chips" in Album details and Song details
e223377 Force full rescan when adding multi-genres
3a35649 Fix lint error
a0cd585 Fix Count methods
20b7e5c Add Genre filters to UI
c56c7c8 Purge unused genres at the end of the scan
b56e034 Add multiple genres to Artists
1d8607e Remove unnecessary repositories methods
5e54925 Add multiple genres to Albums
39da741 Add multiple genres to MediaFile
7cd3a8b Add genre tables, read multiple-genres from tags
1f03140 Change initial scan message log level
19c2ef3 Enable buffered scrobbles by default
d886c63 Bump react-image-lightbox from 5.1.1 to 5.1.4 in /ui (#1252)
5b828cd Bump @testing-library/user-event from 13.1.9 to 13.2.0 in /ui (#1253)
ef60db3 Bump github.com/lestrrat-go/jwx from 1.2.2 to 1.2.4
882b02c Fix forceRescan not re-importing all tracks
44e7502 Log warning when artist has a MBID of Various Artists
e61cf32 Reapply the fix from #1054, but without getting into an infinite look in case of SMB fs errors. See #1164
03ad6e9 Removed unused attributes in Last.fm responses
eb8ffc6 Fix infinite loop when the fs fails. Closes #1164
b0fc684 Fix small lint errors found by gocritic
8d56ec8 Use AlbumArtist tag even for compilations, when it is specified.
5064cb2 Add git version info to release source (#1250)
f782572 Add option to have different loglevels per source folder/file
1a6a284 Bump github.com/google/uuid from 1.2.0 to 1.3.0 (#1249)
1d948be Bump github.com/go-chi/httprate from 0.5.0 to 0.5.1 (#1248)
deefd7a Bump github.com/lestrrat-go/jwx from 1.2.1 to 1.2.2 (#1247)
97f8741 Bump @testing-library dependencies
5d8b90b Bump Go dependencies
8396b51 Upgrade React-Admin to 3.17.0
4a25fa0 Make the default volume 50% (compensate for logarithmic volume).
8e71f30 Bump prettier from 2.3.1 to 2.3.2 in /ui (#1210)
53fe2e9 Remove eject script, hopefully it will never be used
334068c Refactor mime-types configuration
b34d77f Don't show "playing/paused" icon on the first song when calling "Play Now"
24d4c81 Change default volume to 50%
189d0c0 Restore volume when playing a song...
1922eaa Make cover rectangular in player when cover animation is disabled
5d9bea5 Fix Album grid responsiveness on small screens.
69afb69 Fix Disc context menu not visible in mobile
27ba267 Fix play single song action
114fdce Fix Last.fm's artist.getInfo
fa8b4d4 Fix arranging songs in PlayQueue
ace5c90 Made the Player behaviour more consistent
26b5e6b Better scrobble log message when buffer is disabled
77f6bc8 Update SongList.js (#1219)
94e36d7 Remove old feature flag for cache layout
f492057 Add feature flag for buffered scrobbling
cfb113b Disable Last.FM features based on LastFM.Enabled config option
289da56 Implement Scrobble buffering/retrying

v0.44.1

01 Jul 23:25

Choose a tag to compare

Bug fix point release

This is an IMPORTANT upgrade, it fixes 3 nasty bugs:

  • The long standing "too many open files" issue, that has been with us since version 0.27.0! (#446)
  • Fixed a bug that caused the scanner to "hang" in certain circumstances.
  • When changing user details, the password would be overridden with garbage, preventing the user to login again (#1222)

Also, please read the release notes from 0.44.0 if you haven't already done so.

Changelog

fb183e5 Only encrypts NewPassword if it is not empty, when updating the user details. Fixes #1222
ed286c7 Don't rely on goroutines to send keepalive events
452c8dc Fixed the enduring nasty "too many files open" bug!! Fix #446
0c2ca2a Assign event ids in the main loop, to avoid out-of-order events
5bd3345 Fix deadlock situation when events are sent too fast to the broker
4ea0f23 Fix scrollbar colour for Dark/ExtraDark theme. Fixes #1216

v0.44.0

28 Jun 23:17

Choose a tag to compare

As promised, more security improvements: Passwords are now encrypted in the DB. The encryption key used can be overridden by the new config option PasswordEncryptionKey. See more details here: https://www.navidrome.org/docs/usage/security/#encrypted-passwords

ATTENTION: Please backup your DB before upgrading, as passwords will be encrypted when first running 0.44.0, and if you need to downgrade for any reason, old versions of Navidrome won't be able to read the passwords!

Also, you can now use a SSO/OAuth/OIDC proxy (like Authelia or Vouch) in front of Navidrome, to handle authentication. Thanks @ajgon!

And last but not least: Last.fm scrobbling is here! Users can opt-in by going to their Personal menu in the UI, and it can also be disabled for specific players if needed. Thanks @srichter!

Navidrome now uses a shared API-Key for Last.fm, so now Last.fm integrations (including scrobbling) work out of the box, but you can still override the API-Key with your own if you want to.

BREAKING CHANGE: The Native API URLs were changed:

/app/login => /auth/login
/app/createAdmin => /auth/createAdmin
/app/api/* => /api/*

If you use a script that connects directly with Navidrome, please check/change the URLs.

Highlights

  • [UI] Auto update current view when there are changes in the DB (new albums, ratings/playCount changes, etc) (#1025)
  • [UI] Prompt the user to refresh the page if server is using a version different then the UI, to keep both in sync after an upgrade
  • [UI] Move Artists/Songs/Playlist to top level, removing "Library" submenu
  • [UI] Show Disc Subtitles even if the album has only one disc (#947)
  • [UI] Allow themes to override the React Player styling. Fixed colors for Dark, ExtraDark and Light themes
  • [UI] New option to disable album cover animation in UI (save a few CPU cycles): EnableCoverAnimation (#1185)
  • [Server] Last.fm scrobbling! Must be authorized by the user, and can be disable by player (or completely disabled) (#1202) Thanks @srichter!
  • [Server] Last.fm integration now uses a shared API-Key, so Artist's bios, TopSongs, SimilarArtists and scrobbling work out of the box
  • [Server] New option LastFM.Enabled (default true) allows disabling Last.fm integration completely
  • [Server] Passwords are encrypted in the DB, with an option to override the encryption key used (#1187)
  • [Server] Reverse Proxy Authentication, allowing setting up SSO, OAuth and other authentication schemas (#1152) Thanks @ajgon!
  • [Server] Better SimilarSongs algorithm, prioritizing songs per popularity
  • [Subsonic API] Fix /rest/updatePlaylist not updating fields comment and public.
  • [Subsonic API] Fix /rest/getNowPlaying endpoint only returning one player/user
  • [Subsonic API] GetCoverArt returns placeholder if id is missing, mimicking Subsonic behaviour

Changelog

b16d473 Update es.json (POEditor.com)
fd82b8f Default for EnableCoverAnimation in dev mode is true
a73f885 Add option to disable album cover animation in the player. Closes #1185
167fe46 Addresses a bug that would prevent users from changing their own passwords, introduced as part of #1187. (#1214)
cb1827c Update translations (#1134)
25f0e11 Add 'AlbumArtist' column to SongList
292cf99 Add 'Year' column to Album and Playlists song list
d2fcab7 Fix ND_DEVFASTACCESSCOVERART flag not available as env var
94533e5 Add tests to /scrobble endpoint
6dd3837 Add referential integrity to remove user's props when user is deleted
26bcf0b Enable Last.fm scrobbling by default (still requires user's authorization)
92634a7 Only show message after 2 seconds, giving time for the browser to close it first
ee21f39 Pass userId explicitly to UserPropsRepository methods
a155107 Add a hacky way to style the react-player.
823fef8 Fix JS console error
82105c3 Remove React.Strict mode
b684a47 Show DiscSubtitle even if the album has only one disc.
da2334e Remove submenu "Library". Relates to #430
4853760 Suppress logs of successful DB migrations applied when running for the first time
0cbb0ac Skip songs with less than 31 seconds, as per Last.fm specification
5040f6f Fix label
abe8015 Add option to disable external scrobbling per player
5001518 Move user properties (like session keys) to their own table
265f33e Remove clearServiceWorkerCache, not needed anymore. (#1205)
99be844 Disable completely external scrobblers if feature is disabled (DevEnableScrobble)
f4ddd20 Send the time the track started playing when scrobbling
056f0b9 Refactor: Consolidate scrobbling logic in play_tracker
76acd7d Don't send scrobbles/nowPlaying updates to Last.fm if user has not authorized
8af7dab Fix wrong warning about ignored NowPlaying
a7509c9 Send NowPlaying and Scrobbles to Last.fm
d5461d0 Refactor Agents to be singleton
f9fa966 Show user-friendly message when error occurs in Last.fm callback endpoint
5fbfd9c Implement Last.fm account linking UI
8b62a58 Remove limitation of only scrobbling tracks longer than 30 seconds
743e469 Use singleton in other places as well
1f99735 Expose Last.fm's ApiKey to UI
143cde3 Implement Last.FM Web authentication flow
502a719 Implement Last.FM Desktop Auth flow endpoints
8ee5c1f Initial Last.fm UI implementation
0495e42 Fix Last.fm API method signature
ffa76bb Add flag to disable Scrobble config in the UI
a4f91b7 Add Last.FM Authentication methods
73e1a8f Remove false-positive on new version detection
877f01b Show notification if server is updated
47bcf71 Fix cookie warning
197d430 Fix lint error
4e1957c Update Go dependencies
25db2cb Add concurrency test for singleton
80b2c2f Try to register all playing music in GetNowPlaying
97434c1 Fix GetNowPlaying endpoint showing only the last play
f8ee6db New implementation of NowPlaying
0df0ac0 Add logos to badges
c09468e Option to allow auto-login during development.
cf553ce Don't show "logout" when authenticated by Header
31ea033 Fix subsonic token when authenticating by Header
66b74c8 Encrypt passwords in DB (#1187)
d42dfaf Add username to request.Context
84413b5 Bump @testing-library/jest-dom from 5.13.0 to 5.14.1 in /ui (#1176)
b590c31 Fix stream url, after changes to subsonic client api
c4623d7 Don't show "empty" dates
e0fd1c6 Add "Last Played" column to SongList
86271f0 Optimize refresh events for scrobble endpoint
fb7229a Refech using getMany, reducing the number of API calls
521d1ff Disable realip middleware when using the reverse proxy authentication feature
d3db41a Bump github.com/go-chi/httprate version
8bf0089 Bump github.com/ReneKroon/ttlcache/ and github.com/microcosm-cc/bluemonday versions
b65e762 Only send events to clients who need it
5f6f74f Always use httpClient to call APIs
8383527 Only refetch changed resources when receive a "refreshResource" event
8a56584 Removed the albumSong workaround, as React-Admin's cache seems to behave better now
667701b Less warning messages when first running it.
59b99d2 No need to check for first time when authenticating. One less SQL call per request
d54129e Rename app package to nativeapi
03efc48 Refactor routing, changes API URLs (#1171)
bed2f01 Fix index of songs in downloaded playlist
6bd4c0f Reverse proxy authentication support (#1152)
b445cdd Use a dedicated api-key/secret pair for Last.FM
e31802d Only send "refresh" event if SetRating was successful
cefc939 Trigger UI refresh on media annotation events: star, setRating and scrobble
2afb2db Refactor for readability
7f85ecd Trigger a UI refresh when the scanner finds changes.
cb6aa49 Bump github.com/lestrrat-go/jwx from 1.2.0 to 1.2.1 (#1167)
b7f47c8 Bump github.com/onsi/ginkgo from 1.16.3 to 1.16.4 (#1163)
adb09c9 Bump @testing-library/jest-dom from 5.12.0 to 5.13.0 in /ui (#1162)
0c9e0ff Bump prettier from 2.3.0 to 2.3.1 in /ui (#1161)
f9eec5e Refactored agents calling into its own struct
6c1ba8f Add tests to core.Share
110e17b Make MockRepo names more consistent
779571a go mod tidy
af210c8 Add Native Sharing REST API (#1150)
e80cf80 Move all Spotify and LastFM code into only one folder for each
182e3ec Update zh-Hans.json (#1160)
65ccd4c Parse ParamBool case-insensitively (#1151)
bebfe29 Allow updating only specific columns
9da9d73 Don't panic when taglib returns an error
cd24269 Foundational work to enable multi-valued tags
519c893 Omit empty fields from Native API responses
336d891 Bump github.com/ReneKroon/ttlcache/v2 from 2.5.0 to 2.6.0
9b4b28f Bump ginkgo/gomega versions
39c560a Remove unused web-vitals package
c5abdc1 Fix recursive bug in Last.FM calls without mbid
ead2095 Respect EnableLogRedacting config when pretty printing configuration
7b05c49 Add devEnableShare config option (#1141)
327c259 Create share table and repository. (#930)
675cbe1 Fix updatePlaylist not updating fields comment and public.
91a91f7 GetCoverArt returns placeholder if id is missing
7bbb09e Add tests for WeightedRandomChooser
dd56a77 Rename variable with conflicting name
a38e478 Better SimilarSongs algorithm
1940267 Handle functions with params in sort order.
01f3ce0 Add a timeout to background task
48b6fa7 Don't use request's context when refreshing artist info in background
25d62cd Set retention time for uploaded artifacts to 7 days
ed01946 Embed Last.FM error responses, making the tests faster
89b12b3 Retry calls to Last.FM without MBIDs when if returns artist invalid (#1138)
4e0177e Always update artist info, even if info is fresh
b398053 Include a shared Last.FM api key, providing zero conf ArtistInfo (bio/top songs/similar artists)
db11b6b Remove decoration from reflex output
60d50de Refactoring to make common components usage more uniform
0941fbc Fix lag on albumList toggling (#1136)
4...

Read more

v0.43.0

24 May 18:38

Choose a tag to compare

This release has a good deal of security improvements, with more to come in the next release.
Also some very nice features implemented by our contributors. Thanks to you all!

Highlights

  • [UI] Option to toggle fields in songs, albums & artists grids (#923). Thanks @aldrinjenson
  • [UI] Allow regular users to change their info, including passwords (#199)
  • [UI] Display BPM info (#1087). Thanks @brianschrameck
  • [UI] Add Czech, Slovenian and Swedish translations. Thanks @plr20, @jernejml and @deeeeeebs respectively
  • [UI] Restart current song when clicking "Previous song" when past the first few seconds (#1104). Thanks @aniketbiswas21
  • [UI] Show error message when adding duplicated username, and other user management improvements (#1101). Thanks @srichter
  • [Server] Never send passwords to the UI
  • [Server] Implement PermissionsPolicy security header (#1112). Thanks @Dnouv
  • [Server] Move away from unmaintained JWT library (see go-chi/jwtauth#50)
  • [Server] Add EnableLogRedacting to mask sensitive info in logs. Enabled by default
  • [Server] Make server compatible on OmniOS/illumos (#1048) Thanks @whorfin
  • [Scanner] Various reliability and speed improvements (#1054) Thanks @whorfin
  • [Scanner] Add new ScanSchedule that replaces ScanInterval and allows cron-like schedules
  • [Subsonic API] Fix Bookmarks Subsonic support (#1099)

Changelog

d9f2682 Rename List view mode to Table
8825197 Change back mounting order, for better logs
86d3a21 Show name of router in log
1d0e751 Update Portuguese translation
107a11b Bump React-Admin to 3.15.2
cf8ee25 Option to toggle fields in songs, albums & artists (#923)
6a17717 Update translations (#1130)
b8a274e Move Swedish translation to right folder
9800823 Bump react-jinke-music-player from 4.24.0 to 4.24.1 in /ui
02606f4 Add Swedish translation (#1126)
e529390 Remove md5-hex wrapper and use blueimp-md5 directly
0ec7a30 Reorder Makefile dev targets
b6cb81c Update Portuguese translations
e60f2bf User management improvements (#1101)
666c006 Bump lodash from 4.17.19 to 4.17.21 in /ui (#1110)
6ad9454 Add explicit dependency for inflection
fa0e6dd Remove C++11 warning in macOS
e047008 Fix test
3cac00a Upgrade TagLib to 1.12
39d68e8 Restore pretty formatted config options in debug level
751e2d6 Make ScanInterval=0 disable the periodic scan
74300ad Fix Ligera Error (#1117)
a484adf Add Slovenian translation. Thanks @jernejml
25bd36d Bump react-admin to 3.15.1
87298f6 Add more explicit npm dependencies
4699902 Remove dependency on lodash.get
978933a Add explicit npm dependencies
77e736c Do not use ra-core directly
a77635e Only setup event stream when mounting the app
0c93db8 Fix PWA notification toolbar color (#1083)
c024358 Integrate goose log with our own log system
22ce5b6 Removed unnecessary code
fa9083d Upgrade prettier to 2.3.0
da684ff Bump github.com/lestrrat-go/jwx from 1.1.6 to 1.2.0
7d96167 Upgrade to go-chi 5
fb58407 Bump github.com/golangci/golangci-lint from 1.39.0 to 1.40.0
089d4ab Replace Feature Policy with Permissions Policy (#1112)
62ccbaa Improve systemd unit security (#677)
8419a2a Schedule periodic scan before starting initial scan
71c2ed9 Restart Current Song on previous (#1104)
72ec808 Bump react-jinke-music-player from 4.21.2 to 4.24.0 in /ui
702a650 Fix redaction for query parameters. Fix #1103
3e8d3e7 Fix Bookmarks Subsonic support (#1099)
47f4e0a Refactor to remove some nesting
1f89499 Fix(?) possible TypeError
c92a24b Bump github.com/onsi/gomega from 1.11.0 to 1.12.0
cbe0d97 Bump github.com/robfig/cron/v3 from 3.0.0 to 3.0.1 (#1098)
44dd414 Bump github.com/microcosm-cc/bluemonday from 1.0.8 to 1.0.9 (#1056)
d85db8f Fix Spotify-ish playlist title is cut off (#1094)
c7378c0 Bump @testing-library/user-event from 13.1.5 to 13.1.8 in /ui (#1082)
18696c5 Update Czech translation (#1095)
5a5d763 Bump github.com/onsi/ginkgo from 1.16.1 to 1.16.2 (#1096)
f8dbc41 Breaking change: Add ScanSchedule, allows interval and cron based configurations.
1d6aa70 Fix possible TypeError
30bb3f7 BPM metadata enhancement (#1087)
fb33aa4 Fix possible TypeError
9e55931 Fix Album Grid flickering
a5fc5f0 Revert "Better way to invoke make single"
73efbd9 Better way to invoke make single
cbc4cb4 Fix QuickFilter by favourites in Album/All view
9864733 Fix missing translation error in console. Closes #1038
66b3164 Upgrade React-Admin to 3.15.0
b478b0a FIx ffmpeg output regex too rigid
c3316e2 Fix cover art detection with ffmpeg 4.4
874b17b Require user to provide current password to be able to change it
5808b9f Fix Transcodings menu
c33ebab Fix warning about promise being ignored
7feda4b Add EnableUserEditing, to control whether a regular user can change their own details (default true)
2ff1c79 Fix EnableLogRedacting case
cfbc39f Add log redacting, controlled by the new EnableLogRedacting config option (default true)
2372f1d Change visibility of helper function
490a7fc Add test to Login function
ad153f5 Fix User delete button not showing
b8138eb Fix create first login
e3fe839 Fix DevAutoCreateAdminPassword
88105d5 Clean-up Makefile, add help
b180386 Simplify build targets
70e7bf6 Clean up some make targets
d41137a [Spotify-ish] Login consistent with other themes (#1073)
88f2fc3 Fix regular users not able to edit their info before logging in again
bc62efb More auth tests
eaf40ef Never send passwords to the UI
71dc0dd Show Person icon for non admin users
bcda53f Less waiting for cache to be ready
8a07bac Fix SIGUSR1 work when ScanInterval=0
a35de2b Allow regular users to change their info, including password.
2258239 Fix "Failed prop type: Invalid prop variant" in console
932c108 Fix "SharedArrayBuffer will require cross-origin isolation"
20d2726 Improve scanner (#1054)
771c91d [Spotify-ish] Indicate active page number (#1068)
b817312 Update ja.json (POEditor.com)
d1605dc Replace godirwalk with standard Go 1.16 filepath.WalkDir
10cfaad Bump react-redux version to 7.2.4
07f6a7c Bump @testing-library dependencies
6e73c23 Keepalive must return an ID to be used with dataProvider.getOne
862c6d3 Upgrade React-Admin to 3.14.5
6926636 Uses GoLang 1.16.3
0d409e3 Fix aspect ratio of login icon

v0.42.1

05 May 14:33

Choose a tag to compare

Bug fix point release

This fixes a few issues:

  • [Spotify-ish] Fix incorrect aspect ratio of logo on login screen (#1072)
  • [Spotify-ish] Fix active page indicator (#1068)
  • [Scanner] Fix ffmpeg extractor not detecting album covers when used with ffmpeg 4.4
  • [Scanner] Allow SIGUSR1 to trigger scan even when ScanInterval = 0

Changelog

35027bb FIx ffmpeg output regex too rigid
3af4677 Fix cover art detection with ffmpeg 4.4
3c30cef Fix warning about promise being ignored
d0fea6b Fix SIGUSR1 work when ScanInterval=0
fff7173 Fix "Failed prop type: Invalid prop variant" in console
90a0739 Fix "SharedArrayBuffer will require cross-origin isolation"
ab68524 [Spotify-ish] Indicate active page number (#1068)
125c4fe Keepalive must return an ID to be used with dataProvider.getOne
616a44b Fix aspect ratio of login icon

v0.42.0

26 Apr 13:55

Choose a tag to compare

This version has lots of responsiveness improvements and fine-tunning in the UI. Thanks to all contributors!

Highlights

  • [UI] 5-star rating now available in the UI (#986). Thanks @neilchauhan2
  • [UI] "Starred/⭐️" in the UI is now "Favourite/❤️", to avoid confusion with the new 5-star rating system. No changes in the Subsonic API though (#908). Thanks @neilchauhan2
  • [UI] Options to disable 5-star rating (EnableStarRating) and/or Favourite (EnableFavourites)
  • [UI] Theme: "Spotify-ish" theme is now more Spotify-ish. Previous one was renamed to "Green" (#914). Thanks @samarsault
  • [UI] Theme: New themes: "Extra Dark" (#955) by @sobhanbera, and "Ligera" (#990) by @Dnouv
  • [UI] Theme: New config option to select DefaultTheme
  • [UI] Theme: Login page now uses the latest theme selected or the default one
  • [UI] Theme: More refined Login dialog
  • [UI] Playlists: Add pagination to playlists (#969). Thanks @RitikPandey1
  • [UI] Playlists: Allow adding songs to multiple playlists at once (#995). Thanks @YashJipkate
  • [UI] Add Quality info to songs (#918). Thanks @Himanshunitrr
  • [UI] Fix coverart not showing in notification when using a BaseURL
  • [UI] Fix freezing happening on some Nginx reverse-proxy configurations
  • [Subsonic API] Allow 5-star rating for Artists
  • [Server] Same comment in all tracks is converted to album comment, removing it from the tracks in the UI (#1013). Thanks @caiocotts
  • [Server] You can now send a SIGUSR1 signal to navidrome's process to start a quick scan

Changelog

f1bd736 Bump jest-environment-jsdom-sixteen from 1.0.3 to 2.0.0 in /ui
cde6626 Fix logo aspect ratio in Safari
1c7d4c5 Improve Logo resolution in login dialog
c75314c Enhanced Mobile Login Screen (#953)
b10f491 Fix Song details row height
b671d0f Better handling of album comments (#1013)
4b5a5ab Fix Web Scroller compatibility
3cede28 Reorganize AudioTitle classes.
79bbff0 Make Playlist grid more responsive
0142352 Fix build tag
d5c7a81 Disable SIGUSR1 handler for Windows (not available)
1e539f4 Add trigger scan when receiving SIGUSR1 signal
e83a0b2 Hide volume bar in lower resolutions (#889)
9f39f06 Bump @testing-library/user-event from 13.1.2 to 13.1.5 in /ui (#1051)
df57cd6 Allow adding songs to multiple playlists at once. (#995)
d829a63 fix: refactored some styles in jinkie player and removed br tag - #865 (#1047)
4b06142 Update translations (#1002)
aa9cf8e Add a cleanup to tests
240de70 Add tests for SpreadFS
6da9dee Fade in QualityInfo while hovering on Song title (#1041)
467eb34 Don't panic if fscache could not be initialized due to a FS error
31b553e Add missing error log message in fscache initialization
da30923 Replace default Login backgrounds with Navidrome's collection
e7be2f6 Bump ssri from 6.0.1 to 6.0.2 in /ui (#1045)
9a509c7 Workaround for lijinke666/react-music-player#351
abaecf2 Add Nginx header to not buffer SSE connection
f63a912 Add config option to set default theme
b6f525b Fix exception when running in Firefox over insecure http. Fix #1039
0063720 Change size and position of QualityInfo in the Player
b441260 Change icon on active menu item (#903)
16a5ac3 Fix migration error caused by #868
749f5d4 Fix welcome message styles (#1015)
a81ef09 Fix cover art not showing in notification when using a BaseURL
c86d2a9 Fix transparent background in Spotify-ish (#1030)
b55d582 go mod tidy
6635149 Fix pre-commit hook
01b34f4 Bumps @testing-library/user-event from 13.1.1 to 13.1.2
cb9cabe Bumps github.com/ReneKroon/ttlcache/v2 from 2.3.0 to 2.4.0
29aff05 Bump github.com/onsi/ginkgo from 1.16.0 to 1.16.1
f48bfb6 Bump github.com/microcosm-cc/bluemonday version
ef9a16a Change order of themes
ca9d427 New Ligera (light) Theme (#990)
efe8240 Remove inline style in favour of MUI's styling solution
f7dfaba Replaced literal 302 with http constant (#1006)
d8a1773 Increase golangci-lint timeout. Fix #1001
e105e2d Update Japanese translation (#997)
f41bc31 Fix layout when album comment is visible
96a14ec Hide QualityInfo on small screens
48ae4f7 Add 5-star rating system(#986)
840521f Fix console errors for QualityInfo component
5178f44 Add has_rating filter to albums
10dcc3f Remove unnecessary export mapping (bad refactoring)
49b1c40 Update Japanese translation (#992)
156a53c Add support for artist 5-star rating in Subsonic API
9913b92 Get lossless format list from server
52812fa Added quality info (#918)
c57fa7a Fixes play icon color in "Light" theme (#972)
dbda871 npm audit fix
5f685bc Hide ❤️ in Playlists
37f6ff0 Do not disable eslint rule
01ef4d2 Bump @testing-library/jest-dom from 5.11.9 to 5.11.10 in /ui
32ad982 Bump github.com/golangci/golangci-lint from 1.38.0 to 1.39.0
87b0460 Bump @testing-library/react-hooks from 5.1.0 to 5.1.1 in /ui
4e41ef7 Bump github.com/microcosm-cc/bluemonday from 1.0.4 to 1.0.6
6af45d6 Bump @testing-library/user-event from 13.0.7 to 13.1.1 in /ui
69fe771 Bump @testing-library/react from 11.2.5 to 11.2.6 in /ui
ce675d4 Bump github.com/onsi/ginkgo from 1.15.2 to 1.16.0
6988b9a Improved Header Readability for Songs List (#985)
55c2431 Fix undefined variant prop in DateField (#987)
69ee174 Add pagination to playlists (#969)
cdfdf78 Revert "style(SongDataGrid): Improved Header Readability (#954)"
ca51372 Add Extra Dark theme (#955)
a4d0773 Update fr.json (#975)
3d58c5a style(SongDataGrid): Improved Header Readability (#954)
12223b2 Fix extra multiline Prop error (#966)
c7dc362 Fix transparent bg in suggestions [Spotify-ish] (#964)
9871919 New service worker (#952)
0cb7d38 Add required prop order in random album list. Fix #957
d0d18e8 Album details UI fix (#922)
0d95c4b Fix Code of Conduct link
ea65da4 Make spotify-ish more spotify-ish (#914)
5128c04 Rename diodo_test.go to diode_test.go (#956)
16f6d94 Remove redundant backgroundColor from Login icon
cf72bbf Fix login page UI contrast in dark,spotify (#946)
20f5778 Fix prop undefined bug #925 (#942)
46d4c48 Login backgrounds from unsplash collection (#936)
166410e Login backgrounds from unsplash collection (#936)
43cbde9 Remove "minimize" button from Player when in Desktop resolution
13e80e6 Fix issue with classes being removed from DOM. Fix #864
16e495a Revert: Fix theme not being applied to PlayerToolbar
1f2b529 Allow theme customizing Login Page (#940)
a36a8c2 Fix LinkWrapping Error in the console #921 (#924)
5245b4c Fix cacheUndefined bug - #901 (#915)
3b0defe Fix UI loading redirections. Should fix #906
404253a Enable turn on/off Favorites/Loved feature. (#917)
5dfcb31 Remove unused prop from ArtistList (#926)
90cf118 Fix context menu/heart column header alignment in SongList
b42532d Fix theme not being applied to PlayerToolbar
ac37bf3 Refactored the current ⭐️/Star feature to ❤️/Love/Favourite feature. (#908)
db20860 Fix theme not being applied to Player's audioTitle
01ba00c New component for mobile Artist List (#891)
e575825 Add / to _ mapping for paths based on tags. (#888)
5abc215 Hide BulkActionsToolbar after removing songs from playlist (#898)
210f34b Update CONTRIBUTING.md
5e70e07 docs(contributing.md): Contributing guidelines added (#831)
a85b70e feat(github): add issue templates (#892)
515aa71 Move logger middleware to capture routing errors (ex: 405). (#877)
cdb387b Properly break long comment lines. Fix #855 (#856)
d5434d4 Add 'lint to pre-push git hook
c46aa72 Add lint script to UI project
4b68260 Move constant to consts.go file