fix(apps): restore legacy app ordering toggles for client compatibility#296
Open
jukor112 wants to merge 1 commit into
Open
fix(apps): restore legacy app ordering toggles for client compatibility#296jukor112 wants to merge 1 commit into
jukor112 wants to merge 1 commit into
Conversation
Restores both the global and per-client `legacy_ordering` toggles that were recently hardcoded to true. - In `/applist` (nvhttp.cpp), evaluates both the global config and client-specific switches to decide whether to pad app titles with zero-width spaces. This fixes issues with Moonlight CLI (and scripts) which fail to match app names when zero-width spaces are present. - In client update handlers (confighttp.cpp), parses and saves the `enable_legacy_ordering` option. - Restores the global "App ordering for legacy clients" toggle in the Advanced tab of Configuration. - Restores the per-client "Enable legacy ordering" checkbox in the Client Management edit modal.
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.
Restore Legacy App Ordering Configuration (Global + Per-Client)
Summary
This PR restores both the global configuration and per-client settings for Legacy App Ordering (
legacy_ordering), which were inadvertently hardcoded totruein v1.17.0.This allows legacy ordering to be selectively disabled for clients that require unmodified application names, such as the Moonlight CLI and MoonDeck.
Problem
When Legacy App Ordering is enabled, the host prepends hidden Unicode zero-width characters (
\u200Band\u200C) to application names returned by the/applistendpoint. These invisible characters preserve a stable custom application order for legacy Moonlight GUI clients.However, command-line clients such as the Moonlight CLI perform literal string matching against the application names returned by
/applist. Because the hidden characters are not stripped, application lookup fails.Example:
As a result, the CLI hangs on:
before eventually reporting that the application was not found.
Since MoonDeck uses the Moonlight CLI internally, this regression also prevents MoonDeck from launching streams.
Solution
This PR restores the ability to enable or disable legacy ordering both globally and on a per-client basis.
C++ Backend
enable_legacy_orderinginsrc/confighttp.cpp.src/nvhttp.cpp:This combines the global configuration with the per-client override.
Web UI
Advanced.vue).pin.html).Testing
Functional Verification
Expected Result