- playerStore: Guard onend against spurious 'ended' events fired by
WebKit/GStreamer immediately after a direct audioNode.currentTime seek.
Root cause of the deterministic "second click on progress bar stops song"
bug: a lastSeekAt timestamp + position check now silently drops any
'ended' event that fires within 1 s of a seek if the playhead isn't
actually near the track end.
- playerStore: Debounce togglePlay with a 300 ms lock to prevent rapid
double-clicks from issuing pause→play before GStreamer has finished its
state transition, which caused a multi-second pipeline hang.
- NowPlayingDropdown: Clicking a Live entry now navigates to the album page.
- QueuePanel: DnD drop target index now calculated from clientY position
at drop time instead of refs, eliminating the dragend-before-drop race
on macOS WKWebView and Windows WebView2.
- styles: Increased Hero background blur for a more immersive look.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add full search results page (/search?q=) with artist, album, song sections
- Fix search results column alignment (fixed-width Format column eliminates per-grid auto-sizing variance)
- Remove experimental gapless playback (caused song skipping and beginning cutoffs)
- Add known limitations to README and CHANGELOG (seeking, DnD reliability)
- Update GitHub Actions to Node.js 24 (checkout@v5, setup-node@v5)
- Add align-items: center to tracklist-header CSS
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix queue DnD on macOS/Windows: delay ref cleanup in onDragEnd so onDropQueue
reads correct source/destination before dragend clears them
- Active track highlighting in album tracklist (pulsing accent bg + play icon)
- Marquee scrolling for long titles in Fullscreen Player
- Clickable artist/album in Player Bar and Queue now-playing strip
- Tracklist: format column moved after duration, auto width, kHz/filesize removed
- Settings dropdowns: visible border (base bg + overlay0 border)
- Sidebar: fixed responsive width via clamp(), removed drag-to-resize
- Favorites icon: HandMetal → Star in Random Mix page
- Linux app menu category set to Multimedia (AudioVideo)
- Windows MSI: stable upgradeCode for in-place upgrades
- Bundle: category/description fields at correct config level
- About: Claude Code credit, fixed German MIT licence wording
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>