diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 0d1bebe1..64e0684f 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "1.6.0" + ".": "1.7.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index e7519199..de4f9694 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,149 @@ # Changelog +## [1.7.0](https://github.com/InstaZDLL/WaveFlow/compare/v1.6.0...v1.7.0) (2026-07-26) + + +### Features + +* **artist:** collapsible bio block on the artist page ([#422](https://github.com/InstaZDLL/WaveFlow/issues/422)) ([c2e025b](https://github.com/InstaZDLL/WaveFlow/commit/c2e025bbccfb2ae38938d5cbee0d0b7afea05541)) +* **artist:** collapsible bio block on the artist page ([#422](https://github.com/InstaZDLL/WaveFlow/issues/422)) ([b191db5](https://github.com/InstaZDLL/WaveFlow/commit/b191db5da007262535120f5d52af649fa4d96e48)) +* **artist:** split a comma-joined phantom artist in place ([#396](https://github.com/InstaZDLL/WaveFlow/issues/396)) ([bbb4e51](https://github.com/InstaZDLL/WaveFlow/commit/bbb4e512f98a9f8b181d861b5b479c7c1dbb08c1)) +* **artist:** split a comma-joined phantom artist in place ([#396](https://github.com/InstaZDLL/WaveFlow/issues/396)) ([e7e1426](https://github.com/InstaZDLL/WaveFlow/commit/e7e14264a1d8902544765823c602c2914d8da444)) +* **artwork:** let a user set an album's motion cover manually ([#418](https://github.com/InstaZDLL/WaveFlow/issues/418)) ([95b3880](https://github.com/InstaZDLL/WaveFlow/commit/95b3880b59597338e822f6cebbcd159b79c522cf)) +* **library:** allow a custom picture per genre ([38e4e35](https://github.com/InstaZDLL/WaveFlow/commit/38e4e352ef3dda7b003d478bed46f16a18cded9c)), closes [#424](https://github.com/InstaZDLL/WaveFlow/issues/424) +* **lyrics:** add prefer-lrclib toggle over embedded lyrics ([49a1582](https://github.com/InstaZDLL/WaveFlow/commit/49a1582e8cf2657c98da4f90ac86a29a3e4ee776)) +* **lyrics:** add prefer-LRCLIB toggle over embedded lyrics ([f17d735](https://github.com/InstaZDLL/WaveFlow/commit/f17d735b65f5a8fe7712465e65ff6be6c50b48ec)) +* **lyrics:** preserve SYNCEDLYRICS when saving synced lyrics ([c3f4604](https://github.com/InstaZDLL/WaveFlow/commit/c3f460461c2e94b33f259e4354df3821c5b3bf3c)) +* **lyrics:** preserve SYNCEDLYRICS when saving synced lyrics ([0236b4d](https://github.com/InstaZDLL/WaveFlow/commit/0236b4dcc898ea1233ee2e1b654ccba80cd23e3e)) +* **lyrics:** read the SYNCEDLYRICS tag as the primary embedded source ([5f1937a](https://github.com/InstaZDLL/WaveFlow/commit/5f1937af2991f1f14ea26adffb10cd85269ccc34)) +* **lyrics:** read the SYNCEDLYRICS tag as the primary embedded source ([2565752](https://github.com/InstaZDLL/WaveFlow/commit/2565752eb794096024386e2684a5088f0bdcd421)) +* **maintenance:** safety-backup every profile before reset_app wipes ([ee12413](https://github.com/InstaZDLL/WaveFlow/commit/ee12413b55f61e7ecef1d7d118ade1b6d3ba7470)) +* **maintenance:** safety-backup every profile before reset_app wipes ([f10bdc5](https://github.com/InstaZDLL/WaveFlow/commit/f10bdc562d5a317a890d536e32d558169753c713)), closes [#367](https://github.com/InstaZDLL/WaveFlow/issues/367) +* **motion-artwork:** metadata plugin world + animated album covers ([597c0df](https://github.com/InstaZDLL/WaveFlow/commit/597c0df070b6cc39b62ddbb1d9450211c1592efa)) +* **motion-artwork:** render animated album covers in now-playing surfaces ([bfc01a3](https://github.com/InstaZDLL/WaveFlow/commit/bfc01a3fc9d006f0f7f880ef9770c92586744483)) +* **player:** track context menu on the immersive view + queue panel ([0b82534](https://github.com/InstaZDLL/WaveFlow/commit/0b825345273fd8bfbf184d7e82a22265e29df979)) +* **player:** track context menu on the immersive view + queue panel ([13d0c51](https://github.com/InstaZDLL/WaveFlow/commit/13d0c51f8ed3a954963d7a2befa4233a9c3b112f)) +* **plugin-metadata:** wire the metadata world + motion artwork backend ([f9808cf](https://github.com/InstaZDLL/WaveFlow/commit/f9808cf1c872ebd4d9aafeedb373579a76e5736c)) +* **plugin-store:** install plugins from the curated registry ([0c57ce9](https://github.com/InstaZDLL/WaveFlow/commit/0c57ce9233dab0cee02f30d1ea6747bc2d26a5f6)) +* **plugin-store:** install plugins from the curated registry ([1920136](https://github.com/InstaZDLL/WaveFlow/commit/19201367e90d046abbeb6062a5ca8e843f0c7653)) +* **plugins:** generic manifest-declared plugin options (waveflow:host/config) ([7805d42](https://github.com/InstaZDLL/WaveFlow/commit/7805d429d852282b0c1d67cf49ad4491d0f403e5)) +* **plugins:** generic manifest-declared plugin options (waveflow:host/config) ([3b05c03](https://github.com/InstaZDLL/WaveFlow/commit/3b05c03ec309681ebb0f7018b9f3e9dd46d201a3)) +* **plugins:** opt-in local cache for animated album artwork ([aea5baf](https://github.com/InstaZDLL/WaveFlow/commit/aea5bafe46bdb030fa2f37fc665d984f2fdf5d4c)) +* **plugins:** opt-in local cache for animated album artwork ([2ba72ad](https://github.com/InstaZDLL/WaveFlow/commit/2ba72ad42b56b9aa8ada48888c5e83a50806fb4f)) +* **scan:** add a per-folder deep rescan action ([#419](https://github.com/InstaZDLL/WaveFlow/issues/419)) ([5de21d6](https://github.com/InstaZDLL/WaveFlow/commit/5de21d63b4aaa68517cb2b922c0f3d2f7331cb17)) +* **scan:** show the current directory in the scan progress toast ([#430](https://github.com/InstaZDLL/WaveFlow/issues/430)) ([20aca84](https://github.com/InstaZDLL/WaveFlow/commit/20aca84f05c9d3e3afb052942dd48abbe6e7e09b)) +* **scan:** show the current directory in the scan progress toast ([#430](https://github.com/InstaZDLL/WaveFlow/issues/430)) ([7512077](https://github.com/InstaZDLL/WaveFlow/commit/7512077e85ede4406947bfedc33ee0b55350435b)) +* **ui:** add "Reset window position" action in Settings → Appearance ([e37f546](https://github.com/InstaZDLL/WaveFlow/commit/e37f546cf70d4495c9a8cc1eb701609d4a12adac)) + + +### Bug Fixes + +* 3 quick beta feedback fixes ([#350](https://github.com/InstaZDLL/WaveFlow/issues/350), [#343](https://github.com/InstaZDLL/WaveFlow/issues/343), [#341](https://github.com/InstaZDLL/WaveFlow/issues/341)) ([a44b7f3](https://github.com/InstaZDLL/WaveFlow/commit/a44b7f3565c786943ed1b1938b990cdc957d9401)) +* **app:** drive splash handoff from one reveal task, not a shared flag ([52b87dd](https://github.com/InstaZDLL/WaveFlow/commit/52b87dd7045d66f40141647d5c23413310efac3e)), closes [#363](https://github.com/InstaZDLL/WaveFlow/issues/363) +* **artist:** guard bio-collapse against profile switch + stale reads ([#422](https://github.com/InstaZDLL/WaveFlow/issues/422) review) ([e9d0416](https://github.com/InstaZDLL/WaveFlow/commit/e9d04164b451e73a8ed3d52a2bf8a4918b93b032)) +* **artist:** preserve phantom credit role on split; guard close mid-split ([b8ed860](https://github.com/InstaZDLL/WaveFlow/commit/b8ed860f73edf110353be417460b7e3374d99bde)) +* **artist:** roll back the bio-collapse toggle to real DB truth, not the reset default ([98b2bef](https://github.com/InstaZDLL/WaveFlow/commit/98b2bef00636dbf7d47def7dbe79d146632153f9)) +* **artist:** scope bio-collapse writes + reset on profile switch ([#422](https://github.com/InstaZDLL/WaveFlow/issues/422) review) ([2569c1d](https://github.com/InstaZDLL/WaveFlow/commit/2569c1d514079be57eb05ffc76c3109af45bbee5)) +* **artist:** skip bio-collapse write bookkeeping after a mid-flight profile switch ([7a7588a](https://github.com/InstaZDLL/WaveFlow/commit/7a7588a14908fda91d579cd13b19f1a7b9732a4d)) +* **artwork:** record cover provenance on the album, not the artwork row ([#404](https://github.com/InstaZDLL/WaveFlow/issues/404)) ([9dbf89e](https://github.com/InstaZDLL/WaveFlow/commit/9dbf89eb5e41ec64b271d4bd57e1e9d94218c33d)) +* **audio:** advance playback position in WASAPI Exclusive mode ([#407](https://github.com/InstaZDLL/WaveFlow/issues/407)) ([7e85fa8](https://github.com/InstaZDLL/WaveFlow/commit/7e85fa8748ad7fa525bacafd43f59e45f16726bf)) +* **audio:** gate the post-device-error rebuild to a single owner ([c120f42](https://github.com/InstaZDLL/WaveFlow/commit/c120f427346e0dd3e56586323c1b352f5f1e0b73)) +* **audio:** gate the post-device-error rebuild to a single owner ([4762185](https://github.com/InstaZDLL/WaveFlow/commit/4762185e2ecb5fc0974136530b0b9445d5d4afe8)) +* **audio:** negotiate WASAPI exclusive against the endpoint format ([#410](https://github.com/InstaZDLL/WaveFlow/issues/410)) ([0a09b1b](https://github.com/InstaZDLL/WaveFlow/commit/0a09b1ba7238de1984ed089d68e8d7b8cb4ec93a)) +* **audio:** probe exclusive formats with the driver-quirk fallbacks ([#411](https://github.com/InstaZDLL/WaveFlow/issues/411)) ([5bd7796](https://github.com/InstaZDLL/WaveFlow/commit/5bd779623fda6a7a44df9c30e1a3ae4f63af8a2a)) +* **audio:** publish output-lost from set_output_device's send failure too ([a72518d](https://github.com/InstaZDLL/WaveFlow/commit/a72518d526aed370b010e5200898448883f5dc23)), closes [#405](https://github.com/InstaZDLL/WaveFlow/issues/405) +* **audio:** recover from WASAPI exclusive device-reset flap storm ([#322](https://github.com/InstaZDLL/WaveFlow/issues/322)) ([fee64bd](https://github.com/InstaZDLL/WaveFlow/commit/fee64bdab586094f6d849b2629f4aa04764bdca0)) +* **audio:** recover from WASAPI exclusive device-reset flap storm ([#322](https://github.com/InstaZDLL/WaveFlow/issues/322)) ([8eb00ed](https://github.com/InstaZDLL/WaveFlow/commit/8eb00ed6c5428b6c93db0976654d61a26ebea818)) +* **audio:** release the exclusive stream before re-opening the same device ([27a5dd4](https://github.com/InstaZDLL/WaveFlow/commit/27a5dd4e471f341fe81b3b65d440970549105def)) +* **audio:** release the exclusive stream before re-opening the same device ([fbae307](https://github.com/InstaZDLL/WaveFlow/commit/fbae3071c183b81c0fc2d3ab46a4b3c98f899504)), closes [#405](https://github.com/InstaZDLL/WaveFlow/issues/405) +* **audio:** reopen the rebuild gate when the exclusive toggle installs no stream ([b066cbd](https://github.com/InstaZDLL/WaveFlow/commit/b066cbd4980296e55bc61f3f3f7a3117d37ffab5)) +* **audio:** reopen the user's device after a failed exclusive toggle ([5b53cc7](https://github.com/InstaZDLL/WaveFlow/commit/5b53cc7809bdb8510a798e487f84fe2328520a09)), closes [#405](https://github.com/InstaZDLL/WaveFlow/issues/405) +* **audio:** resolve the engine after the rebuild backoff, not in the callback ([9e828e6](https://github.com/InstaZDLL/WaveFlow/commit/9e828e68ad2c4836f6fd129ca9d6d5aa410c9f08)) +* **audio:** resync the WASAPI exclusive toggle after an automatic rebuild ([ca7f9d3](https://github.com/InstaZDLL/WaveFlow/commit/ca7f9d3c80095949572a0289009d0f8aeafab526)) +* **audio:** roll back the exclusive pref when the pre-release Stop send fails ([37dd487](https://github.com/InstaZDLL/WaveFlow/commit/37dd48770429f3369830b61dde5a7599cba56d83)), closes [#405](https://github.com/InstaZDLL/WaveFlow/issues/405) +* **audio:** roll back the exclusive pref when the shared fallback also fails ([b96067d](https://github.com/InstaZDLL/WaveFlow/commit/b96067d47d222bda02a300bb7ce5fccb0c0d4cb1)), closes [#405](https://github.com/InstaZDLL/WaveFlow/issues/405) +* **audio:** run the device rebuild on the blocking pool ([4680af8](https://github.com/InstaZDLL/WaveFlow/commit/4680af8c9d023e003cf16c386e82131ae21930e5)) +* **audio:** stop the new output thread when the exclusive hand-off fails ([de43498](https://github.com/InstaZDLL/WaveFlow/commit/de43498c3583b0edae5aee3e4287dd71b8da6907)) +* **deps:** pin tao to the upstream Wayland CSD fix commit ([1078629](https://github.com/InstaZDLL/WaveFlow/commit/10786290a67cc134b8e2d48a9656bb6b439fab12)), closes [#427](https://github.com/InstaZDLL/WaveFlow/issues/427) +* **dlna:** rebuild the worker's resources on a profile switch ([#413](https://github.com/InstaZDLL/WaveFlow/issues/413)) ([3111d48](https://github.com/InstaZDLL/WaveFlow/commit/3111d480949e0d73bee45b63660ffbdff5a56cce)) +* **integrations:** synthesize bio_short for manually-edited artist bio ([a68c391](https://github.com/InstaZDLL/WaveFlow/commit/a68c391dddf427662aea7b4674e636da52eef814)), closes [#343](https://github.com/InstaZDLL/WaveFlow/issues/343) +* **library:** address review findings on genre custom picture PR ([2654d73](https://github.com/InstaZDLL/WaveFlow/commit/2654d732dfc8d98b5016f56c053004b332345de0)) +* **library:** resolve local artist picture for curated similar artists ([ddfa886](https://github.com/InstaZDLL/WaveFlow/commit/ddfa88602e36ac398b30a4bd4016611f5b832ca1)), closes [#350](https://github.com/InstaZDLL/WaveFlow/issues/350) +* **locales:** apply native-speaker i18n review pass across 13 locales ([475538b](https://github.com/InstaZDLL/WaveFlow/commit/475538b98f14a5a9c75f069e2f27e5ca308d64aa)) +* **locales:** native-speaker i18n review pass across 13 locales ([d377200](https://github.com/InstaZDLL/WaveFlow/commit/d377200aeeb66032d9b31c645f5720e3704c6785)) +* **lyrics:** address review — propagate prefer-lrclib read error, harden toggle ([f483d3d](https://github.com/InstaZDLL/WaveFlow/commit/f483d3dab21f3f374d5c37657953a869c184f47a)) +* **lyrics:** ignore blank standard tags + test the resolution chain ([aa1383d](https://github.com/InstaZDLL/WaveFlow/commit/aa1383d9527fcc2a04e615a18f2c5c0c148c5b24)) +* **lyrics:** let static lyrics scroll clear of the bottom in the immersive view ([8baea16](https://github.com/InstaZDLL/WaveFlow/commit/8baea16e1e3cc32b554202cf90c106e1d2680fa6)) +* **lyrics:** let static lyrics scroll clear of the bottom in the immersive view ([687e2e3](https://github.com/InstaZDLL/WaveFlow/commit/687e2e315f7e21c20d8dcd3af094c769e7fd1954)) +* **lyrics:** report Miss vs Unavailable from the search itself ([6dcb3c9](https://github.com/InstaZDLL/WaveFlow/commit/6dcb3c9e3e875b6ce99de949cc19a6d0dfcf518b)) +* **lyrics:** stop caching a provider outage as a permanent miss ([8f70bfa](https://github.com/InstaZDLL/WaveFlow/commit/8f70bfad068bc8ed05ee9728697cc164ea3057a8)) +* **lyrics:** stop caching a provider outage as a permanent miss ([55c9226](https://github.com/InstaZDLL/WaveFlow/commit/55c9226f64e7673e56fc833d849438c409cda67c)) +* **lyrics:** validate each standard lyric key before the or_else ([0755b65](https://github.com/InstaZDLL/WaveFlow/commit/0755b654cf05113ceac45f1eef559a0194dc0572)) +* **maintenance:** atomic + consistent pre-reset safety backups ([1d2787d](https://github.com/InstaZDLL/WaveFlow/commit/1d2787d6d019ca82d53467bee3bd5666788d6925)) +* **maintenance:** snapshot pre-reset backups with VACUUM INTO ([5b73933](https://github.com/InstaZDLL/WaveFlow/commit/5b739335ab83218564041a59b86b65c3f739a122)) +* **metadata:** drop NFD combining marks in artist-name normalization ([dc95c8c](https://github.com/InstaZDLL/WaveFlow/commit/dc95c8c1612695f52b64d4b729acb8c56ad36508)) +* **metadata:** match TheAudioDB artists past exact-name equality ([f8fcf40](https://github.com/InstaZDLL/WaveFlow/commit/f8fcf409026431bcee9532aaa20a382ea7025133)) +* **metadata:** match TheAudioDB artists past exact-name equality ([9078a9a](https://github.com/InstaZDLL/WaveFlow/commit/9078a9aaac17a800d00a92620ad755a96b48f0f3)), closes [#342](https://github.com/InstaZDLL/WaveFlow/issues/342) +* **metadata:** restrict artist prefix-match to canonical connectors ([3e17b3c](https://github.com/InstaZDLL/WaveFlow/commit/3e17b3c0828941318569ba9c86765b9c81d1da32)) +* **metadata:** reuse fuzzy name match for Deezer artist enrichment ([6124c6e](https://github.com/InstaZDLL/WaveFlow/commit/6124c6ee3c294b04b56a38c432d64cd16cf5f39c)) +* **metadata:** reuse fuzzy name match for Deezer artist enrichment ([cdc8d6a](https://github.com/InstaZDLL/WaveFlow/commit/cdc8d6ac82d3d045f166ca26787c7b1d95d952e9)), closes [#382](https://github.com/InstaZDLL/WaveFlow/issues/382) +* **motion-artwork:** fan out plugin lookups in parallel with a timeout ([06f43a6](https://github.com/InstaZDLL/WaveFlow/commit/06f43a6bbbc61d6c912341095c85254cd8c9a204)) +* **motion-artwork:** hold plugin guard across the blocking lookup ([b89447b](https://github.com/InstaZDLL/WaveFlow/commit/b89447b6343f40218a4db1c0a2581976d851b1e3)) +* **motion-artwork:** reset overlay on track change, align WIT to mp4 ([f028b1b](https://github.com/InstaZDLL/WaveFlow/commit/f028b1b14840dc36a03aad004559f8c2d85f6fcc)) +* **player:** harden track menu on immersive/queue surfaces ([#435](https://github.com/InstaZDLL/WaveFlow/issues/435) review) ([91bea6a](https://github.com/InstaZDLL/WaveFlow/commit/91bea6ae2c2988d010f67909fbb74e65025918e9)) +* **player:** reset the context-menu liked set on a profile switch ([34007ce](https://github.com/InstaZDLL/WaveFlow/commit/34007cef4bfa692223fa3c9cc7dced6ace8f4fed)) +* **plugin-store:** bound zip/download sizes, show storageRead permission ([3be750e](https://github.com/InstaZDLL/WaveFlow/commit/3be750ee718c18982c759b8a9cce10a2025c54cd)) +* **plugins:** address review round 2 — mapped-IPv6 SSRF, tall-url guard, toggle race ([e8ce449](https://github.com/InstaZDLL/WaveFlow/commit/e8ce449e4e540fa2446445bd09e962ab727b879f)) +* **plugins:** address review round 3 — IPv4-compatible IPv6 + toggle/clear mutual exclusion ([71c65b6](https://github.com/InstaZDLL/WaveFlow/commit/71c65b6e721b7c4f51ef4a7f7ae8f293020be62e)) +* **plugins:** resolve app version from Tauri runtime, not compile-time macro ([ee5d843](https://github.com/InstaZDLL/WaveFlow/commit/ee5d84365ddbb3689a9eccd8e8d4e1d40d15f6ba)) +* **plugins:** resolve app version from Tauri runtime, not compile-time macro ([1d8d984](https://github.com/InstaZDLL/WaveFlow/commit/1d8d984e963f61dd1b109cf5818b9da54d6e9a91)) +* **profile:** lease the profile pool so a switch cannot close it mid-command ([166e105](https://github.com/InstaZDLL/WaveFlow/commit/166e1055cc2a93472d7e7e360975189740c64a23)) +* **profile:** lease the profile pool so a switch cannot close it mid-command ([1f0be80](https://github.com/InstaZDLL/WaveFlow/commit/1f0be80a16dee7a6b549dd96a9579aa4b2126908)), closes [#332](https://github.com/InstaZDLL/WaveFlow/issues/332) +* **profile:** qualify the lease guarantee and pin the deezer batch to one pool ([f71b7ca](https://github.com/InstaZDLL/WaveFlow/commit/f71b7caf8b2ffdeb2786a264fd1bc2bb0e4b2d56)) +* **radio:** scope preferred-country to profile + serialize window-bounds writes ([741be86](https://github.com/InstaZDLL/WaveFlow/commit/741be86b16c983a5e2c129b602fa3182a24df4a9)) +* **radio:** validate preferred-country against supported list + generation guard in useMainWindowBounds ([3624186](https://github.com/InstaZDLL/WaveFlow/commit/3624186a1864d8164e4fa8792b6299954125cbc6)) +* **scan:** make the cover write a compare-and-swap ([57a732a](https://github.com/InstaZDLL/WaveFlow/commit/57a732a95c823d228819517933f569283012a9f6)) +* **scan:** pick up sidecar cover art replaced between scans ([1246a03](https://github.com/InstaZDLL/WaveFlow/commit/1246a0329f1cf3840c03af90a073e54a6809fbaa)) +* **scan:** pick up sidecar cover art replaced between scans ([43d94c9](https://github.com/InstaZDLL/WaveFlow/commit/43d94c9f9f1a5633917fdc81e3ac7397b7ef2277)) +* **scan:** re-check the cover allowlist at write time ([ad89fd0](https://github.com/InstaZDLL/WaveFlow/commit/ad89fd04e2d07d331049d02288452827bdf4fe3d)) +* **scan:** restrict cover refresh to sidecar art and batch its work ([c35e5d2](https://github.com/InstaZDLL/WaveFlow/commit/c35e5d295cbc68d68eececebec27b11f5ff1965a)) +* **scan:** resurface a byte-identical re-added track on rescan ([0823ce2](https://github.com/InstaZDLL/WaveFlow/commit/0823ce24163723028f65d17b006a121598dfc946)), closes [#366](https://github.com/InstaZDLL/WaveFlow/issues/366) +* **scan:** tick progress on failed extractions too ([#430](https://github.com/InstaZDLL/WaveFlow/issues/430)) ([1c38390](https://github.com/InstaZDLL/WaveFlow/commit/1c383903a009e89fef706854ef8aa70aaaef0ea0)) +* **similar:** also reject a cached Deezer placeholder in the None fallback ([e977bc7](https://github.com/InstaZDLL/WaveFlow/commit/e977bc786d91bc1df0fa855fb1d520fe2e93c5b1)) +* **similar:** drop Deezer's empty-hash placeholder pictures ([#406](https://github.com/InstaZDLL/WaveFlow/issues/406)) ([09b36aa](https://github.com/InstaZDLL/WaveFlow/commit/09b36aa54afc50f86cde20a14d509b3a062de944)) +* **similar:** drop Deezer's empty-hash placeholder pictures ([#406](https://github.com/InstaZDLL/WaveFlow/issues/406)) ([544866b](https://github.com/InstaZDLL/WaveFlow/commit/544866b106c207089824e46755dffa867ff84cac)) +* **similar:** drop Last.fm's grey star when a similar artist is unenriched ([41c484d](https://github.com/InstaZDLL/WaveFlow/commit/41c484de7d15c5e1828437dc38393ed745c79e82)) +* **similar:** filter placeholder cache for library artists in the picture path ([b1b50a8](https://github.com/InstaZDLL/WaveFlow/commit/b1b50a87db0dc06e31059a2583e7caefbcc08c11)) +* **similar:** filter pre-[#406](https://github.com/InstaZDLL/WaveFlow/issues/406) placeholder pictures already in the cache ([bbd51a9](https://github.com/InstaZDLL/WaveFlow/commit/bbd51a98122911b5dfd42fb6c92e9c52776b7d97)) +* **similar:** keep an absent Deezer picture authoritative over Last.fm's star ([c185cc5](https://github.com/InstaZDLL/WaveFlow/commit/c185cc5068c9018ce4d500a303c2c63f42bf4a19)) +* **similar:** retry failed similar-artist fetches instead of caching them empty ([#412](https://github.com/InstaZDLL/WaveFlow/issues/412)) ([c6a7694](https://github.com/InstaZDLL/WaveFlow/commit/c6a76942344999d4ff6047615e2a5e9806443556)) +* **stats:** keep listening history when its tracks are deleted ([d8da91d](https://github.com/InstaZDLL/WaveFlow/commit/d8da91de03eff32e0b34d38c7d408f31da381d27)) +* **stats:** keep listening history when its tracks are deleted ([e0c9002](https://github.com/InstaZDLL/WaveFlow/commit/e0c900207f7da20f15a3eee8e3d518929127d418)), closes [#367](https://github.com/InstaZDLL/WaveFlow/issues/367) +* **ui:** adjust layout in LyricsEditorModal to prevent button overflow ([28339a5](https://github.com/InstaZDLL/WaveFlow/commit/28339a5b49e518f986727ccc6660678c8eb7f1ad)) +* **ui:** catch setMainWindowBounds rejection inside writeChain to prevent unhandled rejection ([ea6c553](https://github.com/InstaZDLL/WaveFlow/commit/ea6c5534a4511cb5bfbae4adefd524592362bd27)) +* **ui:** guard window-position reset against pending saves + surface errors ([458e741](https://github.com/InstaZDLL/WaveFlow/commit/458e74120ffa65d3e7ab51c572aeb9e4f5fdd077)) +* **ui:** log window-bounds restore + read failures instead of swallowing ([ca1b1e5](https://github.com/InstaZDLL/WaveFlow/commit/ca1b1e528b071e251c13f2d26853d2049ed80695)) +* **ui:** only persist main window bounds in the normal state ([4833936](https://github.com/InstaZDLL/WaveFlow/commit/48339366055e20c22ea63cd5616ef2f68b662107)) +* **ui:** persist main-window bounds + fix web-radio local-stations country ([6d89b9b](https://github.com/InstaZDLL/WaveFlow/commit/6d89b9bc487082d561cb30da6c12512eef11854b)) +* **ui:** persist main-window bounds + fix web-radio local-stations country ([dec4569](https://github.com/InstaZDLL/WaveFlow/commit/dec4569bdd3613d294a2bc6c58b1b4b236c987a3)) +* **ui:** persist window bounds only in the normal state, dedupe motion artwork lookups ([185c85d](https://github.com/InstaZDLL/WaveFlow/commit/185c85dabf4a6c8f483718722f8f77f8ce763a35)) +* **ui:** portal context menus and raise the topbar layer ([3e89254](https://github.com/InstaZDLL/WaveFlow/commit/3e8925467756a893691d5020e70162a7fca2cc07)) +* **ui:** portal context menus and raise the TopBar layer ([4ae0dd7](https://github.com/InstaZDLL/WaveFlow/commit/4ae0dd70fe999a1bb492cf3f04e00e0af42b6b8c)) +* **ui:** stop lyrics editor footer buttons from being squeezed off-screen ([7fa5bd6](https://github.com/InstaZDLL/WaveFlow/commit/7fa5bd6958b33081d136b53ce447e460bc7f96fc)), closes [#341](https://github.com/InstaZDLL/WaveFlow/issues/341) +* **ui:** stop main window growing on every launch ([14dc094](https://github.com/InstaZDLL/WaveFlow/commit/14dc094b29de890e3a943258afb24a743eb8e396)), closes [#379](https://github.com/InstaZDLL/WaveFlow/issues/379) +* **ui:** stop the audio-mode listener leaking on an early unmount ([3cf9e74](https://github.com/InstaZDLL/WaveFlow/commit/3cf9e748a2d68a28304c7f90e227c66b9fa6d2df)) +* **ui:** stop the Home banners' glow orbs bleeding past rounded corners on Safari ([37251e8](https://github.com/InstaZDLL/WaveFlow/commit/37251e86e93d7296bdccdf4e0ddb6d9ddf9d0032)) +* **ui:** stop truncated headings from clipping their descenders ([913344e](https://github.com/InstaZDLL/WaveFlow/commit/913344e9553c948c363c95910d261a8b59f28cfe)) +* **ui:** stop truncated headings from clipping their descenders ([8290793](https://github.com/InstaZDLL/WaveFlow/commit/8290793a34cc518b258faaf4446ed08b6cd0f9f3)) +* **ui:** use bounds_are_valid in setter, clamp off-screen position, persist-then-navigate country ([b2c3c16](https://github.com/InstaZDLL/WaveFlow/commit/b2c3c16e8dc0b4d4d3c9617b9b2333113d3aa7ed)) +* **ui:** wrap long bio tokens and infer radio region from timezone ([452009a](https://github.com/InstaZDLL/WaveFlow/commit/452009a048f55a3bdb15b1f53768f37fd372592b)) +* **ui:** wrap long bio tokens and infer radio region from timezone ([dcac8d9](https://github.com/InstaZDLL/WaveFlow/commit/dcac8d935e304d3c2ec131e1b2b9852d12864c78)) + + +### Performance Improvements + +* **plugins:** dedupe concurrent motion artwork lookups ([62fc450](https://github.com/InstaZDLL/WaveFlow/commit/62fc4503a70d9b0f853147bb476d67b2a6945f91)) + ## [1.6.0](https://github.com/InstaZDLL/WaveFlow/compare/v1.5.1...v1.6.0) (2026-06-29) ### Features diff --git a/README.md b/README.md index 3155b01c..48450443 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@
-
+
diff --git a/package.json b/package.json
index ab1c79ce..4c95fcae 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "waveflow",
"private": true,
- "version": "1.6.0",
+ "version": "1.7.0",
"type": "module",
"license": "GPL-3.0",
"scripts": {
diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock
index 822fa7a8..f1e196d2 100644
--- a/src-tauri/Cargo.lock
+++ b/src-tauri/Cargo.lock
@@ -7611,7 +7611,7 @@ dependencies = [
[[package]]
name = "waveflow"
-version = "1.6.0"
+version = "1.7.0"
dependencies = [
"alsa",
"anyhow",
@@ -7683,7 +7683,7 @@ dependencies = [
[[package]]
name = "waveflow-core"
-version = "1.6.0"
+version = "1.7.0"
dependencies = [
"anyhow",
"async-trait",
diff --git a/src-tauri/crates/app/Cargo.toml b/src-tauri/crates/app/Cargo.toml
index 88414543..3f625716 100644
--- a/src-tauri/crates/app/Cargo.toml
+++ b/src-tauri/crates/app/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "waveflow"
-version = "1.6.0"
+version = "1.7.0"
description = "Local music player for desktop — Spotify-inspired UI, real-time audio engine, your files stay on your machine."
authors = ["InstaZDLL