Beta 3.12.4-beta.155, built from master. Same commits as a dev build, packaged.
Changes since v3.12.3
- fix(updates): only warn when the dev build trails master (4b53d72)
- fix(context-menu): filter every popup path and signed-in entries (282ddd1)
- fix(settings-ui): keep the scroll position when an option is written (b8829e7)
- feat(settings-ui): turn off three-dot menu entries from Appearance (ee86a47)
- fix(downloader): ignore a download folder written for another OS (c754878)
- fix(synced-lyrics): keep the first lyrics line reachable under the picker (447ed83)
- fix(synced-lyrics): ignore YTMusic's "no lyrics" messages (277ac0d)
- Merge pull request #65 from michei69/plugin/api-server-v2 (8fd012e)
- refactor(api-server): fold the repeated failure answer into one helper (39703c5)
- refactor(api-server): close the second review's gaps (8dcf605)
- fix(api-server): read search/browse input from the request, not the route (b0eeac9)
- refactor(api-server): share operations between HTTP, MCP and the WebSocket (455b60a)
- fix(tray): remove only the tray's like-changed listener (b090b68)
- fix(in-app-menu): toggle the title bar through the signal setter (147c799)
- fix(synced-lyrics): capture the memo results for the reactivity rule (9948379)
- fix(api-server): keep the MCP adapter clean without the SDK's types (676eb2f)
- style: apply oxfmt to the files it flags (d5a1ec7)
- feat(api-server): serve the API over MCP (04209a6)
- test: share the synced-lyrics test harness (31c26f3)
- refactor(api-server): split the IPC action groups (214f05b)
- refactor: single-source the app metadata and element types (9fcca44)
- refactor(synced-lyrics): share the search and translation setup (fb0c08a)
- refactor(api-server): reuse shared queue helpers in the v2 renderer (80a13ab)
- refactor(api-server): share the token and websocket helpers (ff1b320)
- refactor(api-server): share the route and schema helpers (5e984bd)
- feat(api-server): v2 endpoints, websocket protocol and renderer cleanup (2925baf)
- refactor: share the app metadata probe (355950e)
- feat(synced-lyrics): answer lyrics and translations for any video (78a2b7f)
- fix(song-info): take playback progress from the player API (5b04f55)
- wip(api-server): more stuff (239ef93)
- feat(api-server): list the newest API version first in the docs (9e70683)
- feat(api-server): group the API docs by version and category (7b7bac6)
- chore(api-server): bump api doc version (0a3557a)
- feat(api-server): add QUERY /video/search (c9cb3b5)
- test(api-server): pin the v2 backend-to-renderer argument contract (952e645)
- feat(api-server): serve v2 over the peard-api IPC contract (d43a558)
- refactor(song-info): build song info in one pure module (830a598)
- wip(api-server): initial work on v2 (a903c75)
- refactor(api-server): make v1 a self-contained version module (8779593)
- refactor(api-server): rewrite the plugin backend (1da8636)
- chore(deps): upgrade hono to 4.13.13 (0e0398d)
- feat(settings-ui): add hide dislike and video captions tweaks (8d4f21e)
- fix: build actions not using the correct flatpak versions (8e98dd9)
- chore: bump flatpak freedesktop (a43b1e1)
- Merge remote-tracking branch 'remote' (6e605a7)
- feat(settings-ui): add the Innertube client version and list every flag in debug info (d7fd91b)
- fix(precise-volume): remove the new slider listener on stop (41513df)
- fix(precise-volume): apply saved volume on play if the API appears late (e3d7fdb)
- docs(precise-volume): add docstrings to touched functions (20f38e9)
- fix(precise-volume): restore saved volume before playback starts (72e1041)
- fix(precise-volume): support the new YouTube Music player UI (b58a0bd)
- album-color-theme: fix Home page ignoring the theme, closes pear-devs#4536 (28e4a2c)
- style(always-show-volume-slider): drop unnecessary async on stop (6c03389)
- fix(always-show-volume-slider): detach stylesheet on plugin stop (6fe29d9)
- feat(plugins): add always-show-volume-slider plugin (b09b10f)
- feat(plugins): add dismiss-multidevice-popup plugin (58632eb)
- fix(amuse): send the full 6K Labs query contract so songs are recognized (2d5142b)
- fix(in-app-menu): optimize tooltip positioning and improve scroll performance (2314fc3)
- Deprecated (7e41672)
- fix(titlebar): improve scroll performance in large playlists (a013d6b)
- feat(recycled-list): add virtualized scrolling plugin for long playlists (e93fc52)
- chore(i18n): Translated using Weblate (Dutch) (03024e6)
- chore(i18n): Translated using Weblate (Hungarian) (5531a68)
- chore(i18n): Translated using Weblate (Belarusian (Latin script)) (7e99571)
- chore(i18n): Translated using Weblate (Malay) (8dccf58)
- chore(i18n): Translated using Weblate (Dutch) (fb3923c)
- chore(i18n): Translated using Weblate (Hungarian) (64e1495)
- docs: tighten comments across the codebase (5990819)
- test: drop assertions that could not fail, cover the blind spots (6b0e7bb)
- fix(share-url): read the config off the document's window (82e6c45)
- style(synced-lyrics): format store and NetEase provider (4a127a1)
- fix(downloader): don't pass the DOM event to the menu item's onClick (6db728d)
- refactor(flag-metadata): drop the isRecord helper (e252269)
- refactor(skip-ai-slop): type untrusted config and page data (ea9299c)
- feat(settings-ui): feature flag section (79b4583)
- fix(preload): don't read the config file outside the main process (3a7aa5a)
- chore: update flags.json (57ab1d8)
- chore: add initial feature flags description json (605780f)
- chore(i18n): Translated using Weblate (Belarusian (Latin script)) (122e72a)
- chore(i18n): Translated using Weblate (Malay) (cb9e188)
- Merge remote-tracking branch 'remote' (da64744)
- chore: bump version to v3.12.4 early (1431102)
- feat(updates): update channels with stable/beta auto-updates (#51) (9b0bff3)
- chore(i18n): Translated using Weblate (Dutch) (c910f80)
- docs: add crosspost message (eda107c)
- fix(search-commands): spotlight hotkey should be cmd on mac (e624e63)
- chore(i18n): Translated using Weblate (Dutch) (03e7fd6)
- Merge pull request #64 from Chigusa0w0/master (3e48b51)
- feat(synced-lyrics): prioritize original title script for NetEase provider (fb4170f)
- Merge pull request #54 from michei69/dependabot/npm_and_yarn/electron-42.10.0 (61a6d0a)
- Merge pull request #58 from bwedirhan/pr/skip-ai-slop (bb70f4e)
- Merge remote-tracking branch 'remote' (47c1898)
- chore(i18n): Added translation using Weblate (Kazakh) (66bab97)
- chore: add copyright header (8baba83)
- chore: remove timing logs (c8570e4)
- feat: add skip-ai-slop plugin (afe0b5d)
- chore(i18n): Translated using Weblate (Polish) (a883022)
- chore(deps-dev): bump electron from 42.5.0 to 42.10.0 (39545bb)
- Update changelog for v3.12.3 (34499e8)
Built from commit 4b53d72.