Fix window lookups that only checked "main", missing "launcher"#11
Merged
marcelveldt merged 1 commit intomusic-assistant:mainfrom Feb 20, 2026
Merged
Conversation
The app's single webview window alternates names between "main" and
"launcher" due to how server switching works: navigate_to_launcher()
creates a new window with the opposite name (to avoid Tauri name
conflicts) then destroys the old one. Connecting to a server is just
an in-place window.location.href navigation — no new window is created.
This means after one "Switch Server" round-trip, the user is fully
connected to a server and receiving now_playing data, but the window
is named "launcher". Five code paths only looked up "main":
- Single-instance handler: .expect("no main window") panicked,
crashing the app if a second instance was launched
- Tray "hide"/"show": silently failed
- Tray "now_playing" click: silently failed
- Tray icon left-click: silently failed
Apply the same .or_else(|| get_webview_window("launcher")) pattern
already used in 8 other places in this file. Also remove .expect()
calls from the single-instance handler in favor of if-let to avoid
panics.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The app's single webview window alternates names between "main" and "launcher" due to how server switching works: navigate_to_launcher() creates a new window with the opposite name (to avoid Tauri name conflicts) then destroys the old one. Connecting to a server is just an in-place window.location.href navigation — no new window is created.
This means after one "Switch Server" round-trip, the user is fully connected to a server and doing stuff like receiving now_playing data, but the window is named "launcher" (I found this confusing at first, which is why I'm spelling it out). Five code paths only looked up "main":
Apply the same .or_else(|| get_webview_window("launcher")) pattern already used in 8 other places in this file. Also remove .expect() calls from the single-instance handler in favor of if-let to avoid panics.