Repository navigation
3.0.0 (295)
WatchAmp 3.0.0 Release Notes for RC1
WatchAmp 3.0.0 adds Jellyfin support alongside Plex, companion-app sign-in for both server providers, Apple Watch provisioning, Jellyfin library browsing, playback, downloads, artwork, playback reporting, watch-local Favorites, offline search, restored playback queues, Apple Watch complications, richer diagnostics, and stronger downloaded-library recovery.
What's New
- Added initial Jellyfin server support alongside existing Plex support.
- Added a new Servers tab in the iPhone companion app.
- Added Jellyfin sign-in from iPhone using server URL, username, and password.
- Added Jellyfin Quick Connect support from the iPhone companion app.
- Added a Jellyfin sign-in method picker for Password or Quick Connect.
- Added Quick Connect code display, approval polling, timeout handling, cancellation, final authentication, and copy-to-clipboard support.
- Added Plex PIN sign-in from the iPhone companion app.
- Added Plex PIN code display, polling, timeout handling, cancellation, and copy-to-clipboard support.
- Added companion-to-watch provisioning for Plex and Jellyfin credentials through WatchConnectivity.
- Added pending server setup state in the companion app so users can see when setup is waiting for Apple Watch.
- Added a Clear Pending Setup action for stuck or obsolete companion-to-watch provisioning attempts.
- Added last-known Apple Watch server status in the companion app without storing Plex or Jellyfin credentials on iPhone.
- Added provider status details for the connected server, including provider, server name, server address, user, and last update time.
- Added immediate watch server status messages in addition to application-context updates.
- Improved companion server status messaging for signed-in, signed-out, pending, and blocked provider states.
- Added a provider picker in the companion app with Jellyfin and Plex logo assets.
- Improved provider switching by clearing stale Jellyfin credentials when saving Plex credentials and clearing stale Plex credentials when saving Jellyfin credentials.
- Added watch-side Jellyfin credential storage, provider selection, and automatic startup restore.
- Added watch-side handling for Plex account tokens received from the companion app.
- Improved the Apple Watch Plex setup path after companion sign-in by loading Plex Home users from the received account token.
- Kept Plex sign-in on Apple Watch through the existing PIN flow.
- Added Jellyfin music library discovery.
- Added Jellyfin artist, album, track, playlist, hub, and search browsing through the existing watch library UI.
- Added Jellyfin support for Recently Added, Recently Played, and Recently Released library hubs.
- Added Jellyfin playlist browsing and playlist track playback.
- Added Jellyfin direct-play URL resolution for supported audio formats.
- Added Jellyfin transcode URL support for unsupported formats when transcoding is enabled.
- Added Jellyfin artwork loading for online playback, downloads, album rows, artist rows, playlists, and local downloads.
- Added Jellyfin playback session reporting, progress reporting, pause/resume/stopped timeline updates, and played-track reporting.
- Improved Jellyfin playback reporting with WatchAmp client version metadata.
- Improved direct-play format detection so Jellyfin can use codec-aware playback decisions while Plex keeps its existing container-based behavior.
- Fixed Jellyfin browsing bugs around artist, album, and cached letter sections.
- Fixed Jellyfin library filtering so movie libraries are no longer shown as selectable music libraries.
- Fixed Jellyfin playback handling for direct play and transcoded playback paths.
- Fixed duplicate Jellyfin Recently Added listings.
- Hardened Jellyfin resume behavior after restoring playback state.
- Added watch-local Favorites for the active server account.
- Scoped Favorites by provider, server, and user so Plex and Jellyfin accounts keep separate favorite lists.
- Added a Favorites entry to the main Library view.
- Added an On Device Favorites view for favorited tracks that are downloaded to the watch.
- Added Play and Shuffle controls for Favorites.
- Added Download All and Remove All actions for Favorites.
- Added long-press actions on Favorites for Play Next, Play Later, and Remove from Favorites.
- Added long-press actions on On Device Favorites for Play Next, Play Later, and Remove from Favorites.
- Added Add to Favorites actions from artist, album, hub, library browsing, Now Playing, and local downloads.
- Added bulk favorite shortcuts for artists, albums, and hub results.
- Fixed a Favorites race where bulk Add to Favorites could save tracks into the wrong account if the active server changed during a fetch.
- Fixed Favorites playback and download tasks so they use a stable track snapshot even if the Favorites list changes immediately afterward.
- Marked Remove from Favorites as a destructive Now Playing action.
- Preserved the media server provider for pending offline downloads so queued downloads continue with the correct backend.
- Improved pending download queue ordering and presentation.
- Added an "Adding to Queue" / "Queuing downloads" status overlay while large download requests are being prepared.
- Improved downloaded album and playlist rows with better artwork fallback behavior.
- Improved downloaded album track lists by showing track numbers and the Now Playing waveform state.
- Added Play Album and Shuffle controls to downloaded album detail views.
- Added Play and Shuffle controls to On Device > All Downloads when downloaded tracks are available.
- Added queue handling for downloaded album playback, including Replace Queue, Play Next, and Play Later choices.
- Added Play Playlist to server playlist long-press menus.
- Added Replace Queue confirmation before playlist playback replaces an active queue.
- Added long-press actions for local downloaded artists, albums, playlists, and tracks.
- Added Play, Play Next, Play Later, Add to Favorites, and Delete actions for downloaded artists and albums.
- Added Play, Play Next, Play Later, and Delete actions for downloaded playlists.
- Added Delete Track confirmation for local downloaded track actions.
- Improved downloaded playlist actions and confirmation dialogs carried forward from the v2.x download flow.
- Stored downloaded artwork as local artwork files when available, reducing metadata size for downloaded tracks.
- Moved downloaded audio, metadata, and artwork storage from purgeable caches into Application Support.
- Added migration for existing downloaded audio, playlist metadata, track metadata, and artwork from the legacy cache location.
- Improved large v2-to-v3 downloaded-library migration so metadata can load from durable storage, legacy cache storage, or UserDefaults without being discarded.
- Improved downloaded storage migration by moving work off the main actor and indexing legacy files before repair.
- Added repair support for legacy downloaded artwork after launch.
- Added lazy repair for missing downloaded artwork when downloaded albums, artists, playlists, or tracks appear.
- Added manual Recover Missing Downloads in Settings to rebuild metadata for orphaned downloaded audio files.
- Added manual Refresh Download Artwork in Settings for missing or unreadable downloaded artwork.
- Increased downloaded artwork fetch size for better local artwork quality.
- Improved legacy downloaded artwork repair to refresh low-resolution artwork and fill missing metadata when needed.
- Improved downloaded artwork lookup so stale absolute artwork paths can recover from current Application Support or legacy cache artwork locations.
- Improved downloaded-file validation to check both durable and legacy download directories.
- Improved local downloaded playback repair to search durable and legacy locations before dropping a downloaded track.
- Added safer recovery policies that pause recovery and artwork refresh while playback, streaming, or downloads could conflict.
- Added cancellation for missing-download recovery and artwork refresh during delete operations and teardown.
- Debounced downloaded-track metadata saves and local downloads library rebuilds to reduce pressure during large download batches.
- Kept immediate download metadata saves for delete, validation, repair, launch loading, and teardown paths.
- Improved play-cache stats so offline download files are not counted as transient play-cache files.
- Added cancellation-aware filesystem helpers for cache and file operations.
- Restored playback queue persistence across app runs.
- Restored offline artwork across app runs.
- Added a queue-history model so the queue can preserve previous, current, and upcoming playback order.
- Updated Queue view ordering so the visible queue reflects current-plus-upcoming rows while previous tracks remain available through transport controls.
- Fixed Queue header counts so they match the visible queue rows.
- Fixed a shuffle-start bug.
- Improved All Downloads shuffle so it uses the same ordering as the visible downloaded list.
- Fixed a false AVPlayer resource-unavailable path for restored local playback.
- Relaxed restored-queue preflight checks that could incorrectly block playable downloaded tracks.
- Fixed offline Now Playing navigation for Jellyfin and local playback.
- Added offline search fallback when Downloads is selected, no remote library is selected, or the watch is offline.
- Improved offline search artwork so local results render downloaded artwork directly from stored metadata.
- Updated library cache identity to account for provider and cache schema, clearing stale cached data when switching providers.
- Improved Jellyfin artist and album letter filtering for symbol-heavy names.
- Improved server-change recovery flow with an in-settings loading state, retry path, and View Downloads option when Plex server loading fails.
- Improved app error handling so users with local downloads can return to Settings or view downloads instead of being forced back through authentication.
- Added Back and View Downloads actions to recoverable error screens.
- Fixed Settings to Now Playing return button delay.
- Normalized LibraryManager loading state to prevent stale loading UI.
- Fixed the premature search spinner.
- Added Apple Watch launcher complications through a new WidgetKit extension.
- Added circular, corner, rectangular, and Smart Stack widget layouts.
- Added complication artwork, full-color Smart Stack icon support, widget asset catalogs, and hardware entitlement updates.
- Added Now Playing-aware widget state for complication timelines.
- Updated rectangular widget background styling.
- Added complication screenshots and v3 App Store marketing screenshots.
- Added diagnostic-mode gated watch support logs.
- Added sanitized server path context to diagnostics so logs can distinguish local/private and remote/public routes without exposing tokens or raw hostnames.
- Gated verbose Jellyfin playback diagnostics behind a disabled-by-default testing flag.
- Added network connection type diagnostic support.
- Added updated diagnostics screenshot assets.
- Reduced main-actor synchronous disk work during playback, queue, and downloaded-library operations.
- Fixed a high-concurrency issue in AudioPlayerManager.
- Added cancellation and identity tracking for restored-artwork repair tasks.
- Cancelled stale restored-artwork repair when a new playback request starts or playback teardown begins.
- Added generation guards so stale async local/server checks cannot show Track Needs Server Connection after playback context changes.
- Applied Swift concurrency fixes across AuthManager, LibraryManager, PlexAPIService, and AudioPlayerManager.
- Audited focused detached task usage in AudioPlayerManager.
- Improved the Apple Watch sign-in screen layout for smaller watch displays.
- Updated Settings wording from Subscription to Premium and adjusted Premium purchase wording for the lifetime purchase model.
- Moved Speaker Playback into a Bluetooth & Speaker settings section.
- Updated companion walkthrough, setup, FAQ, privacy, website, and StoreKit metadata for the v3 release.
- Added and updated localized strings for Jellyfin, Plex companion sign-in, provisioning, pending setup, Favorites, downloaded actions, recovery, offline search, shuffle controls, complications, diagnostics, and updated server status messaging.
- Added Simplified Chinese App Store localization assets and updated Spanish and Chinese screenshot sets.
App Store Copy
WatchAmp 3.0.0 adds Jellyfin support alongside Plex, with iPhone-based Server sign-in, Jellyfin library browsing, playback, downloads, artwork, playback reporting. WatchAmp 3.0.0 also adds Watch Complication Support and a new "Favorites" hub which is an on watch playlist that users can add tracks to using Long Press actions on tracks, albums, artists, and playlists.
New in this update:
- Jellyfin server support alongside Plex
- New Servers tab in the iPhone companion app
- Plex PIN & Jellyfin Password or Quick Connect sign-in from iPhone Companion App
- Send Plex or Jellyfin connection details securely to Apple Watch
- Last-known Apple Watch server status in the companion app
- Pending setup status when the Apple Watch still needs to finish provisioning
- Jellyfin music library, artist, album, track, playlist, hub, and search browsing
- Jellyfin support for Recently Added, Recently Played, and Recently Released hubs
- Jellyfin direct play for supported audio formats
- Jellyfin fast-start transcoding support
- Provider-aware offline downloads
- Better downloaded album and playlist artwork presentation
- Apple Watch launcher complications and Smart Stack support
- Watch-local Favorites hub scoped to each server account
- Add to Favorites actions from artist, album, library, Now Playing, and downloaded music
- Play, queue, favorite, and delete actions for downloaded artists, albums, playlists, and tracks
- Offline search support for downloaded music
- Restored playback queues and track progress across app launches
- Migration for existing downloaded music and artwork to safer long term storage location
- Manual recovery for missing downloaded files after upgrade
- Manual refresh for missing downloaded artwork
- Download queue status feedback while large download batches are being prepared
- Higher-quality downloaded artwork
- Updated v3 companion help content
- Spanish and Simplified Chinese localization updates
Fixes in this update:
- More reliable pending download queues
- Improved downloaded track numbering and Now Playing indicators
- Reduced metadata-save pressure during large download batches
- Better cache handling when switching between Plex and Jellyfin
- Downloaded music storage moved to a more durable app support location
- Better recovery when downloaded artwork paths become stale after reinstall, build, or container changes
- Improved server-change and error recovery flows when local downloads are available
- Clearer companion provisioning state when the watch is unreachable or setup is pending
- Safer provider switching between Plex and Jellyfin credentials
- More reliable restored local playback and restored queues
- Reduced stale Track Needs Server Connection notices after playback context changes
- Better offline artwork restoration
- More consistent queue ordering and queue counts
- Fixed shuffle start and All Downloads shuffle ordering
- Faster and more reliable local search loading states
- Improved Jellyfin resume behavior and Recently Added listings
- Less main-actor disk work during playback and downloaded-library operations
- More stable diagnostics and watch support logging