fix(app-policy): clear the regional "unchecked" badge in the desktop layout (#75)

ApplyDesktopAppPolicy pins a whole app policy through
FStringAppConfigurationOverrideAppPolicy so a later GUAC response cannot
replace the desktop layout. On a first launch that snapshot is the APK's
bundled GuacDefaultPolicy-GlobalDist.json, which ships
"ShowUncheckedBadge": true.

Because the override is permanent, the account's own GUAC policy never
gets a chance to correct it: on a signed-in profile the cached
GUAC:-1:app-policy stays byte-identical to the bundled default plus the
keys NormalizeDesktopLayout writes.

That field gates the badge rendered next to the display name in the
top-bar user-info widget and in the flyout profile card, labelled
CommonUI.Features.Label.Unchecked ("not verified"), so verified accounts
are permanently marked unverified. The desktop chrome has no such badge.
This commit is contained in:
Obsidian authored and GitHub committed 2026-08-26 14:36:30 +03:00
1 parent 272f61688b
commit 8f63b9deba
2 files changed
+3 -1

No files matched your search

+1
View File
@@ -189,6 +189,7 @@ void NormalizeDesktopLayout(nlohmann::json* policy) {
(*policy)["SystemBarPlacement"] = "Left";
(*policy)["ShouldSystemBarUsuallyBePresent"] = true;
(*policy)["DevicePreferencesPersistentPresenceVariant"] = "windows";
(*policy)["ShowUncheckedBadge"] = false;
}
bool DecodePolicy(const nlohmann::json& encoded, nlohmann::json* policy) {
+2 -1
View File
@@ -73,6 +73,7 @@ void ExpectDesktopLayout(const nlohmann::json& policy) {
EXPECT_EQ(policy["SystemBarPlacement"], "Left");
EXPECT_EQ(policy["ShouldSystemBarUsuallyBePresent"], true);
EXPECT_EQ(policy["DevicePreferencesPersistentPresenceVariant"], "windows");
EXPECT_EQ(policy["ShowUncheckedBadge"], false);
}
TEST(RobloxDesktopAppPolicyTest,
@@ -86,7 +87,7 @@ TEST(RobloxDesktopAppPolicyTest,
const nlohmann::json original_policy = {
{"PlatformGroup", "Unknown"}, {"UseGridHomePage", nullptr},
{"SystemBarPlacement", "Bottom"}, {"EligibleForVideoCapture", false},
{"AccountOwnedMarker", "preserve"},
{"ShowUncheckedBadge", true}, {"AccountOwnedMarker", "preserve"},
};
const nlohmann::json configurations = {
{"GUAC:42:app-policy", original_policy.dump()},