refactor(market-analysis) : robustesse, perf bornée et tests des follow-ups
Contexte
Reprise des pistes nice-to-have identifiées lors de l'audit pré-MR de feat/market-analysis-modern-ui (déjà mergée), en branche séparée.
Changements
- Mémoïsation de
_walletName(late final) au lieu d'un getter recalculé à chaque accès. - Robustesse autoDispose : gardes
if (!ref.mounted) return;après chaqueawaitdansrunAnalysis, avant chaque écriture destate. - i18n : exceptions inattendues mappées vers la clé
anErrorOccurredau lieu d'affichere.toString()brut via.tr()(l'erreur reste loggée pour le diagnostic). - Perf :
_resolveCesiumNamesborne sa concurrence par chunks de 8 (au lieu d'unFuture.waitnon borné) pour éviter de saturer l'endpoint Cesium+.
Tests
discoverOtherContacts(exclusion soi/sélectionnés, regroupement, adresse vide)generateMarkdownReport(table + totaux, fallback pubkey, section conditionnelle)resolveContactName(priorité identité → csName → libellé, précédence contacts > cache) — nouveau fichier
Vérifications
flutter analyze: aucun problèmedart format --line-length=120: aucun fichier modifiéflutter test: OK (hors échec pré-existantmigrate_identitylié àobjectbox.dllsous Windows)- Build Windows + smoke-test du flux (analyse + export) : OK
Récap final
- Branche : chore/market-analysis-followups (depuis origin/master)
- Commit : 988ed880 — 4 fichiers, +231/−14
- Poussé sur fork
✅ - Audit pré-MR (8 dimensions) : aucun bloquant
- Vérifié : build natif + boot sans crash + smoke-test GUI (toi) OK
- Les 2 captures images/ (bug d'index, item 5 de la backlog) sont restées hors commit
-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com