# Contribuer à Ğecko, c'est facile!

**URL:** https://forum.duniter.org/t/contribuer-a-gecko-cest-facile/13880
**Category:** Ğecko
**Tags:** ia
**Created:** [11 June 2026 15:09 UTC](https://forum.duniter.org/t/contribuer-a-gecko-cest-facile/13880 "2026-06-11T15:09:22Z")
**Posts on this page:** 10
**Page:** 14

<div class="post-metadata">

### Author: ![Frederic\_LASSAVE](https://forum.duniter.org/user_avatar/forum.duniter.org/frederic_lassave/32/7360_2.png) [@Frederic\_LASSAVE](https://forum.duniter.org/u/Frederic_LASSAVE)
#### Post date: [13 August 2026 16:31 UTC](https://forum.duniter.org/t/contribuer-a-gecko-cest-facile/13880/267 "2026-08-13T16:31:30Z")

</div>

Merci Poka, effectivement, elle y est, je ne l’avais pas vu 🤓  
Je vais faire une mise à jour manuelle car il me semble lire “1.3.1+195” 😱

---

<div class="post-metadata">

### Author: ![Chiara07](https://forum.duniter.org/user_avatar/forum.duniter.org/chiara07/32/11954_2.png) [@Chiara07](https://forum.duniter.org/u/Chiara07)
#### Post date: [14 August 2026 18:00 UTC](https://forum.duniter.org/t/contribuer-a-gecko-cest-facile/13880/268 "2026-08-14T18:00:07Z")

</div>

bon le virement hors ligne n’est pas encore au point ,  
ma soeur a le bouton virement qui est grisé malgré le bandeau hors ligne  
et moi si je ferme et redémarre gecko il oubli les portefeuilles que j’ai pu ouvrir ! ou meme y faire un virement comme ma soeur !  
a voir si il peut memoriser mieux les infos une fois fermé ?

si d’autres peuvent tester dans la v1.7 le paiement hors ligne ?  
afin de voir si c’est episodique ou s’il faut remettre les pains dans le cambouis 😉

[EDIT]

> [@Claude](#):
>
> Correctif commité (bcd66f99). Voici où on en est.
> 
> Ce qui bloquait ta sœur — le bouton virement était conditionné à durt.isConnected, alors que la popup de paiement bascule seule en « mettre en file ». La file hors-ligne livrée en v1.7.0 était donc inatteignable depuis son point d’entrée principal, au moment exact où elle sert. Corrigé sur mobile et desktop ; seule l’absence de portefeuille émetteur désactive encore le bouton. Au passage, l’état de connexion était lu derrière blockHeightProvider, qui ne bouge jamais hors ligne  
> — le bouton pouvait donc rester grisé même après le retour du réseau.
> 
> Ton bug de persistance s’est révélé ne pas être un problème de cache du tout. Le verrou de la fiche attendait une donnée que l’écran n’affichait jamais : chaque bloc lit son propre provider, et WalletHeaderData ne servait qu’à décider s’il fallait afficher quelque chose. Comme storageStateProvider vaut notInitialized pendant toute la connexion d’un démarrage à froid, une fiche ouverte juste après le lancement tombait dans la branche hors-ligne en étant connectée, n’écrivait pas le cache, et n’était jamais réessayée — d’où le « jamais ouvert en ligne » d’un redémarrage à l’autre. Le verrou est supprimé, et avec lui la boîte wallet\_header\_cache devenue morte (fichier récupéré une fois au démarrage, comme g1WalletsBox avant lui).
> 
> Deux trouvailles au passage, que je n’avais pas anticipées :
> 
> - activity.dart portait le même verrou, avec un headerData passé à \_buildScaffold et jamais lu.  
> Hors ligne l’historique affichait « impossible de charger les données » alors qu’il était parfaitement affichable — y compris depuis le raccourci « voir l’historique » que la file propose justement sans réseau.
> - Le header et sa barre de titre desktop calculaient séparément et différemment le verdict «portefeuille vide ». Un solde inconnu était compté comme nul côté corps, ce qui teintait en rouge le header d’un portefeuille financé à chaque reconnexion. Prédicat désormais partagé (walletLooksEmpty).
> 
> * * *
> 
> Le bloquant
> 
> Mes trois garde-fous hors-ligne lisaient StorageState.offlineMode. Or durt2 ne lève ce drapeau  
> qu’une fois, avant sa première connexion réussie, et l’efface définitivement dès qu’un lien s’établit (duniter\_connector.dart:600) — rien ne le remet jamais. Donc une session qui démarre en ligne puis perd le réseau ne signale jamais offlineMode.
> 
> C’est exactement le scénario de la file : l’app ouverte à la maison, utilisée sur un marché sans signal. Ma dégradation y était inerte, et pire, le message explicatif qui existait avant était perdu au passage — donc une légère régression sur ce cas précis.
> 
> J’ai vérifié le constat moi-même dans le source de durt2 avant d’y toucher, et j’y ai trouvé une nuance que l’auditeur avait à l’envers : au démarrage à froid c’est offlineMode qui domine, pas notInitialized. Ma version initiale aurait donc aussi fait clignoter la notice « hors connexion » à chaque lancement. Corrigé par un isOfflineProvider partagé, fondé sur le statut du lien Duniter (disconnected/error), connecting volontairement exclu — et Durt().init() étant attendu avant runApp, aucun widget ne peut observer le disconnected initial.
> 
> Autres retours appliqués
> 
> - Le verdict « portefeuille vide » restait dupliqué dans activity.dart et compact\_wallet\_header.dart, avec une variante qui traitait un flux en erreur comme un solde nul.  
> Conséquence concrète : la modale d’activité desktop pouvait afficher un corps rouge sous une barre de titre neutre. Les deux passent à walletLooksEmpty.
> - La notice n’existait que sur mobile → extraite en OfflineProfileNotice et ajoutée à la modale desktop (règle de double layout).
> - Espagnol : « Aún así » → « Aun así » (RAE). Et « ne peuvent pas être vérifiés » devenait faux pour son propre portefeuille, dont le solde reste servi par les données de coffre → « mis à jour ».
> - \_buildScaffold() devenu une indirection vide, inlinée ; commentaires d’archéologie allégés.
> 
> Ce que l’audit a confirmé comme sain
> 
> - Règle du code PIN respectée à la lettre, aucun accès au champ statique.
> - Usurpation par nom CesiumPlus : démontrée inatteignable. Le nouveau chemin ne s’ouvre que quand !hasCachedData, ce qui implique idtyStatus == null, et les deux lectures d’un nom auto-déclaré sont gardées sur un statut non nul.
> - Performance nettement positive : −2 à 3 RPC par ouverture de fiche, −3 par ouverture d’historique (tous vérifiés redondants ou sans consommateur), suppression d’un rebuild du bouton virement à chaque bloc (~10/min), extinction d’animations infinies, et retrait d’une boîte Hive non-lazy à croissance non bornée ouverte à chaque lancement.
> - typeId 6 et 7 libérés sans collision ; deleteBoxFromDisk ne désérialise pas, donc aucun risque à la mise à jour.
> - Un crash latent corrigé au passage : avec zéro portefeuille et une connexion, l’ancien bouton mobile atteignait un all.first sur liste vide.
> 
> 549 tests verts (540 de base + 9), flutter analyze propre, gate format OK.
> 
> Deux réserves assumées, signalées et non traitées : côté durt2, getBalance renvoie WalletBalance.empty() hors ligne, donc un vrai zéro peut être émis si la connexion tombe pendant l’appel (correctif amont, hors périmètre) ; et le risque de débordement de la notice en mode compact reste à vérifier à l’œil — c’est le seul point que ni les tests ni l’analyse statique ne peuvent trancher.

---

<div class="post-metadata">

### Author: ![Chiara07](https://forum.duniter.org/user_avatar/forum.duniter.org/chiara07/32/11954_2.png) [@Chiara07](https://forum.duniter.org/u/Chiara07)
#### Post date: [25 August 2026 11:15 UTC](https://forum.duniter.org/t/contribuer-a-gecko-cest-facile/13880/269 "2026-08-25T11:15:27Z")

</div>

Avez la version 1.7.1 où vous avez pu découvrir le virement hors ligne,  
avec la prochaine version :

La visualisation des sommes en G1/DU indépendamment du choix dans les paramètres, cela permet d’avoir le calcul instantanément de ses coffres en cliquant dessus mais aussi lors d’un virement avoir le calcul plutôt que le même chiffre.

Autre grand projet (d’après une idée de @vjrj ):  
**le terminal de paiement :**  
Afin qu’un vendeur puisse présenter la note a un acheteur , y mettre aussi un commentaire que l’acheteur peut a son tour agrémenter ,  
calculer en DU ou en G1 (cependant le virement se fait en G1 pour des raisons de calcul du DU (qui ne peut être reporté)  
Ce QRcode fonctionne aussi en hors connexion et en capture écran

toute l’action peut donc se faire hors connexion

pour vous donner un aperçu:

 ![photo_2026-08-25_12-09-37](https://forum.duniter.org/uploads/default/original/2X/8/83e910ebee9c65edf8b7ad0c3662bf72436ffb45.jpeg)  
 ![image](https://forum.duniter.org/uploads/default/original/2X/c/ccda765bcb992b175c9e4f8293ee4e1c312ff22f.jpeg)

si vous voulez tester sur android il y a un artefact

> **[build:android:apk (#187433) · Jobs · Chiara07 / Ğecko · GitLab](https://git.duniter.org/Chiara07/gecko/-/jobs/187433)**
>
> Pay with Ğ1

testé sur et depuis Ginkgo

Merci de vos retours si vous voyez un bug, sachant que ce n’est pas encore fusionné donc il doit rester des imperfections !

---

<div class="post-metadata">

### Author: ![Chiara07](https://forum.duniter.org/user_avatar/forum.duniter.org/chiara07/32/11954_2.png) [@Chiara07](https://forum.duniter.org/u/Chiara07)
#### Post date: [5 September 2026 17:29 UTC](https://forum.duniter.org/t/contribuer-a-gecko-cest-facile/13880/270 "2026-09-05T17:29:33Z")

</div>

Je reprends un peu les modifs:

1. Clarifier a quoi correspond la synchronisation des contacts (Gecko) et pas du telephone:

> [@Claude](#):
>
> #238 « contacts Ğecko » + « le carnet d’adresses de votre téléphone n’est pas concerné ».

 ![Capture d'écrans_20260905-203741](https://forum.duniter.org/uploads/default/original/2X/9/9511fb42d670f3e582a231906bfe190818d9fd39.png)

1. noeuds en auto pas toujours par defaut a la premiere installation  
Correction d’un bug :

> [@Claude](#):
>
> #237 était un bug d’affichage pur : autoEndpoint n’était écrit qu’au premier changement de nœud, donc absent sur une install neuve, et les 6 sites de lecture testaient == true → « Manuel » affiché alors que durt2 découvrait bien un nœud tout seul. Le getter tranche maintenant : auto par défaut tant qu’aucun endpoint perso n’est enregistré. 4 tests ajoutés.

1. Afficher l’option commentaire lors d’un virement :

> [@Claude](#):
>
> #236- Champ ouvert d’emblée. toggleCommentVisibility() → setCommentVisible(bool) : avec un défaut ouvert, une bascule aveugle refermait la ligne sur les deux chemins qui voulaient l’ouvrir.
> 
> - En chemin j’ai trouvé un vrai bug : replier puis déplier ramenait à l’écran un commentaire que  
> l’état avait déjà abandonné → le virement partait sans le texte pourtant affiché. Le contrôleur  
> est vidé maintenant. 4 tests.

1. Copier/coller selectif dans la messagerie pour téléphone en ajout de l’appuie long:

> [@Claude](#):
>
> #235 - La sélection de texte native vaut désormais aussi sur mobile ; la barre de sélection porte une entrée « Copier le message » pour ne pas perdre le geste existant. L’astuce en haut du fil a été réécrite en conséquence.

1. Modification a la réception d’une invitation a devenir membre ,

> [@Claude](#):
>
> #239 - « Invitation à devenir membre » + Accepter / Refuser. Accepter mène au choix du nom, inchangé.  
> Refuser explique d’abord (rien à annuler sur la chaîne), puis range l’invitation, par adresse,  
> réversible via « Revoir l’invitation ». 4 tests.

1. réparation de la Gtest qui n’arrivait pas a me connecter a duniter index ! j’arrive maintenant a me connecter en gtest sur burmananabelle manuellement car il y a une limite . par contre je n’ai plus mon statu de membre et sur ginkgo non plus, claude cherche pourquoi.  
Bon mon compte est inconnu pour cause d’abandon de la Gtest  
on va tester en widget local → solution impossible !

---

<div class="post-metadata">

### Author: ![Vivakvo](https://forum.duniter.org/user_avatar/forum.duniter.org/vivakvo/32/4386_2.png) [@Vivakvo](https://forum.duniter.org/u/Vivakvo)
#### Post date: [9 September 2026 07:45 UTC](https://forum.duniter.org/t/contribuer-a-gecko-cest-facile/13880/271 "2026-09-09T07:45:04Z")

</div>

Bonjour,  
Concernant les traductions, j’ai remarqué que les dates étaient bien traduites automatiquement dans la liste des opérations pour toutes les langues sauf pour l’espéranto (où elles apparaissent en anglais) 🙂

 ![date en espéranto](https://forum.duniter.org/uploads/default/original/2X/d/db1f974fe82f72e4db07f64639ddc47ed75b3ac3.jpeg)  
Je sais qu’il existe des librairies de dates pour l’espéranto (Cesium utilisait moment.js à ma connaissance [https://momentjs.com/](https://momentjs.com/)), alors je me demandais si Gecko pourrait afficher aussi des dates en espéranto.  
Merci par avance

---

<div class="post-metadata">

### Author: ![Chiara07](https://forum.duniter.org/user_avatar/forum.duniter.org/chiara07/32/11954_2.png) [@Chiara07](https://forum.duniter.org/u/Chiara07)
#### Post date: [9 September 2026 10:14 UTC](https://forum.duniter.org/t/contribuer-a-gecko-cest-facile/13880/272 "2026-09-09T10:14:27Z")

</div>

> [@Vivakvo](#):
>
> Concernant les traductions, j’ai remarqué que les dates étaient bien traduites automatiquement dans la liste des opérations pour toutes les langues sauf pour l’espéranto (où elles apparaissent en anglais) 🙂

j’ai remarque que si la traduction est vide cela passe a l’anglais par defaut en effet !  
a corriger

---

<div class="post-metadata">

### Author: ![poka](https://forum.duniter.org/user_avatar/forum.duniter.org/poka/32/6827_2.png) [@poka](https://forum.duniter.org/u/poka)
#### Post date: [9 September 2026 10:19 UTC](https://forum.duniter.org/t/contribuer-a-gecko-cest-facile/13880/273 "2026-09-09T10:19:45Z")

</div>

Yep, j’avais configuré l’anglais comme langue de fallback par defaut.  
Vous pouvez changer pour mettre le swahili en fallback si vous voulez.

---

<div class="post-metadata">

### Author: ![Vivakvo](https://forum.duniter.org/user_avatar/forum.duniter.org/vivakvo/32/4386_2.png) [@Vivakvo](https://forum.duniter.org/u/Vivakvo)
#### Post date: [9 September 2026 11:12 UTC](https://forum.duniter.org/t/contribuer-a-gecko-cest-facile/13880/274 "2026-09-09T11:12:53Z")

</div>

Il vaut mieux laisser l’anglais comme langue par défaut, mais si @Chiara07 sait mettre les dates en espéranto pour la langue espéranto, ce serait chouette.  
Sinon, je veux bien traduire les dates en espéranto, mais je n’ai rien trouvé à ce sujet dans le weblate.

---

<div class="post-metadata">

### Author: ![Chiara07](https://forum.duniter.org/user_avatar/forum.duniter.org/chiara07/32/11954_2.png) [@Chiara07](https://forum.duniter.org/u/Chiara07)
#### Post date: [9 September 2026 11:33 UTC](https://forum.duniter.org/t/contribuer-a-gecko-cest-facile/13880/275 "2026-09-09T11:33:27Z")

</div>

> [@Vivakvo](#):
>
> si @Chiara07 sait mettre les dates en espéranto pour la langue espéranto, ce serait chouette.

Claude va nous trouver cela pas de soucis, je le note avant d’oublier 😘

edit

> [@Claude](#):
>
> Diagnostic pour #245 : les symboles de date espéranto sont bien enregistrés  
> (lib/services/eo\_date\_symbols.dart), mais safeLocale (lib/utils.dart:20) exige aussi des  
> données numériques, que intl n’a pas pour eo → safeLocale(‘eo’) retourne ‘en’, et toutes  
> les dates repassent en anglais.
> 
> Je corrige à la racine : fournir les symboles numériques espéranto, comme on fournit déjà  
> ceux de date.

---

<div class="post-metadata">

### Author: ![Chiara07](https://forum.duniter.org/user_avatar/forum.duniter.org/chiara07/32/11954_2.png) [@Chiara07](https://forum.duniter.org/u/Chiara07)
#### Post date: [18 September 2026 12:22 UTC](https://forum.duniter.org/t/contribuer-a-gecko-cest-facile/13880/276 "2026-09-18T12:22:02Z")

</div>

> [@Vivakvo](#):
>
> Concernant les traductions, j’ai remarqué que les dates étaient bien traduites automatiquement dans la liste des opérations pour toutes les langues sauf pour l’espéranto (où elles apparaissent en anglais) 🙂

> **[Espéranto : les dates repassaient en anglais (#245) (!162) · Merge requests ·...](https://git.duniter.org/clients/gecko/-/merge_requests/162)**
>
> Le problème Ğecko fournit lui-même les symboles de date espéranto depuis lib/services/eo\_date\_symbols.dart, puisque le...

[Previous page](https://forum.duniter.org/t/contribuer-a-gecko-cest-facile/13880.md?page=13)
