feat(lite): real backend integration — controller, M0-M2a wiring, smoke tool, tests
- LiteWalletController (src/wallet/lite_wallet_controller.*): App-owned; runs real
create/open/restore via the linked SDXL bridge with allowBridgeCalls=true; wipes
seed/passphrase with sodium_memzero; persists on a ready wallet. M2a:
applyLiteRefreshModelToWalletState maps a parsed refresh bundle into WalletState
(zatoshi->DRGX, z/t split, tx typing + confirmations, sync progress).
- App wiring: liteWallet() accessor + init() construction when supportsLiteBackend();
persist -> settings save.
- settings_page: "Validate" reroutes to the controller for real execution (validation-
only fallback otherwise); wipes UI secret buffers after submit.
- chain name default -> "main" with load-time migration of legacy "DRAGONX"
(settings.cpp), preventing the backend "Unknown chain" panic.
- M0: build.sh --lite-backend flag; lite_smoke real-backend tool + CMake targets;
tests/fake_lite_backend.h deterministic harness.
- Tests (test_phase4): injectable-fake bridge, controller lifecycle, chain-name
migration, refresh->WalletState mapping; plus the lite test-suite churn-cleanup rewrite.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>