Releases: jeffvli/feishin
1.2.0
Added
- Added Grid view for playlist songs (thanks @Fluttrr)
- Added hotkeys for list selection playback (#1469)
- Added a file path replacement setting to replace/append to your song's path (#1402)
- Added a context menu item to Songs to show in file manager
- (Subsonic) Added
LEGACY_AUTHenv variable for SERVER_LOCK configuration (#1473) - Added
REMIXERsupport for song artists (#1400) - Added
SUBTITLEsupport for song titles (#1177) - Added originaldate and year to album displays (#1488)
Changed
- Reorganized display of albums by their joined releasetypes when displaying all releasetypes in the artist page
- Albums are now sorted by their originaldate instead of releasedate (#1488)
- Copied audiomotionanalyzer presets now include custom gradients
- Add up to 2 genre carousels on the album page if multiple genres available
- Use short-hand date format for various date displays
- Made queue controls follow the queue panel in the player sidebar
Fixed
- Fixed butterchurn visualizer not working on every other song when autoplaying (#1475)
- Fixed app crash on empty artist values returned by API (#1483) (thanks @chenqimiao)
- Fixed EP string value casing (#1474) (thanks @salguerooo)
- Fixed built-in font "Inter" not applying the proper font weight
- Fixed arrow key navigation not working on the Table list view (#1469)
- Fixed missing loading state when external lyrics are fetching
- Fixed "export lyrics" button not being displayed when external lyrics are being used
- Fixed card playback controls not working on Song grid views
- Fixed mediasession not being refreshed when playback is set to repeat one (#1472)
- Fixed radio cancellation error when double clicking a radio station (#1419)
- Fixed table sizing of the
Relatedtab on the fullscreen player (#1484) - Fixed MPV reload button not working in settings
- Fixed playback buttons being triggered on inputs other than left click (#1493)
- Fixed search bar disappearing on artist page if no results found
What's Changed
- forcing string value for EP to always be upper case by @salguerooo in #1474
- feat: playlist grid view by @Fluttrr in #1476
- Avoid an infinite loop when artist.name is an empty string. by @chenqimiao in #1483
- Bump qs from 6.14.0 to 6.14.1 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #1465
New Contributors
Full Changelog: v1.1.0...v1.2.0
1.1.0
Added
- Added support for a
Public URLin the server configuration to allow dynamic switching between local and remote URLs- Updating a server no longer requires re-entering your password
- Added docker ENV variable
ANALYTICS_DISABLED=trueto opt out of analytics - Added 4 audiomotionanalyzer visualizer presets
- Support copy/paste of custom gradients for audiomotionanalyzer visualiser
- Added configuration to reorder and show/hide album releasetypes in the artist page
Changed
- Changed album artist and artist displays to use the actual artist tag value when available (#1459)
- Adjusted album detail page
- Re-added album metadata to header
- Display primary album releasetype in header
- Display album version in header
- Added additional tag values to the tags section
- Added moods to the tags section
- Improved dynamic title sizing calculation to better handle asian characters
- Decreased opacity of library header when using
album background imageorartist background imagesettings
Fixed
- (Windows/Web) Fixed MediaSession showing incorrect song image (#1296)
- (Jellyfin) Fixed missing
Most playedsong carousel in the homepage (#1464) - (Jellyfin) Fixed song images not properly falling back to album image in some views (#1456)
- Lyrics
clearbutton now clears searched lyrics and reverts back to server lyrics (#1342) - Fixed pop-out list filter collapsed/expanded state not persisting across app sessions
- Fixed missing rating display on the
compactGrid display - Fixed various page configuration settings which were missing settings and showing duplicate values in some instances
- Fixed click propagations when using the Playerbar fullscreen toggle setting (Thanks @pyxfluff)
What's Changed
- Bump electron version by @sheepman4267 in #1452
- fix: correct propagation on settings menu by @pyxfluff in #1453
New Contributors
- @sheepman4267 made their first contribution in #1452
Full Changelog: v1.0.2...v1.1.0
1.0.2
Small fix for default lyric fetchers to be applied on first start.
Fixed
- Fixed internet lyrics fetcher sources not being properly synced to the setting
Full Changelog: v1.0.1...v1.0.2
1.0.1
Important:
Analytics are now being tracked in Feishin using a locally hosted instance of Umami. If you wish to opt-out, please do so under Settings -> Advanced -> Analytics
The data being tracked is:
- Generic platform name: e.g Web / Linux / Windows / MacOS
- What servers you have configured in your app as a true/false value: e.g. Navidrome / Subsonic / Jellyfin
- What version of the app you are running: e.g. v1.0.1
- A select number of application settings defined here
This will be subject to change in the future, but will be conveyed transparently on every change.
In addition, all of your configured settings have been reset to default values. This was done so in order to avoid potential application errors due to the large amount of changes made between v0.22.0 and v1.0.0.
Added
- Added setting to individually set image resolutions around the app
- Added Internet Radio feature (server API for Navidrome/Subsonic, local store for Jellyfin)
- (Navidrome / Subsonic) Added buttons to save/restore play queue to/from your server
- Added AutoDJ feature which automatically adds similar songs to the queue
- Added multi-item playlist reordering
- Added support for folder browsing
- Added in-app release notes popup on new version
- Added queue filters configuration to ignore songs by criteria when adding to the queue
- List page redesign which includes universal selection behavior (multi-select) between different views
- You can now select and drag/drop items from the list and other views directly to the queue
- You can now select and drag/drop items directly to playlists on the sidebar
- Added two new play types
- Add next (shuffled)
- Add last (shuffled)
- Add long press to card play buttons to play shuffled variants
- Added a waveform seek playerbar
- Added a global music folder selectorr
- Added
Priorityqueue mode which uses Spotify style queueing for your tracks - Added
Favoritespage to the sidebar - Added
CTRL + Ahotkey support to lists to select all (loaded) items - Added lyrics panel in the attached play queue sidebar
- Added visualizer panel in the attached play queue sidebar (web player only)
- Added butterchurn visualizer & configuration
- Added audiomotion visualizer & configuration
- Added popout album preview in list mode
- (Navidrome) Added support for multi-column sorting in smart playlist editor
- (Navidrome) Added support for custom tags in smart playlist editor
- (Navidrome) Added date picker operators for several date fields
- (Subsonic) Several improvements to API support
- Added genre feature to the home page
- Added new feature carousel design
- Added mobile responsiveness to the app
- Added fade-out and fade-in of audio on status change
- Adjusted lyrics fetch behavior
- Overridden lyrics (selected from search) are now persisted instead of the original fetched
- Added preview to lyrics search before selection
- Removed
resetlyrics button
- Added new application themes
- Ayu Dark
- Ayu Light
- Catppuccin Latte
- Catppuccin Mocha
- Default Dark
- Default Light
- Dracula
- GitHub Dark
- GitHub Light
- Gruvbox Dark
- Gruvbox Light
- High Contrast Dark
- High Contrast Light
- Material Dark
- Material Light
- Monokai
- Night Owl
- Nord
- One Dark
- Shades of Purple
- Solarized Dark
- Solarized Light
- Tokyo Night
- VS Code Dark+
- VS Code Light+
Changed
- Redesigned several pages and views
- Moved some playback configuration into playerbar settings menu on bottom right
- Added command palette option to the app menu
- Player queue state is now persisted on every change which prevents loss on unclean shutdown
What's Changed
- add web audio, replaygain, visualizer by @kgarner7 in #1289
- 1.0.0 by @jeffvli in #1288
- Fix typos in Docker instructions by @Soderes in #1303
- fix: bring back linux deb by @farfromrefug in #1304
- Explain that SERVE_TYPE supports the parameter subsonic in readme by @chenqimiao in #1321
- feat(subsonic): support form post by @kgarner7 in #1333
- Bump js-yaml from 4.1.0 to 4.1.1 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #1261
- Potential fix for mpv causing the queue to clear by @jeffvli in #1360
- Add Lyrics button to right-controls. by @lindenkron in #1363
- Light mode fixes by @eramdam in #1379
- feat: sync play queue for navidrome/subsonic by @kgarner7 in #1335
- Add internet radio by @jeffvli in #1384
- fixed favorites tracks/albums/artists selection by @Exceen in #1418
- feat: show record label copyright at bottom of track listing by @iiPythonx in #1421
- Set minimum length in the available server list in to 1 instead of 2 by @Fleeym in #1434
- Fix API parameter for Jellyfin 10.12 and up by @ItzELECTR0 in #1429
- Add translation strings and improve design for the network error route by @Fleeym in #1435
- Improve network error detection and reduced retry delay by @Fleeym in #1436
- Add image URL generation at runtime to allow for dynamic image sizes by @jeffvli in #1439
- feat: add artist radio and track radio (in context menu) by @farfromrefug in #1437
- Export lyrics by @kgarner7 in #1383
- Add visualizer configuration by @jeffvli in #1443
- fix:music filtering subsonic by @farfromrefug in #1442
- feat: Add DISABLE_AUTO_UPDATES env variable by @BatteredBunny in #1446
- feat: adding setting to show/hide user ratings by @salguerooo in #1426
New Contributors
- @Soderes made their first contribution in #1303
- @farfromrefug made their first contribution in #1304
- @lindenkron made their first contribution in #1363
- @Exceen made their first contribution in #1418
- @Fleeym made their first contribution in #1434
- @ItzELECTR0 made their first contribution in #1429
- @BatteredBunny made their first contribution in #1446
Full Changelog: v0.22.0...v1.0.1
v1.0.1-beta.1
To receive automatic beta updates, set the release channel to Beta under Advanced settings.
Important:
Analytics are now being tracked in Feishin using a locally hosted instance of Umami. If you wish to opt-out, please do so under Settings -> Advanced -> Analytics
The data being tracked is:
- Generic platform name: e.g Web / Linux / Windows / MacOS
- What servers you have configured in your app as a true/false value: e.g. Navidrome / Subsonic / Jellyfin
- What version of the app you are running: e.g. v1.0.0-beta.1
- A select number of settings defined here
This will be subject to change in the future, but will be conveyed transparently on every change.
In addition, all of your configured settings have been reset to default values. This was done so in order to avoid potential application errors due to the large amount of changes made between v0.22.0 and v1.0.0.
Summary
The list of changes is incomplete. This will continue to be updated.
Added
- Added Internet Radio feature (server API for Navidrome/Subsonic, local store for Jellyfin)
- Added new application themes
- Ayu Dark
- Ayu Light
- Catppuccin Latte
- Catppuccin Mocha
- Default Dark
- Default Light
- Dracula
- GitHub Dark
- GitHub Light
- Gruvbox Dark
- Gruvbox Light
- High Contrast Dark
- High Contrast Light
- Material Dark
- Material Light
- Monokai
- Night Owl
- Nord
- One Dark
- Shades of Purple
- Solarized Dark
- Solarized Light
- Tokyo Night
- VS Code Dark+
- VS Code Light+
- (Navidrome / Subsonic) Added buttons to save/restore play queue to/from your server
- Added AutoDJ feature which automatically adds similar songs to the queue
- Added multi-item playlist reordering
- Added support for folder browsing
- Added in-app release notes popup on new version
- Added queue filters configuration to ignore songs by criteria when adding to the queue
- List page redesign which includes universal selection behavior (multi-select) between different views
- You can now select and drag/drop items from the list and other views directly to the queue
- You can now select and drag/drop items directly to playlists on the sidebar
- Added two new play types
- Add next (shuffled)
- Add last (shuffled)
- Add long press to card play buttons to play shuffled variants
- Added a waveform seek playerbar
- Added a global music folder selectorr
- Added
Priorityqueue mode which uses Spotify style queueing for your tracks - Added
Favoritespage to the sidebar - Added
CTRL + Ahotkey support to lists to select all (loaded) items - Added lyrics panel in the attached play queue sidebar
- Added visualizer panel in the attached play queue sidebar (web player only)
- Added popout album preview in list mode
- (Navidrome) Added support for multi-column sorting in smart playlist editor
- (Navidrome) Added support for custom tags in smart playlist editor
- (Navidrome) Added date picker operators for several date fields
- (Subsonic) Several improvements to API support
- Added genre feature to the home page
- Added new feature carousel design
- Added mobile responsiveness to the app
- Added fade-out and fade-in of audio on status change
- Adjusted lyrics fetch behavior
- Overridden lyrics (selected from search) are now persisted instead of the original fetched
- Added preview to lyrics search before selection
- Removed
resetlyrics button
Changed
- Redesigned several pages and views
- Moved some playback configuration into playerbar settings menu on bottom right
- Added command palette option to the app menu
Fixed
- Player queue state is now persisted on every change which prevents loss on unclean shutdown
Changes since v0.22.0
2025-12-15
- remove release_channel from settings sync (c9cd87b)
- Revert "prevent autoupdater from setting release channel (#1396)" (9a8cb45)
- handle text overflow on sidebar playlist duration (68b6a58)
- prevent action bar icons from being squished on resize (fix) (5b5cdbf)
- prevent action bar icons from being squished on resize (cf4e505)
- use success notification instead of warn on 0 playlist entries added (#1393) (8464ed4)
- fix initial list order on artist discography (#1378) (9e49a45)
- add page view tracker (8dc5f2a)
- remove analytics properties for based on desktop-only settings (6bb848a)
- localize dates (#1237) (8edf61f)
- add migration to clear all original store settings (#1396) (96d2699)
- prevent autoupdater from setting release channel (#1396) (614761e)
- fix potential infinite updater loop due to stale settings sync state (154f018)
- allow custom message on restart toast (593ad7a)
- Translated using Weblate (Hungarian) (2372f18)
- include select settings values in analytics (ad54855)
- revert to using custom window bar styles (ea73995)
- revert padding of sidebar filters (455452b)
- fix bg color / padding of sidebar panel (b2941b6)
- properly set mpv volume on init (bc898d6)
- more small adjustments to light mode (88b27fa)
2025-12-14
- more minor theme adjustments (3c2af4b)
- remove rating from item card if using jellyfin (f5d6c49)
- add utility to wait for detail bg color before page render (08a8f7f)
- fix release notes modal showing even if no new version (f92754c)
- improve page header readability on all themes (d4e39ca)
- adjust SegmentedControl to use theme color (868c64d)
- adjust network request waterfall to force authentication first, add fallback for no network (#1028) (09dfc1f)
- add a hook to sync main settings with renderer (303eba8)
- adjust surface color for some themes (d8c46ba)
- reorder theme settings to the top of general (649f541)
- adjust custom window bar titles (858678e)
- fix window bar position on mobile layout (48bba76)
- decrease settings modal width (3f32e6c)
- increase padding on list filters (253a78b)
- add new app themes (69de9a9)
- fix padding on server selector when radio is enabled (0f4534c)
- adjust padding on sidebar items (a9476a9)
- increase font size of sidebar playlist metadata (e56d885)
- remove drag area from page header when using custom window bars (b6e7bfb)
- add privacy / owner to sidebar playlist metadata (a377e3d)
- optimize playlist edit modal (#1234) (752b191)
- fix loading state on queue restoration button (b19e752)
- remove artist song list fetch post-processing (1e8e178)
- fix mpv exiting on radio stop (1bc1f61)
- optimize library headers (#1374) (b4b1062)
- fix formatting in playlist duration (#1382) (4cc51c3)
- fix debounce on onScrollEnd callback on ItemGridList (8b06324)
2025-12-13
- Add internet radio (#1384) (7ed847f)
- fix missing remote event handlers (#1344) (f61d34c)
- add validation for Subsonic releaseDate (5c8d18d)
- remove duplicate mpv autoNext listener (401d0e5)
- Translated using Weblate (Polish) (e7bdb2d)
- lint files (f9ce076)
- allow user to unpin list sidebar (a14e5f0)
- add improved play button group on list headers (ab1176d)
- add proper labels to ND tag filters (eb10035)
- handle player stop on queue clear (a546a4d)
- feat: sync play queue for navidrome/subsonic (#1335) (ed5d590)
2025-12-12
- fix context menu not triggering on sidebar playlist (1ac267f)
- increase font weight of sidebar playlist name (2a36fa9)
- disable sidebar lyrics fetcher if panel is closed (8f1141b)
- fix window bar background color for light mode (13afd3d)
- make create playlist form implementation consistent (d821e0a)
- add new spinner icon (f850c52)
- Light mode fixes (#1379) (22dd208)
- fix mpv autoNext and next song replacement behavior (part 2) (578083d)
- fix mpv autoNext and next song replacement behavior (29a5fa3)
- fix authentication query for Subsonic/ND (1bcc238)
- redesign sidebar playlist item (4103ed7)
- more feature carousel optimizations (ce6155f)
- replace Jellyfin raw streamUrl with /download endpoint (e147a78)
2025-12-11
- prevent mpv from reinitializing on volume, speed, and transcoding (4b66c86)
- redesign feature carousel to be more compact (aa435bb)
- fix missing emitters from onPlayerPlay (a4dbeff)
- fix mpv player queue behavior to handle gapless playback (61e7034)
- fix broken remote (#1344) (01a95f5)
- Add Lyrics button to right-controls. (#1363) (bb55fc2)
2025-12-10
- Translated using Weblate (German) (f7d488b)
- add time validation to lyric seek (#1280) (bdce8ec)
- add header to playlist page (a778f4c)
- add activeRowId styles to song list table (bea5bd7)
- always set start song index to 0 when adding to queue in shuffle mode (10aec7b)
- normalize dates to UTC, remove year to date conversions (c1ea39a)
- use absolute date for release date column (#1364) (5da119e)
- fix username param on subsonic getUser (#1362) (27eebe4)
- force table displayType on folder list (16d656f)
- potential fix for mpv clear (#1360) (eeb0a78)
- fix auto dj not triggering on single song queue (#1359) (32062d7)
- revert mediaStop back to 0.x.x behavior (b627f4e)
2025-12-09
- render login page on SERVER_LOCK (#1172) (389dfd0)
- fix missing server add form from server required (#1350) (8a681a7)
- add new player handlers to command palette items (#1356) (6eba434)
- attempt to improve mpv exit handlers (#1348) (816df56)
- fix preserve pitch on player start, add to player config (#1349) (a02fc28)
- remove truncation from path column (#1351) (753f35f)
- support alternate row colors on sidebar (#1354) (fcfe39a)
- remove drag bar from carousel - add vertical scroll (d5799af)
2025-12-08
0.22.0
0.22.0 is here! This has been in beta for some time now and is the last release slated for v0.x.x.
Added
- Add 'preservePitch' toggle to playback speed dropdown (#1243)
- Add additional information to album: record label, release type, version (#1242)
- Add Import/Export Feishin Settings feature (#1163)
- Add filtering for now playing view and sidebar (4cbbb40)
- Add explicit status support for Navidrome and OpenSubsonic (#1220)
- Update translation files across multiple languages
Changed
- Remove unnecessary sections from Genius lyrics (#1154)
Fixed
- Fix library header spinner (f679376)
- Fix lyric translation not resetting (#1208)
- Fix short album/artist name breaking Discord presence (#1191)
- Remove duplicate scrobbling when there is only one item in the queue (#1222)
- Fix OOBE window bar config (#1057) (#1203)
- Disable Media Keys with MediaSession on Windows (#1207)
- Prevent Media Session Handling on MPV (#1212)
- Bumped electron version for prevent macOS issues
0.21.2
Fixed
- Fixed regression with playback completion scrobble not being sent when conditions are met
- Fixed application crash when
Playbacktab is opened on Web
Full Changelog: v0.21.1...v0.21.2
0.21.1
Fixed
- Fixed regression causing the player queue to go out of sync when using media hotkeys
Full Changelog: v0.21.0...v0.21.1
0.21.0
Added
- (Windows) Added MediaSession (SMTC) playback controls and metadata support (thanks @Der-Penz)
- Added release channel settings allowing users to choose between stable and beta releases for automatic updates
- PWA (Progressive Web App) support for the web version (thanks @luis-c465)
- Discord Rich Presence integration with song and artist links (thanks @VulpesNova)
- Added playlist duration badge display (thanks @ilgabbo)
- Multiple genre support for Navidrome albums and tracks
- Added semantic selectors for now-playing media elements to allow integration with external scrobblers (thanks @inverse)
- Added new languages
- Basque (eu)
- Arabic (ar)
- Added Recently released albums section on home page
- Image cache invalidation for Navidrome and Jellyfin servers
- Added client-side sort to playlist view
Changed
- (Jellyfin) Refactored server add/edit functionality with toggle for Instant Mix behavior
- Moved update settings to advanced tab for better organization
- Enhanced home route with recently released albums section
- Changed song change notifications to be silent (thanks @ilgabbo)
Fixed
- Album song count calculation issues
- Album categorization false detections
- Playlist handling when no tracks are present
- Nonexistent filter handling
What's Changed
- client-side only sort for all playlists by @kgarner7 in #1125
- Feature: added silent song notification setting by @ilgabbo in #1129
- feat: add semantic selectors for now-playing media by @inverse in #1138
- Feature: added playlist duration badge by @ilgabbo in #1130
- Bump vite from 6.3.5 to 6.3.6 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #1115
- Bump axios from 1.9.0 to 1.12.0 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #1145
- Fix web player transition by @jeffvli in #1150
- Add autodiscovery for Jellyfin servers by @hedgehog1029 in #1146
- Feature: Add song and artist links to discord RPC by @VulpesNova in #1160
- Add PWA to web app by @luis-c465 in #1175
- show time remaining instead of duration on click by @Lyall-A in #1179
- enable mediaSession api by @Der-Penz in #1040
- Added a Linux Notes section below MacOS for desktop. by @flamesage in #1020
New Contributors
- @ilgabbo made their first contribution in #1129
- @inverse made their first contribution in #1138
- @hedgehog1029 made their first contribution in #1146
- @VulpesNova made their first contribution in #1160
- @luis-c465 made their first contribution in #1175
- @flamesage made their first contribution in #1020
Full Changelog: v0.20.1...v0.21.0
0.20.1
Changed
- Adjusted playback notification text to remove redundant wording (Thanks @mihawk90)
- Included right click context menu for various items (thanks @maximelafarie)
- Current song text in the player bar
- Current song image in the player bar
- Current song image in the left sidebar
- Set initial value of the rating in the context menu based on selected items
- Allow data URIs inside of
custom cssparser (thanks @kgarner7)
Fixed
- Fixed right click context menu not closing on click outside in certain pages (thanks @kgarner7)
- Fixed electron file menu hotkey being disabled on macOS (thanks @maximelafarie) (#1113)
What's Changed
- cleanup notification text by @mihawk90 in #1107
- feat: add context menu on left controls and sidebar image by @maximelafarie in #1114
- fix: electron menu bar for darwin devices by @maximelafarie in #1113
- fix(context menu): Properly handle click outside, and show initial rating by @kgarner7 in #1122
New Contributors
- @maximelafarie made their first contribution in #1114
Full Changelog: v0.20.0...v0.20.1