fix(desktop): honor backend skin on first profile use - #74018
Conversation
|
Thanks for the focused fix. I verified that current main still has the reported seed-only behavior: The PR's preference-presence check preserves the manual-choice guard discussed on #73987, while its profile-scoped registry, pending queue, and primary-socket ownership changes address concurrent-profile routing. The changed production-file bases still match current main, and GitHub reports the PR as cleanly mergeable with desktop checks and Linux E2E passing at Automated hermes-sweeper review. |
Summary
display.skinthe first time Desktop sees that profileFixes #73987.
This complements #71447: that PR preserves a custom skin after a manual Desktop selection, while this change adopts backend-authored and user skins on first use.
Root cause
Desktop treated every
gateway.readyskin as registry-only seed data. It could not distinguish "no Desktop preference exists" from "the user explicitly chose another theme." The sync state was also global, so simultaneous profile gateways could overwrite one another. Finally, primary gateway events captured a profile before the persisted startup profile was adopted.Fix
Test plan
useMessageStreamtests for backgroundgateway.readyandskin.changeduseGatewayBoottest for an immediate open-handshake eventgit diff --checkCredit: Vaibhav Sharma (@vaibhavjnf) identified, reproduced, and contributed this fix.