From 0953237f543f67262071242ed8a60b46c2b9b21c Mon Sep 17 00:00:00 2001 From: Yvv Date: Tue, 3 Nov 2026 09:24:51 +0100 Subject: [PATCH] =?UTF-8?q?Acte=20M7=20:=20relecture=20=C2=AB=20b2e597b=20?= =?UTF-8?q?:=20=C3=A0=20reprendre=20=C2=BB=20(le=20dossier,=20pas=20le=20c?= =?UTF-8?q?ode)=20;=20corrig=C3=A9=20:=20l'administrateur=20r=C3=A8gle=20l?= =?UTF-8?q?e=20quorum=20des=2033=20articles=20du=20seed=20apr=C3=A8s=20M7?= =?UTF-8?q?=20(geste=20d'=C3=A9criture,=20d=C3=A9cision=20d'Yvv=20du=2002/?= =?UTF-8?q?11),=20captures=20de=20l'administrateur=20;=20captures=204=20et?= =?UTF-8?q?=205c=20reprises=20;=20mineurs=20en=20liste=20d'attente?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- actes/2026-11-03-m7-lecteur.md | 48 ++++++++++++++++++++++++++++++---- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/actes/2026-11-03-m7-lecteur.md b/actes/2026-11-03-m7-lecteur.md index dd96fd4..f612ee8 100644 --- a/actes/2026-11-03-m7-lecteur.md +++ b/actes/2026-11-03-m7-lecteur.md @@ -100,16 +100,27 @@ La revue d'Yvv du 02/11, ligne par ligne : « vote simulé » près de « Voter en lot ». « Vote enregistré. » : jamais vu. - Groupe d'essai (vote sur le serveur) : le vote est enregistré, pas simulé, comme il se doit. - Captures `geste-*-1-seed-vote-deplie.png`, `-2-seed-vote-simule.png`, `-4-proposition-vote-simule.png`, - `-11-essai-vote.png`. + `-11-essai-vote.png`. Les captures 4 et 5c de la première passe avaient été prises pendant la requête + (boutons grisés, « Tu n'as pas voté ») : **reprises le 03/11 à 09 h 22-09 h 23** sur une nouvelle + copie, après la réponse du serveur (« Ton vote : pour · simulé », « 1 pour · 0 contre dont 1 + simulé », panneau fermé ; `m7/recette-reprise.mjs`, `shots/reprise-rapport.json`, 6 étapes, 0 échec). 7. **L'ajout du 02/11 à 06 h 26, « combien il faut de oui pour passer et combien de non pour maintenir l'opposition »** - Avant tout vote : « 9 oui sur 12 votants pour passer » (Propositions seed, cran 2), le quorum dans l'infobulle (« Quorum : 12 votants. En dessous, les votants qui manquent comptent comme « non ». ») ; dans la liste, « 9 oui sur 12 » et « 39 oui sur 50 » (cran 3). Après un vote : « 9 oui pour passer · le quorum la bloque », « Il manque 8 voix pour. ». Essai : « 1 oui sur 1 votant pour passer ». - - **Le quorum de l'auteur** : sur les données de production, personne ne le règle (aucun article écrit - par un membre : `canSetQuorum` faux partout, étape 10). Il n'apparaît qu'à l'auteur d'un nouvel - article avant son premier vote : prouvé par C37 sur une base de test, pas vu sur ces données. + - **Le quorum de l'auteur** (corrigé après la relecture, voir prémisse 3) : la seule identité de la + production est **administratrice** (une invitation). Or l'administrateur fixe le quorum d'un texte du + seed tant que personne n'y a voté (décision d'Yvv du 02/11, registre : « L'auteur, avant le 1er vote + », un administrateur pour les textes du seed ; `trustin_access::sets_quorum`, ADR 0013). Sur les + données de production, `canSetQuorum` est donc **vrai sur les 33 articles pour l'administrateur** + (vu par le relecteur sur une copie fraîche ; 32 sur ma copie de reprise, où un vote de test venait + d'en fermer un) et faux pour un membre (étape 10). Après M7, chaque vote déplié lui montre « Quorum · + 12 votants », un champ et « Fixer ce quorum » : **un geste qui écrit** dans la base de production + (`units.quorum`, `quorum_changes`). La route est ouverte depuis M6 ; M7 la rend visible. Captures + `geste-bureau-12-admin-quorum.png`, `geste-telephone-12-admin-quorum.png` (reprise du 03/11 à 09 h 23, + le bouton jamais cliqué). L'auteur d'un nouvel article : prouvé par C37 sur une base de test. Vu en passant, **pas du lot U, déjà en ligne** : - « 0 contre » collé à « dont 1 simulé » (« 0 contredont 1 simulé ») : l'espace avant la marque se perd @@ -123,7 +134,11 @@ Vu en passant, **pas du lot U, déjà en ligne** : ## Effet attendu - Le lecteur d'un document change pour tout le monde (les deux groupes, fr, en, es) ; les données, les - votes, les textes et la publication ne changent pas. + votes, les textes et la publication ne changent pas à la mise en ligne. +- **Un geste d'écriture apparaît pour l'administrateur** (Yvv) : sur chacun des 33 articles, tant que + personne n'y a voté, le réglage du quorum dans le vote déplié (« Fixer ce quorum », « Revenir au + défaut »). Il écrit `units.quorum` et `quorum_changes` quand on s'en sert. Voulu (décision d'Yvv du + 02/11) ; à lui dire. - Le dépôt des textes reste à `9e0f45a`. Irréversibilité : **aucune** côté données ; le code se remet en arrière. @@ -133,6 +148,29 @@ Irréversibilité : **aucune** côté données ; le code se remet en arrière. 1. La production sert `bb4bdf5` : santé `"build":"bb4bdf58"` ; `prod/main` → `bb4bdf5`. 2. `git diff bb4bdf5 b2e597b -- crates seeds docker .woodpecker .env data` → vide. 3. La relecture indépendante de `b2e597b`, inscrite « ok » dans `~/harness/etat/relectures.json`. + **Première relecture** (sous-agent neuf, lancée à 09 h 05, rendue à 09 h 22) : « b2e597b : à reprendre + », **le dossier, pas le code** (« Le code peut partir tel quel »). Aucun bloquant. + - À reprendre : le dossier disait que personne ne règle le quorum sur les données de production ; + l'administrateur, seule identité, le peut sur les 33 articles. **Corrigé** (recette, point 7 ; Effet + attendu), captures de l'administrateur jointes. + - Ce qu'elle a vérifié de son côté : `needOf` reprend `yesNeeded` / `noNeeded` du serveur sans rien + recalculer ; réglage du quorum seulement si `canSetQuorum` ; le vote simulé jamais dit « enregistré » + (« Voter cette section » sur Conclusion : « 3 votes simulés. ») ; objections, coquilles, panier, + chaîne simulée, réglages tenus ; anciennes adresses `?onglet=` ; en et es sur téléphone sans reste de + français ni défilement ; ambiances sombres, mouvement réduit ; boucle web 0 / 0, 64 / 64, build ; e2e + 38 / 40 puis 40 / 40 (C1, C2 hors délai une fois sous charge, `reader.spec.ts` seul 15 / 15) ; sa + propre répétition (`.dump` : seules les 7 dates de reprise de la file) ; le retour. + - Mineurs, **liste d'attente** (lot U2 proposé) : deux captures prises trop tôt (reprises) ; cibles de + 36 px sur téléphone (« Tout déplier » `DeepList.svelte:225`, « Autres versions » `VoteFold.svelte:345`, + « Fixer ce quorum » `QuorumSetting.svelte:64`) ; « Si tout pa » coupé sur téléphone, sans indice de + défilement (`+page.svelte:525`) ; « Proposer cet ordre » éteint sans dire pourquoi + (`Reorder.svelte:196`, `order.edit.unchanged` jamais affiché) ; redites dans le vote déplié + (l'inertie deux fois, la ligne d'une Proposition seed au-dessus de son vote, l'autre version deux + fois) ; « N propositions en cours » compte les ordres ; un changement d'inertie proposé sur un ordre + ou le titre absent de « Propositions en cours » (aucun ouvert en production). + - Non vérifié par elle : la production (dont l'absence du marqueur `deploying`), la chaîne réelle, le + doigt sur un vrai téléphone, un lecteur d'écran, Firefox et Safari. Ses copies de la base de + production sont supprimées. 4. Boucle verte sur `b2e597b`, le 03/11 (journaux `m6/loop-m7.log`, `m7/e2e-c25.log`, `m7/e2e-all.log`) : - de 08 h 48 à 08 h 55 : fmt, clippy `-D warnings`, 294 tests Rust, svelte-check 0 / 0, 64 vitest, build ; e2e 39 / 40, **C25 (chaîne Ğ1 et téléphone) hors délai à 1,5 min**, la machine à une charge