Commit Graph

105 Commits

Author SHA1 Message Date
Syoul a36a6729e3 Merge pull request 'dev' (#2) from dev into main
ci/woodpecker/push/woodpecker Pipeline was successful
Reviewed-on: #2
2026-04-22 00:29:50 +02:00
syoul 6b42a75140 perf: réduire la fréquence de polling — data 2 min, statut 60s
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 00:02:56 +02:00
syoul 8e396cd331 feat: nature des échanges — catégorisation et détail des commentaires de transactions
ci/woodpecker/push/woodpecker Pipeline was successful
- Nouveau commentParser.ts : ~80 règles regex multilingues, 11 catégories
- SubsquidAdapter : fetch du champ comment.remark depuis SubSquid
- Transaction et TransactionArc : champs comment et category
- StatsPanel : section Nature des échanges avec barres cliquables (détail inline)
- FlowMap : tooltip au survol des arcs avec répartition catégories + commentaires
- InfoPanel mis à jour

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 21:29:59 +02:00
Syoul 96ee4a2382 Merge pull request 'dev' (#1) from dev into main
ci/woodpecker/push/woodpecker Pipeline was successful
Reviewed-on: #1
2026-04-21 20:52:40 +02:00
syoul 6b7591db32 docs: ajouter dossier releases/ avec notes de version
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 20:47:55 +02:00
syoul 0d9415ae6a feat: indicateurs de statut et configuration des endpoints SubSquid/Cesium+
ci/woodpecker/push/woodpecker Pipeline was successful
- Dots de statut en temps réel dans le StatsPanel (ok/slow/error + latence)
- Bannière d'alerte si un service est inaccessible
- EndpointPopover : sélection parmi nœuds connus, test de latence live, URL custom
- Rechargement automatique des données après changement d'endpoint
- SubsquidAdapter et CesiumAdapter lisent l'URL active depuis EndpointConfig
- InfoPanel mis à jour (overlay DU + statut des services)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 20:43:33 +02:00
syoul 7c9d626b98 feat: vue dividende universel — overlay membres actifs géolocalisés
ci/woodpecker/push/woodpecker Pipeline was successful
Bouton DU (gauche carte) : affiche en overlay des cercles verts
proportionnels au nombre de membres WoT actifs géolocalisés par ville.
Chargement à la demande, mis en cache 1h.

Pipeline :
  SubsquidAdapter.fetchActiveMemberKeys() → isMember:true (~7000)
  CesiumAdapter.resolveGeoByKeysBatched() → lots de 500 clés
  DataService.fetchMemberCities()         → agrégation + cache 1h
  HeatMap → CircleMarkers Leaflet en overlay

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 12:57:19 +01:00
syoul 0136ff9ce1 docs: mettre à jour InfoPanel avec les nouvelles features
ci/woodpecker/push/woodpecker Pipeline was successful
Raccourcis clavier, recherche identité (⌕), URL partageable et
sparkline documentés dans le panneau d'aide.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 12:32:53 +01:00
syoul 575ca7a1fc feat: raccourcis clavier, URL partageable, sparkline, recherche identité
ci/woodpecker/push/woodpecker Pipeline was successful
- Raccourcis clavier : ←/→ (frames), Espace (play/pause), Échap
  (quitter animation/fermer info), H (basculer heatmap↔flux)
- URL partageable : ?period=7&view=flow&city=Paris — état restauré
  au chargement et mis à jour sans rechargement (history.replaceState)
- Sparkline : mini bar-chart SVG dans le StatsPanel montrant l'activité
  sur la période (données déjà en mémoire, aucune requête)
- Recherche identité : champ flottant (⌕) acceptant un nom Ğ1 ou une
  clé g1…, résout via Subsquid + Cesium+, bascule en vue flux et
  met la ville en focus

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 12:28:58 +01:00
syoul ac168c3689 Merge branch 'dev'
ci/woodpecker/push/woodpecker Pipeline was successful
2026-03-28 11:52:27 +01:00
syoul 8f9a11c4e8 chore: bump version to 1.4.1
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 11:50:31 +01:00
syoul 63f50d5762 feat: géolocaliser les comptes non-membres via Cesium+
ci/woodpecker/push/woodpecker Pipeline was successful
Pour les fromId/toId absents du keyMap WoT, applique ss58ToDuniterKey
directement pour tenter un lookup Cesium+. Les non-membres ayant un
profil géolocalisé (ex: comptes portefeuille avec ville renseignée)
apparaissent désormais dans le flux animé.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 11:38:31 +01:00
syoul 9f3752b621 chore: merge dev → main v1.4.0
ci/woodpecker/push/woodpecker Pipeline was successful
- feat: bouton ℹ flottant isolé sous ☰ (mobile) / top-left (desktop)
- fix: supprimer label 'Vitesse' + bouton ✕ AnimationPlayer
- fix: couleur émetteurs rouge #e53935 (meilleur contraste vs or)
- fix: InfoPanel — dégradés or→rouge / or→vert documentés
- docs: features-roadmap.md (14 features planifiées)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v1.4.0
2026-03-24 13:31:49 +01:00
syoul 6fc1705f6d chore: bump version to 1.4.0
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 13:31:36 +01:00
syoul 15807c7bcb fix: InfoPanel — couleur émetteurs rouge (dégradé or→rouge) + description dégradés
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 13:27:16 +01:00
syoul bac113e51b fix: couleur émetteurs #e53935 (rouge) au lieu de #ff6d00 (orange)
ci/woodpecker/push/woodpecker Pipeline was successful
Meilleur contraste avec la couleur neutre or #d4a843.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 13:22:45 +01:00
syoul 6d01c8d29e fix: supprimer bouton ✕ de l'AnimationPlayer (fermeture via ▶ Animer)
ci/woodpecker/push/woodpecker Pipeline was successful
Économise une ligne sur mobile. onClose retiré de l'interface et du JSX.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 13:19:52 +01:00
syoul 46b11710cc fix: supprimer label 'Vitesse' dans AnimationPlayer (gain de place mobile)
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 13:15:41 +01:00
syoul 78ede01d11 feat: déplacer bouton ℹ hors du PeriodSelector → bouton flottant isolé
ci/woodpecker/push/woodpecker Pipeline was successful
- Sous ☰ sur mobile (top-16 left-4), top-4 left-4 sur desktop
- PeriodSelector : suppression prop onInfo + bouton ℹ intégré

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 13:12:24 +01:00
syoul 70de7e4c06 chore: merge dev → main v1.3.2
ci/woodpecker/push/woodpecker Pipeline was successful
- fix: bouton Clusters bottom-44 mobile / bottom-24 desktop
- fix: bouton Clusters bottom-36/32 (iterations précédentes)
- fix: plan historique-genesis.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v1.3.2
2026-03-24 13:08:09 +01:00
syoul 65f26e2b58 chore: bump version to 1.3.2
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 13:07:52 +01:00
syoul 104949427c fix: bouton Clusters bottom-44 mobile / bottom-24 desktop
ci/woodpecker/push/woodpecker Pipeline was successful
Sur mobile réel, la police forcée à 16px fait wrapper les contrôles
AnimationPlayer en 2 lignes (~165px). bottom-44 (176px) sur mobile,
bottom-24 (96px) sur sm+ où les contrôles ne wrappent pas.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 13:05:01 +01:00
syoul 9ec95dfc91 fix: bouton Clusters bottom-36 — dépasse le bord supérieur de l'AnimationPlayer
ci/woodpecker/push/woodpecker Pipeline was successful
Player: bottom-4 + ~114px hauteur → bord sup à ~130px.
bottom-32 (128px) chevauchait de 2px. bottom-36 (144px) donne 14px de marge.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 12:52:51 +01:00
syoul ab1bad2209 chore: merge dev → main v1.3.1
ci/woodpecker/push/woodpecker Pipeline was successful
- fix: retirer mention Mock de l'InfoPanel

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v1.3.1
2026-03-24 12:39:32 +01:00
syoul 3dbd8704ff chore: bump version to 1.3.1
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 12:39:22 +01:00
syoul b0104207c4 fix: retirer la mention Mock de l'InfoPanel (détail interne)
ci/woodpecker/push/woodpecker Pipeline failed
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 12:39:13 +01:00
syoul 00f0602c61 chore: merge dev → main v1.3.0
ci/woodpecker/push/woodpecker Pipeline was successful
- feat: clusters vue Flux (toggle Clusters/Villes, popup balance)
- feat: % Tx géoloc. dans la barre de contrôles
- feat: bouton ℹ + modale InfoPanel (toutes les fonctionnalités)
- fix: layout mobile (bottom drawer, badge focus, AnimationPlayer)
- fix: bouton Clusters visible en mode animation (z-[1002], bottom-32)
- fix: pipeline CI — .dockerignore, syft v1.42.3 pinné, trivy 0.69.3

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v1.3.0
2026-03-24 12:35:56 +01:00
syoul 4821dab6e6 chore: bump version to 1.3.0
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 12:35:41 +01:00
syoul eb4e693f3c fix: nom de l'app Ğ1Flux (et non ĞéoFlux) dans InfoPanel
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 12:32:46 +01:00
syoul 810c815706 feat: bouton ℹ + modale InfoPanel décrivant toutes les fonctionnalités
ci/woodpecker/push/woodpecker Pipeline was successful
- InfoPanel : modale avec overlay, sections Vues / Clusters / Période /
  Animation / Statistiques / Source, composants Section/Feature/Kbd
- PeriodSelector : ajout prop onInfo + bouton ℹ en fin de barre
- App.tsx : état infoOpen, onInfo → setInfoOpen(true), rendu InfoPanel

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 12:28:51 +01:00
syoul 0e040510af fix: bouton Clusters bottom-32 — juste au-dessus de l'AnimationPlayer
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 12:22:12 +01:00
syoul ac974fb8a0 fix: bouton Clusters z-[1002] — visible au-dessus de l'AnimationPlayer
ci/woodpecker/push/woodpecker Pipeline was successful
AnimationPlayer z-[1001] couvrait le bouton z-[600] sur mobile
(player ~130px, bouton à bottom-20/80px).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 12:18:51 +01:00
syoul 666dc99989 fix: sbom-generate — version syft hardcodée dans l'URL (env non expansé)
ci/woodpecker/push/woodpecker Pipeline was successful
Les variables environment: Woodpecker ne sont pas expansées dans les
commandes shell YAML. Version v1.42.3 écrite directement dans l'URL.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 12:15:20 +01:00
syoul c02f207b6c fix: sbom-generate — alpine + syft pinné via GitHub releases
ci/woodpecker/push/woodpecker Pipeline failed
anchore/syft:vX est distroless (pas de /bin/sh), incompatible avec
les commands Woodpecker. Retour sur alpine:3.20 avec téléchargement
direct du tarball v1.42.3 depuis GitHub releases (pas install.sh
qui tire latest).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 12:14:16 +01:00
syoul 77f5f44758 fix: sbom-generate — image anchore/syft officielle + versions pinnées
ci/woodpecker/push/woodpecker Pipeline failed
- anchore/syft:v1.42.3 (remplace alpine:3.20 + curl-install latest)
- aquasec/trivy:0.69.3 (remplace :latest)
- Source explicite docker:g1flux:latest pour éviter le bug
  d'auto-détection Syft dans un container Woodpecker

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 12:12:58 +01:00
syoul c54e76bb04 chore: ajouter .dockerignore pour accélérer le build Docker
ci/woodpecker/push/woodpecker Pipeline failed
Exclut node_modules, dist et docs du contexte de build.
Sans ce fichier, les 208 répertoires de node_modules étaient
transférés inutilement au démon Docker à chaque build.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 12:07:42 +01:00
syoul b7e8bade97 fix: bouton Clusters bottom-20 (au-dessus AnimationPlayer) + badge géo en blanc
ci/woodpecker/push/woodpecker Pipeline failed
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 11:59:16 +01:00
syoul 64682ea773 fix: déplacer bouton Clusters en bas à gauche (évite zoom + AnimationPlayer)
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 11:56:09 +01:00
syoul 53b1e9b399 fix: remonter le bouton Clusters pour éviter chevauchement avec zoom Leaflet
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 11:53:44 +01:00
syoul c51bb251e3 feat: bouton toggle Clusters / Villes dans la vue Flux
ci/woodpecker/push/woodpecker Pipeline was successful
Permet de basculer entre la vue groupée (clustering glouton, défaut)
et la vue individuelle (une ville = un nœud). Le bouton est positionné
en bas à droite de la carte.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 11:49:06 +01:00
syoul 851dc46394 fix: corriger layout desktop — StatsPanel w-72 fixe, w-full dans drawer mobile
ci/woodpecker/push/woodpecker Pipeline was successful
Remplace w-full lg:w-72 h-full (qui cassait les écrans 640-1023px) par
un prop className : w-72 shrink-0 par défaut (desktop), w-full flex-1
min-h-0 dans le drawer mobile.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 11:44:23 +01:00
syoul 786bf30a7b feat: popup liste des villes + balance au clic sur un cluster
ci/woodpecker/push/woodpecker Pipeline was successful
Affiche un panneau flottant au clic sur un nœud : liste des villes
du cluster triées par |balance|, balance nette colorée (orange/teal).
Se ferme sur déplacement/zoom de la carte ou via ✕.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 11:36:20 +01:00
syoul 839acf8aa8 fix: libellé badge géo → "XX% Tx géoloc."
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 11:26:50 +01:00
syoul ffe09ea44a feat: afficher le % géolocalisé dans la barre de contrôles
ci/woodpecker/push/woodpecker Pipeline was successful
Ajoute un badge "XX% géo" à droite du bouton Flux/Heatmap dans
PeriodSelector, mis à jour à chaque frame d'animation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 11:24:03 +01:00
syoul e4eb02560a Merge dev → main : v1.2.0
ci/woodpecker/push/woodpecker Pipeline was successful
- feat: coloration nœuds par balance nette (orange émetteur / vert récepteur)
- feat: clustering géographique des villes dans la vue Flux
- feat: adaptation mobile — drawer bottom + layout responsive
2026-03-24 11:11:27 +01:00
syoul 8e208d02ab chore: bump version to 1.2.0
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v1.2.0
2026-03-24 11:11:05 +01:00
syoul 16cebb6ec9 feat: adaptation mobile — drawer bottom + layout responsive
ci/woodpecker/push/woodpecker Pipeline was successful
Sur smartphone (< 640px) : panneau stats masqué par défaut, accessible
via un bottom drawer animé (bouton ☰). PeriodSelector passe en flex-wrap
avec padding tactile 44px. AnimationPlayer s'adapte à la largeur écran.
Badge ville focus affiché directement sur la carte en mode mobile.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 11:07:48 +01:00
syoul b6cb0af722 feat: clustering géographique des villes dans la vue Flux
ci/woodpecker/push/woodpecker Pipeline was successful
Regroupe les villes proches visuellement (CLUSTER_RADIUS = 38px) en un
seul nœud dont la couleur reflète la balance nette agrégée du groupe.
Affiche +N à l'intérieur des cercles multi-villes. Les arcs intra-cluster
sont ignorés. Le clustering se recalcule dynamiquement à chaque zoom/pan.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 01:20:00 +01:00
syoul 78b4762c88 feat: coloration des nœuds par balance nette (orange émetteur / vert récepteur)
ci/woodpecker/push/woodpecker Pipeline was successful
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 00:55:08 +01:00
syoul 5978ddfed3 release: v1.1.0
ci/woodpecker/push/woodpecker Pipeline was successful
2026-03-24 00:33:12 +01:00