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 chaque await dans runAnalysis, avant chaque écriture de state.
  • i18n : exceptions inattendues mappées vers la clé anErrorOccurred au lieu d'afficher e.toString() brut via .tr() (l'erreur reste loggée pour le diagnostic).
  • Perf : _resolveCesiumNames borne sa concurrence par chunks de 8 (au lieu d'un Future.wait non 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ème
  • dart format --line-length=120 : aucun fichier modifié
  • flutter test : OK (hors échec pré-existant migrate_identity lié à objectbox.dll sous 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

Merge request reports

Loading