Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "1.1.0"
".": "1.1.1"
}
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
# Changelog

## [1.1.1](https://github.com/InstaZDLL/WaveFlow/compare/v1.1.0...v1.1.1) (2026-05-18)


### Bug Fixes

* **ci:** grant actions:write to fan-out step in release.yml ([2cf4b8d](https://github.com/InstaZDLL/WaveFlow/commit/2cf4b8d9282887502d52a918dea644aae0c6f2cc))
* **ci:** update winget-releaser pinned SHA (v2 head moved) ([25a969e](https://github.com/InstaZDLL/WaveFlow/commit/25a969e270f332daff82a0172dc7121980e66e7f))
* **readme:** restore emerald color on version badge ([211d12e](https://github.com/InstaZDLL/WaveFlow/commit/211d12e6372949a39dfc04abc54f5f4a5822a552))
* **readme:** switch version badge to shields.io static/v1 endpoint ([c020e4a](https://github.com/InstaZDLL/WaveFlow/commit/c020e4ac6246087a3064b3636458d33a8f1bd49b))
* **share:** use full-res artwork + real blur on Now Playing card ([f6d439d](https://github.com/InstaZDLL/WaveFlow/commit/f6d439df3752770e98728d788eedc579dd87fcce))
* **splash:** allow retry when reveal_main_close_splash fails ([446a153](https://github.com/InstaZDLL/WaveFlow/commit/446a153d9dbca7f602ecbbfcf3f3563317bb22f4))
* **splash:** emit app://ready from useEffect instead of rAF ([e7da1c4](https://github.com/InstaZDLL/WaveFlow/commit/e7da1c41d81d89b66b41484588b9553bd55dbbc7))
* **splash:** move handoff to backend `app://ready` listener (closes [#42](https://github.com/InstaZDLL/WaveFlow/issues/42)) ([0e5618a](https://github.com/InstaZDLL/WaveFlow/commit/0e5618aa1b1d6eb92a11c67abb853532c7220c11))
* **splash:** move handoff to backend app://ready listener (closes [#42](https://github.com/InstaZDLL/WaveFlow/issues/42)) ([#43](https://github.com/InstaZDLL/WaveFlow/issues/43)) ([1c43fb9](https://github.com/InstaZDLL/WaveFlow/commit/1c43fb93e4451c474c8f61d90cd46ac1d0a68e27))
* **splash:** retry fallback in a loop + don't close splash on main reveal failure ([6c1f7ac](https://github.com/InstaZDLL/WaveFlow/commit/6c1f7accd851e121a26334e8bd47b695d191873b))
* **splash:** set native window backgroundColor to avoid white flash on windows ([8f29b4f](https://github.com/InstaZDLL/WaveFlow/commit/8f29b4f07cea1a3055e32443f6d92ab7e0b1ec17))

## [1.1.0](https://github.com/InstaZDLL/WaveFlow/compare/v1.0.0...v1.1.0) (2026-05-17)

### Features
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
</p>

<p align="center">
<img src="https://img.shields.io/static/v1?label=version&message=1.1.0&color=emerald&style=flat-square" alt="Version" /> <!-- x-release-please-version -->
<img src="https://img.shields.io/static/v1?label=version&message=1.1.1&color=emerald&style=flat-square" alt="Version" /> <!-- x-release-please-version -->
<img src="https://img.shields.io/github/downloads/InstaZDLL/WaveFlow/total?style=flat-square&color=emerald&label=downloads" alt="Downloads" />
<img src="https://img.shields.io/badge/tauri-2.11-blue?style=flat-square&logo=tauri" alt="Tauri 2" />
<img src="https://img.shields.io/badge/react-19-61dafb?style=flat-square&logo=react" alt="React 19" />
Expand Down
8 changes: 6 additions & 2 deletions docs/features/ui.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,13 @@ Two entry points in the [`PlayerBar`](../../src/components/player/PlayerBar.tsx)

## Splash screen

To hide the cold-start delay (Windows SmartScreen / Defender scanning every freshly-extracted DLL on the very first launch after install, plus the `setup()` chain in [`lib.rs`](../../src-tauri/src/lib.rs) — opening `app.db` + running migrations, creating the default profile, cold-initialising cpal/WASAPI), the main window is created with `"visible": false` and a small secondary window (`label: "splashscreen"`, 360×240, transparent, decorations off, always-on-top, off the taskbar) shows a WaveFlow logo + indeterminate progress bar while the backend boots and the React bundle parses.
To hide the cold-start delay (Windows SmartScreen / Defender scanning every freshly-extracted DLL on the very first launch after install, plus the `setup()` chain in [`lib.rs`](../../src-tauri/src/lib.rs) — opening `app.db` + running migrations, creating the default profile, cold-initialising cpal/WASAPI), the main window is created with `"visible": false` and a small secondary window (`label: "splashscreen"`, 360×240, opaque `#121212`, decorations off, always-on-top, off the taskbar) shows a WaveFlow logo + indeterminate progress bar while the backend boots and the React bundle parses.

The static HTML lives in [`public/splash.html`](../../public/splash.html) (no JS, inline SVG logo, single CSS animation) so it paints the instant the WebView2 process spawns. [`main.tsx`](../../src/main.tsx) runs the takeover after the first React frame: show the main window first, then close the splash so the desktop is never visible between the two. The mini-player webview branches out via `?mini=1` and skips the dance.
The static HTML lives in [`public/splash.html`](../../public/splash.html) (no JS, inline SVG logo, single CSS animation) so it paints the instant the WebView2 process spawns. The splash → main handoff is **driven from the backend** — the frontend's [`ReadySignal`](../../src/components/common/ReadySignal.tsx) component emits `app://ready` after React's first commit (via `useEffect`, not `requestAnimationFrame` — WebKitGTK 2.52 suspends rAF callbacks while a window is `visible: false`), and [`lib.rs`](../../src-tauri/src/lib.rs)'s setup installs an `app.listen("app://ready", …)` listener that calls `reveal_main_close_splash`: show main first, set focus, then close the splash so the desktop is never visible between the two. A 15 s safety-net timer + bounded retry loop (10 attempts, 250 ms backoff) revives the handoff if the event never arrives. The mini-player webview branches out via `?mini=1` and skips the dance.

Why backend-driven: v1.1.0 ran the handoff entirely in `main.tsx` via `requestAnimationFrame` + IPC `window.show()` + `splash.close()`. On Linux WebKitGTK 2.52+ the heavy first-launch init (migrations + DB pool + WebKit profile dir) raced the rAF window, the show()/close() could fire on a non-ready webview, and the user was stuck on an eternal splash (issue #42). Native-side ownership + an explicit "DOM committed" signal is robust to that race.

Splash window background is opaque on purpose: `"transparent": true` forces an alpha-capable EGL config that some WebKitGTK builds reject, doubling the EGL failure surface (see also the AppImage incompatibility note for WebKitGTK 2.52+).

## System tray

Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "waveflow",
"private": true,
"version": "1.1.0",
"version": "1.1.1",
"type": "module",
"license": "GPL-3.0",
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "waveflow"
version = "1.1.0"
version = "1.1.1"
description = "Local music player for desktop — Spotify-inspired UI, real-time audio engine, your files stay on your machine."
authors = ["InstaZDLL <github.105mh@8shield.net>"]
edition = "2021"
Expand Down
2 changes: 1 addition & 1 deletion src-tauri/tauri.conf.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "WaveFlow",
"version": "1.1.0",
"version": "1.1.1",
"identifier": "app.waveflow",
"build": {
"beforeDevCommand": "bun run dev",
Expand Down
Loading