feat(v3): mesh network adapter, storage refactor, BLE peers, notifications, wallet fixes#13
Merged
Conversation
…r fixes - Add src/infrastructure/network: IRpcAdapter interface, DirectRpcAdapter (direct Solana RPC), MeshRpcAdapter (JSON-RPC over LXMF relay), and useNetworkMode hook — detects online/mesh/isolated via NetInfo + beacon freshness + live peer/BLE state. No polling, no RPC spam. - Add @react-native-community/netinfo for OS-level connectivity detection. - NetworkStatusBadge: shows live mode pill (ONLINE/MESH RELAY/ISOLATED) above BalanceCard in WalletScreen. - Fix useWalletBalance 429 spam: ref-based trigger so effect only fires on publicKey/isConnected change (not refetch identity), 30s cooldown guard, activity limit 15→10, extract helpers to reduce cognitive complexity. - LoadingOverlay: faster animations (dots 280→160ms, cursor 420→260ms, stamp spring tension 90→130), display name adjustsFontSizeToFit. - NodesScreen BLE chip: use ifaceCounts['BLE'] so chip count matches peer list rows; always show count when bleActive.
17 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
src/infrastructure/network):IRpcAdapterabstraction withDirectRpcAdapter(direct Solana RPC) andMeshRpcAdapter(JSON-RPC over LXMF relay to beacon).useNetworkModehook detectsonline/mesh/isolatedvia OS NetInfo + live beacon/peer/BLE state — zero polling, zero RPC spam.NetworkStatusBadgecomponent shows live mode in WalletScreen.SecureStore/AsyncStorageraw calls replaced with typedsrc/storage/index.tsservice (SecureKeys,PrefKeys,LegacySecureKeys). Fixes latent MWA token key mismatch.LocalWallet.delete()zeroes keys before deletion (secure wipe).ifaceCounts['BLE']so count matches the actual peer list. Always shows count when BLE is active.sliceNewEvents.useWalletBalance+useHideBalance.useWalletBalancenow uses ref-based trigger (effect fires only onpublicKey/isConnectedchange, notrefetchidentity), 30s cooldown guard, activity limit 15→10.adjustsFontSizeToFiton display name.aps-environment: productionentitlement added for push notification provisioning.Test plan
online→mesh→isolatedbadge transitions correctly on wallet screen🤖 Generated with Claude Code