From c0d41cf8cfec5b8efc9a2ca101ef2a887b96a451 Mon Sep 17 00:00:00 2001 From: archipelago Date: Mon, 15 Jun 2026 16:29:44 -0400 Subject: [PATCH] fix(ui): faster bitcoin sync refresh + unstick ElectrumX loader (B15,B7) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit B15: Home system stats (incl. bitcoin sync %) polled every 30s β€” too slow; now 10s so sync progress tracks the actual block height more closely. B7: the ElectrumX sync overlay was gated only on status!=='synced', so if the status never flips to 'synced' (ElectrumX stale/disconnected) the loader stuck on top forever. Now the overlay hides and the app iframe loads when the sync status is stale (fail-open), while still showing during active indexing. type-check EXIT 0. Co-Authored-By: Claude Opus 4.8 (1M context) --- neode-ui/src/views/Home.vue | 2 +- neode-ui/src/views/appSession/AppSessionFrame.vue | 7 +++++-- tests/production-quality/TRACKER.md | 10 +++++----- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/neode-ui/src/views/Home.vue b/neode-ui/src/views/Home.vue index 581652a0..654f6f6e 100644 --- a/neode-ui/src/views/Home.vue +++ b/neode-ui/src/views/Home.vue @@ -482,7 +482,7 @@ const cloudFolderDisplay = computed(() => cloudFolderCount.value !== null ? Stri onMounted(async () => { try { const usage = await fileBrowserClient.getUsage(); cloudStorageUsed.value = usage.totalSize; cloudFolderCount.value = usage.folderCount } catch { /* not running */ } - loadSystemStats(); systemStatsInterval = setInterval(loadSystemStats, 30000); checkUpdateStatus(); loadWeb5Status() + loadSystemStats(); systemStatsInterval = setInterval(loadSystemStats, 10000); checkUpdateStatus(); loadWeb5Status() }) // Wallet modals diff --git a/neode-ui/src/views/appSession/AppSessionFrame.vue b/neode-ui/src/views/appSession/AppSessionFrame.vue index d3a3f49f..74552eeb 100644 --- a/neode-ui/src/views/appSession/AppSessionFrame.vue +++ b/neode-ui/src/views/appSession/AppSessionFrame.vue @@ -13,7 +13,10 @@ index is still being built (the Electrum server can't serve clients until then). Mirrors the Fedimint Guardian "wait page" design. --> -
+ +
@@ -42,7 +45,7 @@
via sub_filter OR rebuild app with correct base. Needs deeper per-app look (fresh context ok). -### B15 — Bitcoin UI sync progress lags — TODO +### B15 — Bitcoin UI sync progress lags — FIXED (Home.vue poll 30s→10s). UI-confirm. Bitcoin UI doesn't update its sync progress fast enough even though the console clearly already has the block-height data. Likely a polling-interval / reactive-update gap between the status source and the UI. -### B16 — Bitcoin sync status on Home > System container vanishes — TODO +### B16 — Bitcoin sync status vanishes — DEFERRED (homeStatus.ts already partly retains last value; safe fix needs UI test to avoid showing stale-as-live; plan in findings) The bitcoin sync status in the Home > System container disappears when it should persist/cache and show an "updating" state. Related to B15 (Bitcoin UI sync lag). Likely the status component clears on empty/transitional poll instead of retaining last-known + showing updating. ### B17 — archipelago.service flaps on boot before starting — TODO