Releases: vdulnev/jrr
Releases · vdulnev/jrr
2.8.0
2.7.0
Merge pull request #21 from vdulnev/rel feat(docs): Add Release 2.7.0 documentation
2.6.0
Merge pull request #12 from vdulnev/rlz chore(release): Prepare and document version 2.6.0
2.5.3
Merge pull request #11 from vdulnev/rlz feat(core): Update app lifecycle management and version
2.5.2
Merge pull request #10 from vdulnev/fix refactor(queue): Optimize state loading and debug logging
2.5.1
patch(pkg): Bump version to 2.5.1 Increments the package version to 2.5.1.
2.5.0
JRiver Remote 2.5.0
Highlights
- Server-less Offline Startup. The app can now be used without ever logging into a JRiver Media Center server. A new "Continue Offline" button on the login screen lets you jump straight into your downloaded library.
- Album Download Progress. When downloading entire albums, you now see a combined progress indicator directly in the album list. No more guessing when a bulk download is finished.
- Improved Playback Stability. Several critical race conditions in the local player have been fixed, ensuring that playback doesn't stop unexpectedly when background downloads complete or when managing large queues.
What's new
Offline Mode
- "Continue Offline" button: New entry point on the server setup screen for a fully local experience.
- Persistent Offline State: If you were using the Offline zone when you last closed the app, it will now automatically return to that state on launch, bypassing the network check and login screen.
- Aggregated Album Progress: Added
AlbumDownloadProgressIndicatorwhich calculates the combined download status of all tracks in an album. - Intelligent Queue Management: The player now only reloads the playback queue if a newly finished download is actually in the current list, reducing unnecessary audio engine restarts.
Playback & Controls
- Synchronized Queue Reloads: Implemented a locking mechanism in
LocalPlayerto prevent race conditions when multiple tracks finish downloading simultaneously. Playback state (playing/paused) is now reliably preserved. - Safer Queue Modifications: Properly awaited all asynchronous audio engine operations (insertion, movement, removal), eliminating "RangeError" crashes during batch track deletions.
- Context-Aware Mini Player: Transport controls (play, pause, next, prev) are now correctly disabled and dimmed when the playback queue is empty.
- Fallback Labels: Improved "Unknown Artist" and "Unknown Track" displays on the mini player when no media is loaded.
UI & UX
- Refined Logout Path: In Offline Mode, the "Logout" button now dynamically changes to "Setup Server / Login" with a matching icon, providing a clear path back to server configuration.
- Detailed Player Logging: Enhanced internal logging to include full snapshots of the playback sequence (shuffle state, indices, track names), making future diagnostics much faster.
Fixes
- MCWS "Play" Action: Fixed a bug where selecting "Play" from an album's menu would only append the tracks to the queue instead of starting playback immediately.
- Typo in MCWS Headers: Corrected a syntax error in the auth token header that could cause intermittent connection issues on some platforms.
- Stuck Offline State: Fixed a circular dependency that could crash the app when transitioning from the login screen to offline mode.
Migration notes for developers
- New Synthetic Session: Added
ServerInfo.offlineconstant to represent a server-less session. Repositories should check for empty addresses to skip network calls. - Provider Synchronization:
LocalPlayernow uses_isReloadingand_reloadRequestedDuringReloadflags. Custom modifications to_reloadWithNewQualitymust respect this locking pattern. - Updated
LocalPlayerService: Methods likeremoveTrack,moveTrack, andinsertTracksAtare nowFuture<void>and MUST be awaited.
2.4.8
JRiver Remote 2.4.8
Highlights
- Official macOS and iOS / iPadOS builds. Tagged releases now publish
JRiverRemote-macOS.zip(ad-hoc signed) andJRiverRemote-iOS.ipa
(unsigned) on the GitHub Releases page, alongside the existing Android,
Windows, and Linux artifacts. - iOS Local Network permission. Adds the
NSLocalNetworkUsageDescriptionApple requires for any app on iOS 14+
to talk to a server on the local network — without it the app would
appear to launch but silently fail to reach Media Center. - Build-from-source guide. A complete walkthrough in the README for
installing prebuilt unsigned binaries (sideloading paths included) and
for building from source with Xcode end-to-end. - Refactored player core. Local and remote (MCWS) playback now share
a singlePlayerControllerinterface, so every player command is one
line in the unified provider instead of anif (zone.isLocal) ... else ...block. Lays the groundwork for adding new transports.
2.4.7
chore(release): Bump version to 2.4.7 Increments the package version to 2.4.7. This is a patch release.
2.4.6
chore(version): bump version to 2.4.6 Updates the package version number for the next release cycle.