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 app/version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
6.3.4
6.3.5
54 changes: 54 additions & 0 deletions docs/release-notes/6.3.5.md
Original file line number Diff line number Diff line change
@@ -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.