feat(history): show "Loading older history (N%)" during the initial bulk load
History streams in over many refresh cycles (the incremental shielded scan walks every z-address), so the first batch appears long before the list is complete — with no indication more is still coming. The existing loading banner deliberately goes quiet once any rows are on screen. Track whether the first full shielded scan has finished (initial_history_scan_complete_) and, until it has, surface a progress percentage (fraction of z-addresses scanned) in transactionRefreshProgressText() — which the History tab already renders as its pulsing loading indicator. Goes quiet once the first scan completes; routine per-block re-scans don't re-trigger it. Reset on a full history invalidation (rescan / session reset) so it shows again on reload. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -975,6 +975,7 @@ void App::invalidateShieldedHistoryScanProgress(bool persistCache)
|
||||
{
|
||||
shielded_history_scan_cursor_ = 0;
|
||||
shielded_history_scan_pending_ = false;
|
||||
initial_history_scan_complete_ = false; // a full re-scan is coming — show load progress again
|
||||
shielded_history_scan_heights_.clear();
|
||||
if (persistCache) storeTransactionHistoryCacheIfAvailable();
|
||||
}
|
||||
@@ -1353,6 +1354,7 @@ void App::refreshTransactionData()
|
||||
storeTransactionHistoryCacheIfAvailable();
|
||||
shielded_history_scan_cursor_ = nextShieldedScanStartIndex;
|
||||
shielded_history_scan_pending_ = !shieldedScanComplete;
|
||||
if (shieldedScanComplete) initial_history_scan_complete_ = true;
|
||||
transactions_dirty_ = !shieldedScanComplete;
|
||||
maybeFinishTransactionSendProgress();
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user