§10 du contrat de données, à côté du §9. Le §9 disait que deux réponses de la même box peuvent employer deux conventions sans le signaler ; celui-ci dit que deux RÈGLES posées séparément, chacune juste, peuvent se contredire au point de rendre une écriture impossible. Symptôme identique : muet. L'app écrit verbatim (sinon un champ qu'une box plus récente porte serait perdu, en silence et pour toutes les charges) ; le moteur refuse rankOrigin: "auto" à tout client (sinon un écran fabriquerait une affirmation sur un geste du moteur). Leur produit : un simple renommage rejeté en bloc dès qu'une installation porte une borne auto-provisionnée. La règle doit porter sur le CHANGEMENT, pas sur la PRÉSENCE — même distinction que l'effacement de rankOrigin, qui porte sur « rang différent pour cet id » et non sur « écriture reçue ». Sinon la marque est fragile par construction : nettoyée à chaque écriture, le badge s'éteint sur une borne que personne n'a classée au premier renommage d'une autre charge. Une information qui s'efface au premier geste voisin ne vaut pas d'être publiée. Le §10 porte aussi le contrôle à passer une fois par règle d'écriture : l'app peut-elle lire la valeur (alors elle la renverra) · l'écho inchangé est-il tranché par écrit (sinon c'est un trou) · que devient l'information au premier geste voisin (si elle disparaît, la publier est un leurre). Et le motif derrière le motif, parce qu'il s'est répété : TROIS FOIS EN DEUX JOURS, le chemin exposé n'était pas celui qu'on regardait — l'écriture du mode visait la première borne (trouvé en déplaçant les boutons), le refus sur rangs doublés menaçait la suppression et non le glisser-déposer, le refus de "auto" menace le renommage et non la gestion des rangs. Le point commun n'est pas la malchance : ces chemins TRANSPORTENT des données qu'ils ne regardent pas, donc ils sont exposés à tout ce qui a été ajouté après eux. Le brief moteur passe de la question à la demande argumentée ; le nettoyage côté app reste, documenté comme contournement — le jour où l'écho passe, la fonction disparaît. 222 tests inchangés, analyze inchangé. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SQbZKrWqsMFP1Lh2jjjd9f
etm_powersync_app
A new Flutter project.
Getting Started
This project is a starting point for a Flutter application.
A few resources to get you started if this is your first Flutter project:
For help getting started with Flutter development, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.
Description
Languages
Dart
91.5%
C++
4.3%
CMake
3.3%
Swift
0.4%
HTML
0.3%
Other
0.2%