Note: This release has known issues with fresh installs. Please use the most recent release.
What's Changed
- Happy herschel by @jherskowitz in #1
- Claude/update todo completed yh elc by @jherskowitz in #3
- Claude/first run tutorial rn6 hl by @jherskowitz in #4
- Merge remote-tracking branch 'origin/claude/first-run-tutorial-RN6HL'… by @jherskowitz in #5
- docs: update project setup guides to use 'parachord' instead of 'harmonix-des… by @jherskowitz in #6
- Add shuffle mode to queue with original order restoration by @jherskowitz in #7
- Style queue drawer scrollbar with dark theme styling by @jherskowitz in #8
- Skip progress tracking for browser-based playback sources by @jherskowitz in #9
- fix: improve Apple Music playlist scraper with JSON-LD extraction by @jherskowitz in #10
- Fix YouTube playback polling and improve collection UI/drag-drop by @jherskowitz in #11
- Various fixes and improvements (2026-01-27) by @jherskowitz in #12
- Add spinoff availability checking before enabling spinoff mode by @jherskowitz in #13
- feat: add MusicBrainz artist info to biography page by @jherskowitz in #14
- refactor: improve artist bio page styling and remove links by @jherskowitz in #15
- feat: add bio preview tooltip on artist name by @jherskowitz in #16
- fix: pre-fetch artist bio for tooltip on page load by @jherskowitz in #17
- fix: increase tooltip z-index and add native title fallback by @jherskowitz in #18
- fix: pre-fetch bio for tooltip when using cached artist data by @jherskowitz in #19
- debug: always show tooltip to test rendering by @jherskowitz in #20
- fix: change tooltip position to top (header has overflow:hidden) by @jherskowitz in #21
- revert: remove bio tooltip (not working due to overflow:hidden) by @jherskowitz in #22
- feat: add bio tooltip on artist name in playbar now playing section by @jherskowitz in #23
- fix: calculate album track count from collection tracks by @jherskowitz in #24
- fix: remove overflow:hidden wrapper from playbar artist tooltip by @jherskowitz in #25
- Claude/add musicbrainz artist info y yu ip by @jherskowitz in #26
- fix: restore playbar now playing vertical spacing and left-align reso… by @jherskowitz in #27
- Claude/fix album track count vune p by @jherskowitz in #28
- fix: use filteredTracks when queueing from resolver icon in recommend… by @jherskowitz in #29
- fix: move background sync effect after function definition by @jherskowitz in #30
- fix: back button from collection albums returns to Collection by @jherskowitz in #31
- fix: clear stale visible track IDs when recommendations filter changes by @jherskowitz in #32
- fix: make sticky filter bar work in Related Artists tab by @jherskowitz in #33
- fix: clear stale visible track IDs when recommendations filter changes by @jherskowitz in #34
- Claude/fix sticky filter bar r4 cwz by @jherskowitz in #35
- fix: manually check initial visibility when recommendations filter ch… by @jherskowitz in #36
- fix: preserve filename when saving playlist to prevent duplicates by @jherskowitz in #37
- Add album name column to track list displays by @jherskowitz in #38
- fix: reset shuffle state when queue is replaced with new content by @jherskowitz in #39
- fix: replace undefined ListPlus icon with inline SVG by @jherskowitz in #40
- feat: add Add to Playlist button to album hover states by @jherskowitz in #41
- fix: use MusicBrainz API for album hover button track fetching by @jherskowitz in #42
- fix: shuffle new queue when shuffle mode is active by @jherskowitz in #43
- fix: improve album hover overlay pointer events and z-index by @jherskowitz in #44
- fix: consistent shuffle behavior - Play All respects, click track resets by @jherskowitz in #45
- perf: prefetch album tracks on hover for Top Albums by @jherskowitz in #46
- Change default release type filter to show all releases by @jherskowitz in #47
- feat: move ALL filter to first position in discography filter pills by @jherskowitz in #48
- feat: remove Stations from sidebar by @jherskowitz in #49
- Claude/artist discography filter default s jv bg by @jherskowitz in #50
- Claude/artist discography filter default s jv bg by @jherskowitz in #51
- Merge track sources with resolved sources from state by @jherskowitz in #52
- fix: improve error messaging for unsupported audio formats by @jherskowitz in #53
- Improve ad skip button visibility detection by @jherskowitz in #54
- Refactor and expand app.js with significant feature additions by @jherskowitz in #55
- Claude/ready fzyi8 by @jherskowitz in #56
- Claude/ready fzyi8 by @jherskowitz in #57
- fix: add drag handle at top of main content area by @jherskowitz in #58
- Add SoundCloud resolver with OAuth authentication support by @jherskowitz in #59
- Fix YouTube end-of-video ad handling for proper track advancement by @jherskowitz in #60
- fix: consistent vertical spacing in playbar track info by @jherskowitz in #61
- Move Spotify polling to main process for background-safe playback by @jherskowitz in #62
- Claude/add soundcloud axe 9zu vf by @jherskowitz in #63
- fix: stop HTML5 audio when skipping between resolvers by @jherskowitz in #64
- Implement progressive search with instant local results by @jherskowitz in #65
- fix: use release-group IDs for album art cache consistency by @jherskowitz in #66
- fix: standardize album art caching on release-group IDs across all pages by @jherskowitz in #67
- Claude/improve search performance 8 rb f0 by @jherskowitz in #68
- Claude/improve search performance 8 rb f0 by @jherskowitz in #69
- fix: use albumToReleaseIdCache for release page art lookup by @jherskowitz in #70
- Revert "fix: use albumToReleaseIdCache for release page art lookup" by @jherskowitz in #71
- Improve album art caching by checking albumToReleaseIdCache by @jherskowitz in #72
- Claude/fix album art caching 2 jo no by @jherskowitz in #73
- Claude/fix album art caching 2 jo no by @jherskowitz in #74
- Claude/fix album art caching 2 jo no by @jherskowitz in #75
- fix: prefer albums over singles when clicking playbar album art by @jherskowitz in #76
- fix: use CSS tooltip for playbar album art and fix click handler by @jherskowitz in #77
- Add configurable media key handling modes by @jherskowitz in #78
- feat: application menu bar, media key settings, and CI/CD by @jherskowitz in #79
- Claude/browser extension repo structure wx0t g by @jherskowitz in #80
- chore: add package-lock.json for CI builds by @jherskowitz in #81
- fix: resolve Windows and Linux build failures by @jherskowitz in #82
- fix: ensure Spotify pauses when quitting app by @jherskowitz in #83
- Make electron-updater optional for development environments by @jherskowitz in #84
- Claude/fix album art caching 2 jo no by @jherskowitz in #85
- Add embedded player support with WebSocket communication by @jherskowitz in #86
- Claude/embedded player parachord q vc7x by @jherskowitz in #87
- Claude/embedded player parachord q vc7x by @jherskowitz in #88
- Claude/embedded player parachord q vc7x by @jherskowitz in #89
- Fix Spotify authentication method name by @jherskowitz in #90
- Claude/fix spotify config a8h7w by @jherskowitz in #91
- feat: auto-detect Last.fm/Libre.fm auth completion via polling by @jherskowitz in #92
- Unify marketplace and installed plugins into single view by @jherskowitz in #93
- Claude/unified plugins page dj ti k by @jherskowitz in #94
- Fix album art flashing during track transitions by @jherskowitz in #101
- Add Redirect URI display and copy functionality for OAuth apps by @jherskowitz in #103
- fix: end listen-along session when starting Collection Station by @jherskowitz in #105
- Disable shuffle when exiting Collection Station by @jherskowitz in #106
- Claude/music chart sources 8ed36 by @jherskowitz in #113
- feat: add track resolution for chart songs with resolver icons by @jherskowitz in #114
- fix: chart songs resolution not triggering automatically by @jherskowitz in #116
- Claude/music chart sources 8ed36 by @jherskowitz in #117
- Claude/music chart sources 8ed36 by @jherskowitz in #118
- docs: reorganize TODO.md to focus on major features by @jherskowitz in #120
- Fix playback state handling for SoundCloud and queue exhaustion by @jherskowitz in #121
- fix: prevent Spotify polling from overwriting SoundCloud track state by @jherskowitz in #122
- Add SoundCloud icon support to ResolverIcon component by @jherskowitz in #123
- feat: use soundcloud-icon-white.png for SoundCloud icons by @jherskowitz in #124
- Refactor playlist selection to use loadPlaylist helper by @jherskowitz in #126
- Prevent auto-resume after user pause on device wake by @jherskowitz in #127
- fix: prevent Space key from triggering play/pause when typing in modals by @jherskowitz in #128
- Add Jest test suite and testing infrastructure by @jherskowitz in #129
- fix: improve Spotify pause on quit reliability by @jherskowitz in #130
- Add bidirectional sync for tracks, playlists, and artist follows by @jherskowitz in #131
- feat: add Edit Playlist context menu option by @jherskowitz in #132
- feat: add Edit Playlist context menu option by @jherskowitz in #133
- Claude/fix queue end playback m0kfy by @jherskowitz in #135
- Claude/fix queue end playback m0kfy by @jherskowitz in #136
- feat: show 4 weeks of Weekly Jams on home page by @jherskowitz in #137
- fix: flex Weekly Jams cards to fill row without empty space by @jherskowitz in #138
- Add Qobuz authentication and streaming support by @jherskowitz in #139
- fix: respect shuffle mode when playing from card hover buttons by @jherskowitz in #140
- Redesign AI results sidebar actions with circular icon buttons by @jherskowitz in #141
- fix: vertically center AI playlist action buttons by @jherskowitz in #142
- Add Apple Music MusicKit integration with native playback support by @jherskowitz in #143
- fix: correct Apple Music resolver ID in auto-advance polling by @jherskowitz in #144
- Claude/apple music auto advance fix 01 kzz kne vt fh4k ph xbe8bj gt by @jherskowitz in #145
- Enhance playlist sync with bidirectional push/pull and conflict resolution by @jherskowitz in #146
- fix: add Apple Music support for play/pause, seeking, and volume cont… by @jherskowitz in #147
- fix: correct syntax error in handlePlayPause from Apple Music changes by @jherskowitz in #148
- Claude/reimplement spotify sync z97 kq by @jherskowitz in #149
- Remove Apple Music from volume control support by @jherskowitz in #151
- Auto-unpin friends when they go offline by @jherskowitz in #152
- fix: show Applications folder icon in DMG installer by @jherskowitz in #153
- feat: add script to add padding to dock icons by @jherskowitz in #154
- fix: fill icon corners and improve DMG config by @jherskowitz in #155
- fix: add window config to DMG for proper icon display by @jherskowitz in #156
- Claude/auto unpin offline friends kt ypj by @jherskowitz in #157
- fix: prevent disabled resolvers from auto-re-enabling on startup by @jherskowitz in #159
- fix: filter resolver icons by activeResolvers in all views by @jherskowitz in #160
- fix: merge resolved sources in handlePlay for proper resolver priority by @jherskowitz in #161
- Prevent simultaneous playback across streaming services by @jherskowitz in #163
- Improve Apple Music & Collection resolution by @jherskowitz in #164
- Add background priority level and idle pre-resolution support by @jherskowitz in #165
- Improve Apple Music playback detection and resolver rate limiting by @jherskowitz in #166
- fix: add global rate limiter for iTunes API calls by @jherskowitz in #167
- Refactor and expand app.js with new features and improvements by @jherskowitz in #168
- fix: check .env for MusicKit token if user hasn't configured one by @jherskowitz in #169
- Add skeleton loaders and update color scheme for music UI by @jherskowitz in #170
- Increase resolver icons container width from 90px to 140px by @jherskowitz in #171
- Add charts utility functions for Apple Music and Last.fm by @jherskowitz in #172
- Reorganize TODO: Move completed items to backlog by @jherskowitz in #173
- Convert track list layouts from fixed to flexible column widths by @jherskowitz in #174
- Prevent global keyboard shortcuts from interfering with text inputs by @jherskowitz in #175
- Fetch music listening data across multiple time periods by @jherskowitz in #176
- fix: add backward-compatible flat format to listening context by @jherskowitz in #177
- Improve track duration handling with fallback defaults by @jherskowitz in #178
- Add source tracking and display for imported and synced playlists by @jherskowitz in #180
- Add unread badges to discovery features (recommendations, charts, critics picks) by @jherskowitz in #181
- Claude/add unread badges jq7cv by @jherskowitz in #182
- Fix event listener cleanup and add previous track support by @jherskowitz in #183
- Add star button to add/remove artists from collection by @jherskowitz in #184
- fix: add overflow-hidden to artist card image containers by @jherskowitz in #185
- Enhance app loading screen with animated wordmark and shimmer effect by @jherskowitz in #186
- fix: remove drop-shadow and shimmer to fix pixelated wordmark edges by @jherskowitz in #187
- style: use playbar gray-800 color for loading wordmark by @jherskowitz in #188
- Improve SoundCloud token refresh error handling and auto-clear expired tokens by @jherskowitz in #189
- docs: add metadata sources documentation by @jherskowitz in #190
- Add MCP Server integration design document by @jherskowitz in #194
- Claude/mcp parachord integration mlog0 by @jherskowitz in #195
- Persist auto-pinned friend IDs to storage by @jherskowitz in #196
- Prevent overlapping playback with generation-based request tracking by @jherskowitz in #199
- Add purchase capability to Bandcamp and Qobuz resolvers by @jherskowitz in #200
- feat: add workflow to sync browser extension to dedicated repo by @jherskowitz in #202
- Claude/sync repos changes 0x f6 f by @jherskowitz in #203
- Add comprehensive mobile architecture documentation for Android and iOS by @jherskowitz in #204
- Fix play button state when queue is exhausted or empty by @jherskowitz in #205
- Add comprehensive Conversational DJ implementation plan by @jherskowitz in #206
- Improve Apple Music progress tracking for native and web playback by @jherskowitz in #207
- Exclude native build artifacts from package distribution by @jherskowitz in #208
Full Changelog: https://github.com/Parachord/parachord/commits/v0.5.0-alpha.1