- Lokalise: Translations update (by @marcelveldt in #2093)
- Move the progressive search logic into a reusable composable (by @marcelveldt in #2073)
- Make release workflows aware of stable patch builds (by @marcelveldt in #2058)
- Fix Music Quiz menu item icon and label (by @marcelveldt in #2044)
- Add issue chooser redirecting to the support repo (by @marcelveldt in #2040)
- Add diagnostics report download to settings (by @marcelveldt in #2038)
- Lokalise translations update (by @github-actions[bot] in #2032)
- Exclude parent directory ("..") item from selection in browse mode (by @MarvinSchenkel in #2029)
- Extract the player protocol section into a dedicated component (by @marcelveldt in #2015)
- Extract the config entry row into a dedicated component (by @marcelveldt in #2013)
- Restore progress bar fill thickness and time-label spacing (by @MarvinSchenkel in #1997)
- Restore timeline progress bar spacing in the player bar (by @MarvinSchenkel in #1994)
- Lokalise translations update (by @github-actions[bot] in #1989)
- Include icon aliases in IconPicker search results (by @dmoo500 in #1972)
- Lokalise: Translations update (by @marcelveldt in #1971)
- Lokalise translations update (by @github-actions[bot] in #1955)
- Always expand players when clicking the player button from the 'now playing' screen (#60) (by @joperafe in #1944)
- Render player option and sound mode labels localized by the server (by @marcelveldt in #1932)
- Add scroll to description dialog for long descriptions (by @dmoo500 in #1908)
🚀 Features and enhancements
- Improve Music Timeline presentation layout (by @marcelveldt in #2096)
- Choose Music Trivia language (by @marcelveldt in #2091)
- Auto-start Music Quiz replays (by @marcelveldt in #2090)
- Add waveform option to player menu (by @marcelveldt in #2089)
- Polish guest listen-in and timeline controls (by @marcelveldt in #2087)
- Simplify Music Quiz setup (by @marcelveldt in #2085)
- Streamline the party guest search (by @marcelveldt in #2080)
- Show rankings during Music Quiz (by @marcelveldt in #2082)
- Polish the Music Quiz experience (by @marcelveldt in #2081)
- Add Music Trivia (by @marcelveldt in #2078)
- Faster search for party guests (by @marcelveldt in #2077)
- Faster music search when setting up a Music Quiz (by @marcelveldt in #2075)
- Allow a library-only search from the provider filter (by @marcelveldt in #2074)
- Add Hitster to Music Quiz (by @marcelveldt in #2068)
- Faster global search with media type and provider filters (by @marcelveldt in #2071)
- Keep Music Quiz players connected (by @marcelveldt in #2066)
- Add flexible Music Quiz game routing (by @marcelveldt in #2063)
- Remove the blank space between the player and the party mode dashboard view (by @GiuliaPassoni in #1937)
- Improve the Discover page edit mode (by @marcelveldt in #2062)
- Support Music Quiz game types (by @marcelveldt in #2061)
- Customize the navigation menu with a new edit mode (by @marcelveldt in #2060)
- Add audio overlay controls (by @jlpouffier in #1753)
- Redesign the Music Quiz UI (by @marcelveldt in #2054)
- Add difficulty selector to Music Quiz setup (by @marcelveldt in #2048)
- Add Music Quiz game interface (by @TimoPtr in #2010)
- Add listen-in (shared audio) for party guests (by @marcelveldt in #2041)
- Show track BPM and musical key on the track details page (by @MarvinSchenkel in #2034)
- Fix genre merge cross taxonomy (by @jozefKruszynski in #2031)
- Show a waveform progress bar in the fullscreen player (by @MarvinSchenkel in #2035)
- Enhance button in fullplayer screen + add animated icons (by @stvncode in #2036)
- Show the base protocol for bridged outputs and explain their locked toggle (by @marcelveldt in #2017)
- Genre taxonomy UX: add-genre, panel actions, management table, targeted restore (by @jozefKruszynski in #1974)
- Fix DSP parametric EQ layout on narrow and rotated displays (by @OzGav in #2014)
- Convert player protocol section to a shadcn accordion (by @marcelveldt in #2011)
- Convert config label and alert entries to shadcn (by @marcelveldt in #2009)
- Modernize settings config category sections (by @marcelveldt in #2008)
- Convert the audio quality details popover to shadcn (by @marcelveldt in #2005)
- Show per-option description in config-entry select (by @marcelveldt in #2003)
- Add duration and last_played filters to Smart Playlist (by @dmoo500 in #1998)
- Add link to global queue settings from the queue settings page (by @marcelveldt in #2002)
- Improve fullscreen player controls and lyrics/queue behavior (by @marcelveldt in #1999)
- Adopt dynamic radio playlists (replace radio mode) (by @marcelveldt in #1995)
- Declutter the player queue list item layout (by @MarvinSchenkel in #1988)
- Add smart shuffle indicator to the player (by @marcelveldt in #1987)
- Provide Tracking and UX for AA Failures and Retries (by @chrisuthe in #1907)
- Add missing aria labels (by @stvncode in #1973)
- add bitrate information to the QualityDetailsBtn.vue screen (by @Bonusbartus in #1754)
- Add sleep timer support (by @marcelveldt in #1970)
- Fix drodpdown offset + width (by @stvncode in #1968)
- Add Lucide icon picker with custom MA device icons for player settings (by @dmoo500 in #1779)
- Add a queue mode banner to surface radio and autoplay (by @marcelveldt in #1966)
- Update context menu with shadcn comp and lucide icons (by @stvncode in #1964)
- Streamline fullscreen player header controls (by @marcelveldt in #1965)
- Add Start Radio to the queue item menu and drop redundant move up/down (by @marcelveldt in #1963)
- Drag to reorder up next items in the fullscreen queue (by @marcelveldt in #1961)
- Redesign the fullscreen player queue as a single scrollable list (by @marcelveldt in #1960)
- Migrate timeline slider to reka-ui, fix tap not skipping correctly (by @pierosavi in #1857)
- Possibility to hide/show browse by genre in discover page (by @stvncode in #1957)
- Allow unjoining the sync group leader to hand off playback (by @marcelveldt in #1956)
- Genre media type filtering (by @jozefKruszynski in #1952)
- Rename 'auto play' to 'autoplay' and use the new queue command (by @marcelveldt in #1953)
- Pnpm switch (by @stvncode in #1951)
- Revamp the fullscreen player header controls (by @marcelveldt in #1945)
- Add crossfade control to the player and a per-queue settings page (by @marcelveldt in #1942)
- Move "refresh" button to the toolbar for playlists (by @ijc in #1930)
- Use toast notifications for config flow errors instead of browser alerts (by @marcelveldt in #1929)
- Provider status indicator and clearer error reporting (by @marcelveldt in #1927)
- Use ExplicitIcon for explicit content field in smart playlist rules (by @dmoo500 in #1924)
- Use server-provided genre descriptions (by @marcelveldt in #1923)
- Add explicit_only filter to smart playlist rules (by @dmoo500 in #1865)
- Consume server-resolved translations for server-provided strings (by @marcelveldt in #1911)
- Add field icons to smart playlist rules (by @dmoo500 in #1866)
🐛 Bugfixes
- Keep Listen in compact on phones (by @marcelveldt in #2094)
- fix(i18n): auto-detect Chinese (zh-CN) locale correctly (by @ZoftTy in #1928)
- Keep Quiz guests on the Quiz screen (by @marcelveldt in #2086)
- Clarify Music Quiz replay actions (by @marcelveldt in #2084)
- Fix Hitster reveal flow (by @marcelveldt in #2083)
- Route guests to the active experience (by @marcelveldt in #2072)
- Hide media controls for guest listeners (by @marcelveldt in #2070)
- Keep Music Quiz guest audio receive-only (by @marcelveldt in #2069)
- Fix Music Quiz guest and host experience (by @marcelveldt in #2065)
- Fix Music Quiz setup with no active game (by @marcelveldt in #2064)
- Remove the blank space between the player and the party mode dashboard view (by @GiuliaPassoni in #1937)
- Fix guest join links during frontend development (by @marcelveldt in #2059)
- Fix Music Quiz stray error on no active game (by @marcelveldt in #2053)
- Fix Music Quiz styling and menu icon (by @marcelveldt in #2051)
- Fix Music Quiz guest recovery, lyrics state, and setup edge cases (by @marcelveldt in #2049)
- Fix Music Quiz screens showing raw text keys (by @marcelveldt in #2047)
- Fix music quiz listen-in audio on iOS and unify it with party (by @marcelveldt in #2046)
- Fix guest listen-in audio on iOS and refine the listen-in UI (by @marcelveldt in #2045)
- Show the Music Quiz item in the menu and surface newly added menu items (by @marcelveldt in #2043)
- Exit selection mode when the browse path changes (by @OzGav in #2030)
- Fix long-press context menus on touch devices (by @MarvinSchenkel in #2004)
- Fix audio pipeline line spacing (by @OzGav in #2028)
- Refresh library views as each media type finishes syncing (by @marcelveldt in #2016)
- Add subtle grey ring to unselected editorial card checkbox (by @OzGav in #2012)
- Sanitize rendered markdown to prevent stored XSS (by @MarvinSchenkel in #2007)
- Restore the clear queue option in the player menu (by @marcelveldt in #2006)
- Fix stale and flickering queue list in the fullscreen player (by @marcelveldt in #2001)
- Fix main listing search stealing focus from other inputs (by @OzGav in #1991)
- Center the play button in the fullscreen player controls (by @MarvinSchenkel in #1993)
- Fix buffered icon spacing in the player queue list (by @MarvinSchenkel in #1992)
- Fix browse sort/view settings not persisting per folder (by @OzGav in #1990)
- Restore the player settings entry in the player menu (by @marcelveldt in #1969)
- Fix rectangle art album not well displayed in the now playing bottom (#66) (by @joperafe in #1940)
- Fix favorite heart state resetting on queue updates for radio and provider items (by @dmoo500 in #1725)
- Localize frontend-injected config entry categories (by @marcelveldt in #1938)
- Stop play button animation with external source (by @OzGav in #1935)
- Reconnect the built-in player after a dropped connection (by @marcelveldt in #1910)
- Fix settings breadcrumb for disabled provider instances (by @OzGav in #1909)
🧰 Maintenance and dependency bumps
41 changes
- Rename Music Quiz game to Music Timeline (by @marcelveldt in #2088)
- Always show the diagnostics download button (by @marcelveldt in #2056)
- Extract search input component (by @GiuliaPassoni in #1959)
- Chore(deps): Bump swiper from 12.2.0 to 14.0.1 (by @dependabot[bot] in #2019)
- Chore(deps-dev): Bump vite from 8.1.0 to 8.1.3 (by @dependabot[bot] in #2025)
- Chore(deps-dev): Bump eslint from 10.5.0 to 10.6.0 (by @dependabot[bot] in #2022)
- Chore(deps-dev): Bump @types/node from 26.0.1 to 26.1.0 (by @dependabot[bot] in #2023)
- Chore(deps): Bump tailwindcss from 4.3.1 to 4.3.2 (by @dependabot[bot] in #2024)
- Chore(deps): Bump @lucide/vue from 1.21.0 to 1.23.0 (by @dependabot[bot] in #2020)
- Chore(deps): Bump @tailwindcss/vite from 4.3.1 to 4.3.2 (by @dependabot[bot] in #2026)
- Chore(deps-dev): Bump typescript-eslint from 8.61.1 to 8.62.1 (by @dependabot[bot] in #2027)
- Remove the smart playlist 'do not repeat' control (by @marcelveldt in #1996)
- Chore(deps-dev): Bump unplugin from 3.0.0 to 3.3.0 (by @dependabot[bot] in #1979)
- Chore(deps): Bump @intlify/unplugin-vue-i18n from 11.1.2 to 11.2.4 (by @dependabot[bot] in #1980)
- Chore(deps): Bump pnpm/action-setup from 4 to 6 (by @dependabot[bot] in #1976)
- Chore(deps): Bump release-drafter/release-drafter from 7.4.0 to 7.5.1 (by @dependabot[bot] in #1975)
- Chore(deps): Bump @tanstack/vue-virtual from 3.13.29 to 3.13.30 (by @dependabot[bot] in #1977)
- Chore(deps-dev): Bump nanoid from 5.1.11 to 5.1.16 (by @dependabot[bot] in #1983)
- Chore(deps): Bump reka-ui from 2.10.0 to 2.10.1 (by @dependabot[bot] in #1984)
- Chore(deps-dev): Bump @types/node from 25.9.3 to 26.0.1 (by @dependabot[bot] in #1986)
- Upgrade eslint + add oxlint (by @stvncode in #1958)
- build: upgrade to vite v8 (rolldown) (by @kissu in #1853)
- Extract the fullscreen queue item context menu into a helper (by @marcelveldt in #1962)
- Chore(deps-dev): Bump @vitest/ui from 3.2.4 to 4.1.8 (by @dependabot[bot] in #1921)
- Chore(deps-dev): Bump vue-tsc from 3.3.3 to 3.3.5 (by @dependabot[bot] in #1916)
- Chore(deps-dev): Bump @types/node from 25.9.2 to 25.9.3 (by @dependabot[bot] in #1913)
- Chore(deps): Bump happy-dom from 20.10.2 to 20.10.3 (by @dependabot[bot] in #1917)
- Chore(deps-dev): Bump sass from 1.100.0 to 1.101.0 (by @dependabot[bot] in #1919)
- Chore(deps): Bump @tailwindcss/vite from 4.3.0 to 4.3.1 (by @dependabot[bot] in #1920)
- Chore(deps): Bump reka-ui from 2.9.9 to 2.9.10 (by @dependabot[bot] in #1922)
- Chore(deps): Bump undici from 7.25.0 to 7.28.0 (by @dependabot[bot] in #1939)
- Chore(deps): Bump form-data from 4.0.5 to 4.0.6 (by @dependabot[bot] in #1943)
- Chore(deps): Bump release-drafter/release-drafter from 7.3.1 to 7.4.0 (by @dependabot[bot] in #1946)
- Chore(deps): Bump actions/checkout from 6 to 7 (by @dependabot[bot] in #1947)
- Chore(deps): Bump js-yaml from 4.1.1 to 4.2.0 (by @dependabot[bot] in #1948)
- Chore(deps): Bump @babel/core from 7.25.7 to 7.29.7 (by @dependabot[bot] in #1949)
- fix(i18n): replace edit by save (by @kissu in #1856)
- Remove leftover and dead translation keys from the frontend (by @marcelveldt in #1933)
- Drop server-stripped translation fields from frontend types (by @marcelveldt in #1931)
- Use server-resolved background-task names (drop client-side translation) (by @marcelveldt in #1925)
- Remove server-resolved strings from the locale files (by @marcelveldt in #1912)
🙇 Contributors
@Bonusbartus, @GiuliaPassoni, @MarvinSchenkel, @OzGav, @TimoPtr, @ZoftTy, @chrisuthe, @dmoo500, @ijc, @jlpouffier, @joperafe, @jozefKruszynski, @kissu, @marcelveldt, @pierosavi and @stvncode