Skip to content

chore(main): release 1.8.0 - #486

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
release-please--branches--main--components--waveflow
Open

chore(main): release 1.8.0#486
github-actions[bot] wants to merge 1 commit into
mainfrom
release-please--branches--main--components--waveflow

Conversation

@github-actions

@github-actions github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

🤖 I have created a release beep boop

1.8.0 (2026-09-09)

Features

  • analysis: measure loudness per itu-r bs.1770-4 (5598a3d)
  • artist: spotify-style hero backdrop on the artist page (#482) (4b3f120)
  • audio: add audio.dsd_dop setting command + hydration (#495) (98207d8)
  • audio: add DSD-over-PCM (DoP) encoder core module (3d03b43)
  • audio: add wasapi exclusive dop output backend (#495) (81c068e)
  • audio: exclusive output on Linux and macOS, and a name that is not WASAPI's (fd61a63)
  • audio: expose dop toggle, pipeline pill and i18n (#495) (7f98bd5)
  • audio: give macos exclusive output for ordinary playback too (c0d6f3f)
  • audio: let linux own the sound card for ordinary playback, not just dsd (28e86e8)
  • audio: native DSD via DoP (DSD over PCM) on WASAPI Exclusive (db340d1)
  • audio: native dsd via dop on linux (raw hw: alsa) (#495) (e20aa16)
  • audio: native dsd via dop on macos (coreaudio hog mode) (#495) (8b80c9c)
  • audio: wire dop into the decoder and per-track output switch (#495) (41b17db)
  • canvas: opt-in local cache for plugin Canvases (#473) (70cd206)
  • canvas: opt-in local cache for plugin Canvases (#473) (8ce04be)
  • canvas: per-track looping Canvas behind the now-playing view (#442) (b5a8909)
  • canvas: per-track looping Canvas behind the now-playing view (#442) (f57d162)
  • canvas: waveflow:canvas/v1 world for per-track canvas plugins (#473) (fcdc1e5)
  • canvas: waveflow:canvas/v1 world for per-track Canvas plugins (#473) (de01b35)
  • context-menu: open the track menu from the keyboard everywhere (fc554b3)
  • context-menu: open the track menu from the keyboard everywhere (0fb44c3), closes #436
  • library: browse both sources from one album list (aa1d476)
  • library: browse both sources from one artist list (d0dc2db)
  • library: browse both sources from one playlist list (c83e67d)
  • library: browse both sources from one track list (ecfc61d)
  • library: deep rescan for the whole library, not just one folder (c4f25ac), closes #457
  • library: grid tab for user playlists (542a0ff), closes #461
  • library: one album view, not a poorer copy for the server's (9bc65b1)
  • library: one artist page, not a poorer copy for the server's (436a645)
  • lyrics: progressive fill on the word being sung (8965f09)
  • lyrics: progressive fill on the word being sung (917b331)
  • maintenance: one-time cleanup of cached album covers for art-having albums (#493) (d9db659)
  • mini-player: volume slider and mute in the cover overlay (850556d)
  • mini-player: volume slider and mute in the cover overlay (45faadb)
  • mpd: serve the MPD protocol so existing clients can drive playback (b250be6)
  • mpd: serve the MPD protocol so existing clients can drive playback (0bae7ad), closes #471
  • now-playing: cover ↔ artist crossfade slideshow (#466) (62b33ed)
  • now-playing: cover ↔ artist crossfade slideshow (#466) (fd90186)
  • player: bring ReplayGain up to the standard (882200b)
  • player: give replaygain a pre-amp, a fallback and clipping prevention (78eb484)
  • player: user-selectable spectrum visualizer colors (#468) (b5ef338)
  • player: user-selectable spectrum visualizer colors (#468) (904b652)
  • playlist: one playlist page, not a poorer copy for the server's (4147e1d)
  • playlist: one playlist page, not a poorer copy for the server's (cb16e6f)
  • plugins: add waveflow:ui/v1 world host surface + redacted library read (#443) (a48cab8)
  • plugins: disclose ui library.read_artists permission in the store (afe2d62)
  • plugins: disclose ui library.read_artists permission in the store (92fada3)
  • plugins: localized manifest descriptions & option labels (a39e1cf), closes #440
  • plugins: publish-safe *_i18n sibling for localized strings (e76b70f), closes #440
  • plugins: render ui-world plugin views + dynamic sidebar (#443 Part 2) (d4c44eb)
  • plugins: render ui-world plugin views + dynamic sidebar (#443 Part 2) (7b8cd27)
  • plugins: support direct download_url in registry entries (c6d4bc7)
  • plugins: support direct download_url in registry entries (cd54eb8)
  • plugins: waveflow:ui/v1 world host surface + redacted library read (#443 Part 1) (5885099)
  • reconciliation: add exact track linking (cc533aa)
  • reconciliation: add exact track linking (d8f6212)
  • reconciliation: add explicit playlist conversion (d96cba2)
  • reconciliation: add explicit playlist conversion (60359d5)
  • reconciliation: copy linked user data explicitly (ec6a190)
  • reconciliation: copy linked user data explicitly (96e8bc8)
  • reconciliation: progress + cancellation and true-schema tests (9baf895)
  • reconciliation: scan progress, cancellation and true-schema tests (63129a7)
  • release: embed AppImage update information and ship a .zsync (8868743), closes #527
  • remote-playback: prefer confirmed local links (5548cea)
  • remote-playback: prefer confirmed local links (97e6d16)
  • remote: 1:1 parity for the remote playlist view (b16deb8)
  • remote: a diagnostics card so the protocol can be watched by a human (f0e78ef)
  • remote: add tracks to a remote playlist via catalogue search (d581ab4)
  • remote: artist photo, hero background and bio by name (9697deb)
  • remote: ask the server to transcode, and never be refused for it (3fa6125)
  • remote: ask the server to transcode, and never be refused for it (7c3e3cd)
  • remote: auto-generate the remote playlist cover from track art (24b343e)
  • remote: bootstrap from a snapshot and walk the journal (faa608d)
  • remote: bounded progress bar for remote tracks (1e1f473)
  • remote: bring remote playlist view to 1:1 with local (d250a08)
  • remote: cache a remote stream from the bytes playback already reads (f2a8b7d)
  • remote: cache a remote stream from the bytes playback already reads (d221b64)
  • remote: cache the server's cover art on disk instead of inlining it (c60cbc7)
  • remote: cache the server's cover art on disk instead of inlining it (ed278e3)
  • remote: capture the server's content fingerprint, unread (74f5063)
  • remote: clickable albums with a remote album view (c305351)
  • remote: clickable remote artist + heal stale artist_id cache (90b4c8d)
  • remote: columned track table on the remote playlist view (2034a83)
  • remote: complete the write surface with scrobbles, queue and shares (9b1157e)
  • remote: correct a server track, and read the feed that reports it (abee3f9)
  • remote: correct a server track's tags without touching a file (68ed8ec)
  • remote: finish native remote-source integration (aa39ee0)
  • remote: foundations for the remote source and sync v2 (e2d6627)
  • remote: import a server track into a scanned folder, linked for free (#562) (76b2750)
  • remote: keep a server track on disk, and play one whose file is gone (#561) (6bd60b6)
  • remote: let the changes a server refused be dismissed (0d19a96)
  • remote: localize the sync_v2 remote surface across all 17 locales (edebaeb)
  • remote: mirror the server catalogue so both sources share one library (35e8702)
  • remote: one entry per release, and one per person (#571) (1d64eb9)
  • remote: paint the server's Canvas behind a remote track (37cdbf9)
  • remote: paint the server's Canvas behind a remote track (06ec59e)
  • remote: play remote playlists as a native queue (53d4191)
  • remote: queue local changes and push them back as replayable calls (e03756e)
  • remote: read the projection back out for the interface (94bf6fa)
  • remote: read the server's change feed, for what the sweep cannot see (cb736eb)
  • remote: remote music source and user-data sync v2 (RFC-005) (3818b3a)
  • remote: remove a track from a remote playlist (544b834)
  • remote: reorder tracks in a remote playlist (5b50b98)
  • remote: scrub remote tracks via HTTP range seeking (3615319)
  • remote: separate the two 409s and express clearing a field (7b62858)
  • remote: server-first lyrics for remote tracks (5b822ed)
  • remote: share one digest cache, and keep discovery apart from verification (7937356)
  • remote: shares as queued mutations on the v2 endpoints (d321248)
  • remote: show the cover art for a remote track (ba9c470)
  • remote: show the remote play queue in the queue panel (ac10c35)
  • remote: sign in through the browser with authorization code + PKCE (7ce6802)
  • remote: similar artists on the remote artist view + ship sync_v2 (2f76759)
  • remote: stream remote tracks via server stream tickets (3fb3aba)
  • remote: surface the remote source in the sidebar (bbf1130)
  • remote: wake up on the journal socket instead of only polling (e5e65cd)
  • remote: wire user gestures to the queue (f9fdd25)
  • scanner: parse replaygain and r128 tags off the file (2e6c69d)
  • scanner: play AIFF, and say why the other formats are absent (012be48)
  • scanner: play AIFF, and say why the other formats are absent (6a5e36b)
  • scan: store the replaygain a file declares on the track row (81f4ec0)
  • settings: expose the replaygain pre-amp, fallback and clipping switch (ec0d1bd)
  • sidebar: one playlist list, not a server section beside it (bcb5b0b)
  • ui: show lyrics in the mini-player (a7af815)

Bug Fixes

  • address the review, and the three tests CI caught (bbf93d2)
  • album: carry the full track row so Properties isn't half empty (c2515fb), closes #458
  • artist: address review on the hero backdrop (58d8348)
  • artist: clear the read stamp on profile change (da06a78)
  • artist: keep an in-flight read from clobbering an optimistic toggle (4ebc933)
  • artist: reset the hero preference when the profile changes (5ad81f2)
  • artist: scope the hero preference's resolved flag to the profile (d9605ff)
  • audio: ask alsa for a period the ring can feed, and a shallow buffer (cc481d8)
  • audio: ask the sound server for the card before giving up on DoP (bff1ffc)
  • audio: compare the analysis version instead of only testing for NULL (5edf248)
  • audio: drop a sub-stride DSD remainder instead of decoding it (cb430a6)
  • audio: fail the load when the output switch leaves us with nothing (0514647)
  • audio: finish short DSD block reads before decoding them (c2a5531)
  • audio: gate dop strictly to windows / wasapi exclusive (#495) (16118d4)
  • audio: keep the DSD seek offset exact (dd70a23)
  • audio: key the DoP speed pin off speed_dirty, not the value (d83d23c)
  • audio: landing at the end of a stream is a position, not a failure (7e58101)
  • audio: left-align 24-bit samples in the 32-bit WASAPI container (7e4c842)
  • audio: left-align 24-bit samples in the 32-bit WASAPI container (2192622)
  • audio: left-align the DoP word in the padded WASAPI container (44fe37d)
  • audio: pass the DoP flag on the remote local-first open (c710a84)
  • audio: pin speed and honour A-B repeat on the DoP path (03d8220)
  • audio: rebuild the DoP output when the channel count changes (8f8e8bf)
  • audio: refuse the DoP open when the old physical format is unreadable (ad611bb)
  • audio: release the old stream before hogging the device on macos (08f3b5f)
  • audio: report a lost CoreAudio device instead of parking on it (84cf6bd)
  • audio: resolve the ALSA card by name and finish short writes (d6d0879)
  • audio: restore the CoreAudio physical format and watch IsAlive (23ee71f)
  • audio: restore the CoreAudio physical format and watch IsAlive (2c6ce07)
  • audio: restore the PCM output before a remote or URL load (184de8f)
  • audio: stamp the DoP marker from one running counter (0e3d4da)
  • audio: stop a dop rate from becoming the next pcm track's preference (c518dd8)
  • audio: stop trusting a peak measured by the superseded analysis (e6ec4d9)
  • audio: try the card before waiting, and name the release reply (ea6e6bd)
  • audio: validate Content-Range start byte on a seek 206 (4b4322e)
  • canvas: atomic mp4 publish + profile-scoped Canvas cache (fe909ff)
  • canvas: harden Canvas cache profile isolation + atomic mp4 publish (d07be8f)
  • canvas: re-validate cache-download redirects (SSRF) + doc canvas world (10f904b)
  • canvas: treat an unsafe cache redirect as a hard security failure (8d87e8c)
  • context-menu: drop a dead tab stop and a mislabelled row (db09a80), closes #436
  • db: explain a downgrade before the event loop, not inside it (a426878)
  • db: explain a downgrade before the event loop, not inside it (dd93ead), closes #529
  • db: explain a downgrade instead of dying on the splash (8e6c739)
  • db: explain the other half of a downgrade instead of panicking (8a46de1)
  • db: stop the pre-flight writing to the database it may refuse (18abf82)
  • deezer: cross-profile-safe cover prune + preserve hash on skipped download (73b4482)
  • deezer: don't let a cover-less cache row block a re-fetch (#493 review) (94badcf)
  • deezer: only disk-cache an album cover when the album lacks local art (#493) (5281d9d)
  • deezer: only disk-cache an album cover when the album lacks local art (#493) (ea14ec5)
  • deezer: read the refusal deezer sends with http 200 (82dd905)
  • deps: force fast-uri >= 3.1.5 and resync the Flatpak sources (e0ee50c)
  • edit: refuse a year no tag can hold instead of clamping it (21d46cd)
  • library: a plain click on a server track plays it (e994838)
  • library: a server album never rendered at all (c4b1dfa)
  • library: convert rows to tracks instead of casting their ids (d75bf69)
  • library: give the grids a real button instead of a role on the card (01b6544)
  • library: keep the missing-last rule out of the sort direction (bfebc7c)
  • library: keep the source filter reachable when it empties the list (ac5c95f)
  • library: make every reader of the snapshot wait for it, not just the render (a329b1b)
  • library: one shared lock for every rescan control (bca21df), closes #457
  • library: reach the playlists empty state instead of a missing key (83ea6b2), closes #461
  • library: surface scan failures instead of silently succeeding (0f867fe), closes #457
  • library: treat another album's snapshot as absent, not as approximate (462013e)
  • locales: drop the plural siblings the dead-key sweep could not see (a3352f0)
  • lyrics: carry the fill across speed changes, stop at a full word (23045ab)
  • lyrics: keep the fill responsive to seeks inside the active word (8dfdc5c)
  • lyrics: re-anchor the fill when playback resumes (15de90c)
  • lyrics: reset lyrics context on remote transitions too (9e353e1)
  • lyrics: retry LRCLIB fuzzily before the catch-all providers (b733769), closes #463
  • macos: allow unsigned executable memory for the wasmtime host (4bcbb89)
  • maintenance: fail the cover prune if the profile list can't be read (1b12cc6)
  • motion-cache: strip trailing-dot hosts in SSRF guard + allow 10 redirects (fff142d)
  • motion-cache: validate the initial url inside cache_mp4 (defence-in-depth) (198ba47)
  • mpd: address CodeRabbit review — protocol conformance + robustness (#471) (35c768d)
  • mpd: consistent snapshots + atomic writes + hardened MPD settings UI (#471) (e654ec0)
  • mpd: reject single oneshot instead of persisting it as durable (#471) (4d0b9fe)
  • mpd: seek-in-place + serialized settings saves + UI options sync (#471) (473837d)
  • now-playing: dedupe artist enrichment + gate slideshow fetch (#466) (1d04cce)
  • now-playing: exclude radio/Spotify tracks from the cover slideshow (#466) (ec41261)
  • now-playing: tag panel artist image by artist id to avoid a stale flash (#466) (c2dc991)
  • player: address the replaygain review findings (e7efacf)
  • player: broadcast repeat, shuffle and like to the other window (c0d4176)
  • player: broadcast repeat, shuffle and like to the other window (d4129e6)
  • player: gate visualizer color cycle until the profile's value loads (858b206)
  • player: re-read the pipeline when the stream under it changes (79be05c)
  • player: stamp the snapshot with the track the engine reported (5d3aca1)
  • player: stop a torn-down read from silencing the live one (f137d44)
  • player: stop badging a shared stream as bit-perfect (fa25d63)
  • plugin-host: dedup a cause against its parent, not the whole buffer (5a7bff7), closes #452
  • plugin-host: surface the cause chain behind an http error (8546324), closes #452
  • plugins: busy-gate open-url + reject null badge elements (#443) (3a39a0f)
  • plugins: clamp track_count to u32 range before narrowing (#443) (241e46d)
  • plugins: gate artist snapshot on permission + validate descriptor JSON (#443) (12bba19)
  • plugins: harden ui view — separate flow tokens, a11y, text validation (#443) (a00a217)
  • plugins: skip blank entries when resolving a localized string (4784b4a), closes #440
  • plugins: validate download_url + install redirects with the SSRF guard (977635b)
  • plugins: validate ui descriptor tree + loading states + hi grammar (#443) (808fa09)
  • profile: scope profile_setting reads and writes to a profile (f1438f2)
  • reconciliation: address CodeRabbit review (1c022f3)
  • reconciliation: address playlist conversion review (8318ceb)
  • reconciliation: arbitrate the phase on the empty-remote early return (acf3098)
  • reconciliation: block unavailable local conversions (a77d686)
  • reconciliation: block unavailable playlist tracks (330040d)
  • reconciliation: close scan cancel races and listener leak (be655f2)
  • reconciliation: make cancel-vs-commit an atomic phase transition (2cb5437)
  • reconciliation: revalidate playlist link proofs (42d6a83)
  • reconciliation: roll back reconcile on a cancel during commit phase (eebdbae)
  • reconciliation: signal already-running scans and cover cancellation (07bc8c5)
  • reconciliation: verify playlist snapshot before commit (e2055dd)
  • release: read the section index before trusting readelf's columns (e26c616)
  • release: unbundle libwayland-client from the AppImage (807428b)
  • release: unbundle libwayland-client from the AppImage (d368e42)
  • remote-playback: resume local source after device changes (a1066ee)
  • remote-ui: artwork cache, stale-pass guards, availability hardening (689b758)
  • remote-ui: bound the artwork cache, reset cover on hash change (7a23585)
  • remote-ui: update remote artwork before paint (5b40b36)
  • remote: a cache write must not fail the work it was meant to speed up (2cf2333)
  • remote: a working-file marker its own naming function could produce (2972bc5)
  • remote: address CodeRabbit review — correctness batch 1 (51cf286)
  • remote: address deferred CodeRabbit findings from #502 (6221b99)
  • remote: address the review of the metadata push (04a2f33)
  • remote: address the second review round (f2547ab)
  • remote: annotate RemoteClient lifetime in stream.rs (41ce018)
  • remote: back off on socket sync failure, not on a profile switch (ab71fa0)
  • remote: correct counter labels in ar, ja and zh-TW (63249aa)
  • remote: distinguish remote playback from web radio (c74e3d7)
  • remote: drop a playlist preview the mirror no longer supports (b550693)
  • remote: end the socket session when a catch-up fails (0f541ad)
  • remote: gate the transcode command on sync_v2 and refuse it offline (5532534)
  • remote: give a server track the right-click menu it never had (7969122)
  • remote: give the account-switch test its NOT NULL cached_at (d649c4a)
  • remote: give the feed's fixture the constraints that ship (977dad9)
  • remote: honour "also create on the server" from every entry point (31ea6fb)
  • remote: idempotent placeholder resolve, FIFO-safe unreadable rows (b84ac59)
  • remote: ignore stray callbacks, bound the cached-id lookup (1900322)
  • remote: judge a working file by its name, not by its whole path (556319a)
  • remote: label an upload candidate with its artist's name (deaeb78)
  • remote: make giving up on a feed actually re-read what it missed (483a846)
  • remote: make the cover cache safe under concurrency and honest on failure (0b57f53)
  • remote: make the server Canvas actually reachable (729d3c3)
  • remote: pin client+pool to one profile, share the rotated token (32ab652)
  • remote: pluralize remote counters and fix flagged translations (56e4be3)
  • remote: profile-aware socket catch-up, case-insensitive range unit (096ca33)
  • remote: read a column the track table actually has (84d42f6)
  • remote: refresh-and-replay on 401, harden the refresh path (248a46e)
  • remote: refuse an unparseable number instead of clearing the field (eaa44ba)
  • remote: review batch 1b — clear-after-swap, lyrics fallback (6c3b789)
  • remote: say when a surface is waiting on the catalogue mirror (01b127d)
  • remote: server lyrics synced only when all lines are timestamped (2b09347)
  • remote: show remote track cover in the player bar (8dc4341)
  • remote: six defects in the stream cache, found in review (5c9b8a3)
  • remote: socket idle timeout + coalescing, sync/auth robustness (6d01d24)
  • remote: stamp the cover retry with the identity it was started for (53b6ba4)
  • remote: stop a half-listed album from reading as walked forever (2936046)
  • remote: stricter Content-Range, socket profile pin + cap check (faa498f)
  • remote: strip only the loop newline from server lyrics (c42bf74)
  • review: compare the genre trimmed, and exempt only DoP's rate (0306594)
  • review: send the genre only when it changed, and prove the verdict (bb4a9aa)
  • scan-toast: a scan that hit errors no longer reads as a success (7b9d39f), closes #457
  • scan: keep the replaygain backfill pending when a file fails to read (8c6cce8)
  • scanner: judge an .ogg by its stream, not by its extension (9bfd279)
  • scanner: judge an .ogg by its stream, not by its extension (e0ca4fe)
  • scan: report a failed replaygain backfill marker write (3cd90e6)
  • settings: locale-aware MB formatting in the cover-prune status (e748c11)
  • settings: tidy the cover-prune status timer + announce it to a11y (848add8)
  • stats: local artist images, ragged KPI row, clipped hour labels (e6d1000), closes #453
  • tags: keep the fields a tag write never touched (11c0c7e)
  • test: a non-utf8 directory name cannot be created on apfs (d3e3fa8)
  • the tag editor and audio-path defects found in the audit (c198cf6)
  • ui: a text selection that ends outside a modal must not close it (57e981d)
  • ui: dismiss a modal by where the pointer is, not by what it targets (40f0403)
  • ui: drop inert DSP badges on DoP and harden the toggle (f203eb4)
  • ui: pre-fill the genre the properties dialog was erasing (08b933c)
  • ui: replay liked changes that land during a reload (f547d0f)
  • ui: scope the queued DoP write to the profile that made it (2fd7f9d)
  • ui: subscribe to liked changes before snapshotting the set (eed3254)
  • web-radio: let a 429 fall through to the next host (cb8a31c), closes #452
  • web-radio: try the round-robin host, and retry, before failing (4a20483), closes #452
  • what the first run against a real server found (a6a3be2)
  • wrapped: give each banner key its own broadcast channel (c74eb48)
  • wrapped: withhold the banner until both keys have been read (c83ebb7)

Performance Improvements

  • remote-ui: virtualize the remote playlist and queue lists (0b26205)

This PR was generated with Release Please. See documentation.

@github-actions
github-actions Bot force-pushed the release-please--branches--main--components--waveflow branch 4 times, most recently from 5ec0476 to 97c63aa Compare August 9, 2026 01:52
@InstaZDLL InstaZDLL self-assigned this Aug 9, 2026
@InstaZDLL InstaZDLL added this to the v1.8.0 milestone Aug 9, 2026
@github-actions
github-actions Bot force-pushed the release-please--branches--main--components--waveflow branch from 97c63aa to 711f476 Compare August 10, 2026 10:15
@ABDALLAH9877

Copy link
Copy Markdown

may i ask when the next update will be added becouse im so exited for animated lyrics or word by word lyrics

@InstaZDLL

Copy link
Copy Markdown
Owner

may i ask when the next update will be added becouse im so exited for animated lyrics or word by word lyrics

Thanks, glad you're excited! 🎶 Word-by-word animated lyrics are landing in v1.8.0, which I'm targeting for around the end of next week (no hard promise, I'd rather ship it right). I'll post here the moment it's out! 🙌

@InstaZDLL InstaZDLL added scope: backend Rust/Tauri backend (src-tauri/) scope: deps Dependencies scope: docs Docs, README, assets type: chore Maintenance / tooling size: m 50-200 lines labels Aug 15, 2026
@github-actions
github-actions Bot force-pushed the release-please--branches--main--components--waveflow branch 15 times, most recently from 63f4288 to b4b5f42 Compare August 19, 2026 07:44
@github-actions
github-actions Bot force-pushed the release-please--branches--main--components--waveflow branch 7 times, most recently from e7af405 to ee00905 Compare August 27, 2026 07:21
@ABDALLAH9877

Copy link
Copy Markdown

Can I please know when the update will be released please

@InstaZDLL

Copy link
Copy Markdown
Owner

may i ask when the next update will be added becouse im so exited for animated lyrics or word by word lyrics

Hey, thanks for checking in — and sorry for the wait. 🙏

Honest answer : I gave you an estimate a couple of weeks ago and I missed it. My PC had a problem and I couldn’t work on WaveFlow at all during that time, so progress basically stopped.

The good news is that the part you were waiting for is done word-by-word animated lyrics are merged and ready, just waiting for the release.

What’s still holding 1.8.0 back is some bug fixing in the audio engine, mainly a few playback glitches on certain setups. It’s not the kind of thing I want to ship half-finished, so I’d rather take the extra time and get it right.

Realistically, I’m aiming for around two weeks. I’m deliberately not promising an exact date this time, the last estimate didn’t survive contact with reality, and I’d rather hand you something solid than rush it out.

I’ll post right here the moment it’s out. Thanks for your patience! 🎶

@github-actions
github-actions Bot force-pushed the release-please--branches--main--components--waveflow branch 9 times, most recently from 16c7e2a to e8348c7 Compare September 5, 2026 04:31
@github-actions
github-actions Bot force-pushed the release-please--branches--main--components--waveflow branch 9 times, most recently from 1069fc3 to 523480e Compare September 9, 2026 19:45
@github-actions
github-actions Bot force-pushed the release-please--branches--main--components--waveflow branch from 523480e to 4ce999d Compare September 9, 2026 20:23
@coderabbitai

coderabbitai Bot commented Sep 9, 2026

Copy link
Copy Markdown

Important

Review skipped

Ignore keyword(s) in the title.

⛔ Ignored keywords (5)
  • chore: bump
  • chore(main): release
  • release-please
  • dependabot
  • [bot]

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: b1878228-f2b9-4084-bc3a-5b025b0d3425

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment