Skip to content

3.0.0 (295)

Choose a tag to compare

@fkick fkick released this 26 Jul 17:10
· 4 commits to main since this release
3a28d1d

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