What is the change
Implement persistent player queue state with a dedicated Zustand store (MMKV-backed): queue, currentTrack, currentIndex, shuffled, unShuffledQueue, and queueRef.
Restore the queue on app start: new initialization reads persisted state and rebuilds the TrackPlayer queue and active index.
Unify queue mutations to keep React Native Track Player and the persisted store in sync:
Loading a new queue sets queueRef, honors shuffle, computes start index, and writes to both RNTP and store.
"Play Next" and "Add to Queue" update RNTP, the live queue, and unShuffledQueue consistently.
Active track/index changes now propagate to the store and query cache.
Tighten/refine player query/invalidations so UI reflects the latest RNTP state.
Minor housekeeping in config/scripts to support the above (ESLint flat config, metro/jest/script updates).
What does this address
Fixes queue not restoring after relaunch or crash; playback position and the current track persist correctly.
Preserves shuffle state and the original unshuffled ordering for reliable shuffle toggle behavior.
Ensures "Play Next"/"Add to Queue" behave consistently with what the user sees, avoiding duplication or desyncs.
Reduces UI state drift by syncing RNTP events to both React Query and persistent store.
Co-authored-by: Violet Caulfield <42452695+anultravioletaurora@users.noreply.github.com>
Welcome to Jellify 0.12.2!
This update comes with a much anticipated developer feature - and that is opt-in logging and telemetry. This is purely an opt-in feature, and can be toggled at anytime either when logging in for the first time, or in the settings tab. Under no circumstances will this ever be required to use Jellify, and all data that is collected is anonymized
The Settings tab has had a facelift, stealing design queues from the library page. This is where adjustable settings will make their home in updates to come, as well as how beta testing larger features will occur with “Labs”
This update also fixes issues with playback reporting, where the Jellyfin server wasn’t marking songs as played. This was not intended and has been fixed for those using the Last.FM plugin for scrobbling
There is also a slew of upgrades to underlying dependencies to make sure we are up to date on that front
Thanks for reading! ~Violet