fix(lite): rebuild controller on lite-server change (stale-settings audit HIGH)
The LiteWalletController was constructed once at App::init() with the lite connection settings known at startup; changing the lite server in Settings persisted to disk but never reached the live controller, so the new server had no effect until the next launch. Factor the construction into App::rebuildLiteWallet() and call it after a successful server-selection save. The rebuild deliberately preserves a live session: if a wallet is already open (and possibly mid-sync), it no-ops and the new selection applies on the next controller build, rather than discarding the open wallet and its uninterruptible in-flight sync. Closes the last remaining HIGH from the session audit. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -197,6 +197,9 @@ static void saveLiteServerSelectionFromPageState(App* app) {
|
||||
const auto result = wallet::executeLiteWalletServerSelectionUi(*app->settings(), input);
|
||||
if (result.settingsWritten) {
|
||||
s_settingsState.lite_server_status = "Saved";
|
||||
// Rebuild the lite controller so the newly-saved server actually takes effect (it is
|
||||
// otherwise captured once at startup). No-op if a wallet is already open mid-session.
|
||||
app->rebuildLiteWallet();
|
||||
} else if (!result.error.empty()) {
|
||||
s_settingsState.lite_server_status = result.error;
|
||||
Notifications::instance().warning(result.error);
|
||||
|
||||
Reference in New Issue
Block a user