feat(ui): surface daemon DEGRADED mode + v1.3.0 auto-shield status
Rec3 — v1.3.0+ opens a wallet that lost its hdchain in DEGRADED mode (existing funds spendable, but no new HD-key derivation) instead of aborting. Add a daemon-log classifier (walletOpenedDegraded) + detectWalletDegraded(), warned once per session. Pre-1.3.0 daemons never emit that line, so it's a no-op there. O1 — probe z_autoshieldstatus once per connection (now decoupled from our own toggle/balance) and, in Settings, show whether the node handles auto-shield itself (+ its destination, or the daemon's disabled_reason). The checkbox now governs only the wallet's fallback shielder, which defers to the node. Nothing renders on pre-1.3.0 daemons (no such RPC), so behaviour is unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1186,6 +1186,18 @@ void RenderSettingsPage(App* app) {
|
||||
if (ImGui::IsItemHovered()) material::Tooltip("%s", TR("tt_save_ztx"));
|
||||
CB(TrId("auto_shield", "auto_shld"), &s_settingsState.auto_shield);
|
||||
if (ImGui::IsItemHovered()) material::Tooltip("%s", TR("tt_auto_shield"));
|
||||
// O1: when a v1.3.0+ node auto-shields coinbase itself, show its real state — the checkbox
|
||||
// above only governs the wallet's own fallback shielder (which defers to the node). Nothing
|
||||
// renders on pre-1.3.0 daemons (never probed), so their behaviour is unchanged.
|
||||
if (app && app->daemonAutoShieldProbed()) {
|
||||
if (app->daemonAutoShieldActive()) {
|
||||
ImGui::TextColored(ImVec4(0.40f, 0.78f, 0.40f, 1.0f), " %s", TR("autoshield_by_node"));
|
||||
if (!app->daemonAutoShieldAddress().empty())
|
||||
ImGui::TextDisabled(" %s", app->daemonAutoShieldAddress().c_str());
|
||||
} else if (!app->daemonAutoShieldDisabledReason().empty()) {
|
||||
ImGui::TextDisabled(" %s", app->daemonAutoShieldDisabledReason().c_str());
|
||||
}
|
||||
}
|
||||
CB(TrId("use_tor", "tor"), &s_settingsState.use_tor);
|
||||
if (ImGui::IsItemHovered()) material::Tooltip("%s", TR("tt_tor"));
|
||||
if (showDaemonOptions) {
|
||||
|
||||
Reference in New Issue
Block a user