diff --git a/app/version.txt b/app/version.txt index 8ac3c4451..b98d1d3fa 100644 --- a/app/version.txt +++ b/app/version.txt @@ -1 +1 @@ -6.3.4 +6.3.5 diff --git a/docs/release-notes/6.3.5.md b/docs/release-notes/6.3.5.md new file mode 100644 index 000000000..f7d288962 --- /dev/null +++ b/docs/release-notes/6.3.5.md @@ -0,0 +1,54 @@ +**MoonlightVibe opens again. 6.3.4 hung on every launch, on every device: the window appeared and +then stayed "Not Responding". If you are on 6.3.4, update to this release by hand.** + +## What was wrong + +6.3.4 added seat discovery. At startup, the part of the app that keeps your host list locks that +list while it starts its background work. Seat discovery then checked for seats straight away, on +the same thread, and that check waits for the same list. The lock cannot be taken twice by one +thread, so the app waited for itself and never finished starting. + +It happened on every launch, with or without saved hosts. The 6.3.4 notes named a hang on startup as +the first thing to suspect, and this was it. + +## What changed + +Seat discovery now does its first check a moment later, after startup has released the list. Seats +still appear as described in the 6.3.4 notes. Nothing else about discovery changed. + +## Updating from 6.3.4 + +6.3.4 never finishes starting, so it cannot tell you that this release exists. Download this release +and extract it over your 6.3.4 files. Your hosts and settings are kept. If you turned on portable +mode by renaming `portable.dat.inactive` to `portable.dat`, your settings live in that folder, so +extract over it rather than deleting it first. + +## Also in this release + +- **Update checks now look at MoonlightVibe's own releases.** Before, the app compared itself with + upstream Moonlight's version. When upstream ships a higher number, it would have sent you to + upstream Moonlight instead. An update is now offered only when a MoonlightVibe release has a + finished build for your platform. +- **Preparation for code signing on Windows.** Nothing is signed yet, so this release is unsigned, + like the ones before it. Windows Smart App Control or SmartScreen may still block it on some + devices. Signing starts once SignPath Foundation approves the project. +- **Two upstream Moonlight fixes by Cameron Gutman are merged in:** a livelock between SDL, libdecor + and Qt, and a newer SDL3 in the AppImage. Both affect Linux only. MoonlightVibe publishes Windows + and macOS builds, so they change nothing for those. + +## How this was checked + +- The hang was reproduced on a Windows host. 6.3.4 stopped responding within 2 seconds, and 6.3.3 + ran normally. +- A small test program built around the real seat discovery code deadlocked with the 6.3.4 code and + passed with the fix. +- The Windows build of this fix was started on the same host and responded at every check for 30 + seconds. 6.3.4, started right after, was not responding at every check. +- The update check was tested in a separate program against real and invalid GitHub responses. + Inside the app, it read MoonlightVibe's latest release and correctly found nothing newer. +- **Not yet checked:** a client finding a seat by itself, and the macOS build. Both use the same code + as Windows. + +## Unchanged + +Streaming, decoding, input and audio work as in 6.3.3.