Skip to content

feat(desktop): add shadow playlists and polish browsing and playback - #78

Merged
rianjs merged 2 commits into
mainfrom
fix/playback-and-library-polish
Oct 14, 2026
Merged

rianjs merged 2 commits into
mainfrom
fix/playback-and-library-polish

Conversation

@rianjs

@rianjs rianjs commented Oct 14, 2026

Copy link
Copy Markdown
Collaborator

Retune can now discover and keep read-only shadows of saved Spotify playlists, including personalized playlists. Shadows retain their last complete contents on refresh failure, remain scoped to the Spotify account, and never edit the upstream playlist. This feature is isolated in its own commit.

The desktop fixes preserve the playing highlight and playlist position after library/metadata edits, allow direct star ratings and type-to-jump navigation, show scoped totals, and apply shuffle to genre/artist/album collection starts. Clicking the playing title restores its library filters, playlist sort, or Spotify search/album view and reveals the current track without restarting playback. Preferences now use a separate native window and include optional leading-“The” sorting.

A dropped Spotify AP connection during an audio-key request previously surfaced as a decoder error and skipped the track. The controller now refreshes an invalid session and retries the same load once, rejecting stale requests and newer playback intents. Unrelated settings saves no longer cancel playback intent.

Validation:

  • Full Rust workspace tests; strict Clippy, formatting, and release/docs/ACL checks.
  • 220 frontend tests, lint, and production build; the shadow-only commit also builds and passes its frontend tests independently.
  • Native macOS interaction pass covering browsing, ratings, collection shuffle, playback-origin restoration, and Preferences.
  • Live fault injection forces an unavailable load and verifies Follow You decodes after reconnection without advancing the queue, using muted output and a temporary cache.
  • Detailed procedures and results: UI validation.

Native Preferences title-bar dragging and manual edge/minimum-size resizing remain unverified by the automation driver. Native Windows/Linux interaction testing is not included; CI validates their builds.

@rianjs
rianjs merged commit 8a30c2a into main Oct 14, 2026
8 checks passed
@rianjs
rianjs deleted the fix/playback-and-library-polish branch October 14, 2026 19:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant