forked from yvv/decision
Dossier d'acte M2 + M3a figé sur 74f96be (vote par la chaîne éteint) ; tableau : B relu, B2 lancé, Q8
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,131 @@
|
||||
# Acte — Mise en ligne M2 + M3a (le vote déplié et groupé, l'inertie à cinq crans)
|
||||
Classe : déploie
|
||||
Projet : libreDecision Date : 2026-10-31
|
||||
**État : FIGÉ (2026-10-31, 01 h 30)** sur `74f96be` — relectures « a576b68 : ok », « 71819f9 : ok »,
|
||||
« 74f96be : ok » inscrites
|
||||
|
||||
## Intention
|
||||
|
||||
Mettre en ligne en une fois les points L9 et L10 de la revue d'Yvv du 30/10 :
|
||||
- L10 (lot C, déjà relu, dossier M3a) : l'inertie à cinq crans, l'échelle calée sur la
|
||||
participation, les réglages de la formule ;
|
||||
- L9 (lot B) :
|
||||
- le vote qui se déplie sous l'article, avec ton vote, les totaux et la distance au seuil ;
|
||||
- le vote groupé (document, section, article) dans un panier ;
|
||||
- le vote par transaction Ğ1, livré **éteint**.
|
||||
|
||||
**Le vote par la chaîne reste éteint** : `LD_VOTE_ACCOUNT` n'est pas posé. La relecture de
|
||||
`74f96be` a relevé trois défauts à corriger avant de l'ouvrir (lot B2, en cours), et Yvv doit
|
||||
encore trancher le secret du vote, l'extension et le compte de vote. Dans Monnaie libre,
|
||||
l'écran dit pourquoi on ne peut pas encore voter. Dans le groupe d'essai, le vote marche côté
|
||||
serveur, déplié et groupé.
|
||||
|
||||
Si cet acte est armé, il **remplace** le dossier M3a (`actes/2026-10-30-m3-inertie-cinq-crans.md`),
|
||||
qui n'aura plus d'objet. Tout ce que M3a écrit en base est repris ici.
|
||||
|
||||
## Ce qui part
|
||||
|
||||
Version : `74f96be`, qui contient la version en production `8727315`. En plus de M3a
|
||||
(`8727315..71819f9`, voir son dossier) :
|
||||
- lot B : `3541e1b` (le vote par la chaîne, moteur et serveur), `b260596` (le vote déplié, le
|
||||
panier, la signature), `ef27165` (« Voter en lot »), `032fcbb` (ADR 0008, contrôles C21–C24) ;
|
||||
- la fusion `74f96be`.
|
||||
|
||||
Ce qui change hors du code : `docker/app-compose.yml` reçoit **trois lignes de commentaire** (où
|
||||
poser `LD_VOTE_ACCOUNT`), et rien d'autre (prémisse 4). Nouvelles dépendances :
|
||||
- `polkadot-api` (67 Ko compressés, chargé seulement au moment de signer) ;
|
||||
- `uqr` (4 Ko, le QR code) ;
|
||||
- la crate `blake2`.
|
||||
|
||||
## Ce que l'acte écrit dans la base de production (donnée runtime)
|
||||
|
||||
- **Tout ce que dit le dossier M3a** :
|
||||
- migration `0005` (crans, avec les anciens mots gardés) ;
|
||||
- amendements gardés « E1 et E2 au cran 4 » ;
|
||||
- mesure de participation dans `settings` ;
|
||||
- republication de Monnaie libre.
|
||||
- **La migration `0006`**, additive :
|
||||
- tables `ballots` et `ballot_lines` ;
|
||||
- quatre colonnes ajoutées à `votes` (`source`, `server` par défaut ; `block`, `event_index`,
|
||||
`ballot_id`) ;
|
||||
- aucun vote réécrit (il n'y en a aucun en production).
|
||||
- **Répétition faite le 31/10 à 01 h 25**, avec le serveur de cette version, sur une copie
|
||||
fraîche de la base de production (la santé disait `87273156`) :
|
||||
- migrations 1 à 6 appliquées ;
|
||||
- 4 « inertia amendment applied » ;
|
||||
- 62 articles au cran 3, 4 au cran 4 ;
|
||||
- 0 bulletin, 0 vote, une identité ;
|
||||
- `integrity_check` ok, `foreign_key_check` vide.
|
||||
|
||||
## Avant — prémisses vivantes
|
||||
|
||||
1. La production sert `8727315` : `curl -s https://decision.librodrome.org/api/health` →
|
||||
`"build":"87273156"`. Si elle sert `71819f9` (M3a déjà en ligne), l'acte reste valable :
|
||||
seule la migration `0006` s'applique alors.
|
||||
2. `git fetch prod && git fetch origin && git rev-parse --short prod/main && git rev-parse --short origin/main`
|
||||
→ la même version que la santé, deux fois.
|
||||
3. Les relectures `a576b68`, `71819f9` et `74f96be` sont inscrites « ok » dans
|
||||
`~/harness/etat/relectures.json`. Aucune autre relecture de ce code n'est en cours.
|
||||
4. `git diff 8727315 74f96be -- docker/app-compose.yml .woodpecker/ .env data/` ne montre que
|
||||
les trois lignes de commentaire sur `LD_VOTE_ACCOUNT` (vérifié le 31/10 à 01 h 30). Et sur sonic,
|
||||
`grep -c LD_VOTE_ACCOUNT /opt/libredecision-app/secrets.env` → `0`, ou fichier absent : le
|
||||
vote par la chaîne reste éteint (fichier absent le 31/10 à 01 h 30).
|
||||
5. La boucle est verte sur `74f96be` : fait le 31/10 vers 0 h 15 (149 tests Rust, svelte-check
|
||||
0 avertissement, 32 vitest, e2e 25 / 25). L'image de production se construit (sortie 0).
|
||||
6. Sur une copie fraîche de la base de production :
|
||||
- `SELECT inertia, COUNT(*) FROM units GROUP BY 1` → `standard|66` (ou, si M3a est en
|
||||
ligne, `3|62` et `4|4`) ;
|
||||
- `SELECT COUNT(*) FROM votes` → `0` ;
|
||||
- `SELECT COUNT(*) FROM adoptions WHERE kind = 'inertia'` → `0`.
|
||||
|
||||
## Commandes exactes
|
||||
|
||||
```sh
|
||||
cd /home/yvv/Documents/PROD/DEV/libreDecision
|
||||
git push prod 74f96be:main
|
||||
git push origin 74f96be:main
|
||||
git push origin chantier/acte-certification
|
||||
```
|
||||
|
||||
## Effet attendu
|
||||
|
||||
Les visiteurs voient :
|
||||
- l'inertie en crans et les réglages de la formule ;
|
||||
- « Le vote » qui se déplie sous l'article ;
|
||||
- « Voter en lot » et « Voter cette section », et le panier ;
|
||||
- dans Monnaie libre, la raison pour laquelle on ne vote pas encore.
|
||||
|
||||
E1 et E2 passent au cran 4. Le dépôt des textes reçoit un `document.json` qui porte les crans.
|
||||
|
||||
Irréversibilité : **partielle**. Le code se remet en arrière. Ce qui reste :
|
||||
- les crans écrits en base, avec les mots d'origine à côté ;
|
||||
- E1 et E2 au cran 4 ;
|
||||
- les tables du vote, vides ;
|
||||
- le commit publié dans le dépôt des textes.
|
||||
|
||||
## Vérifications après
|
||||
|
||||
- [ ] `curl -s https://decision.librodrome.org/api/health` → `"build":"74f96bec"`.
|
||||
- [ ] `ssh sonic 'docker logs lpk-libredecision-app 2>&1 | grep -E "inertia amendment|participation measured|published|ballot"'`
|
||||
→ quatre « inertia amendment applied », les mesures, une publication, aucune erreur de
|
||||
bulletin.
|
||||
- [ ] À l'écran (Yvv) :
|
||||
- Monnaie libre → Acte d'engagement → « Le vote » sous la Raison d'être se déplie, et dit
|
||||
que le vote par la chaîne n'est pas encore ouvert ;
|
||||
- les réglages de la formule montrent la référence de 100 votants ;
|
||||
- dans le groupe d'essai, voter « Pour » sous un article marche, et le panier groupe une
|
||||
section.
|
||||
|
||||
## Retour
|
||||
|
||||
- **Le code**, au plus court, sur sonic : `docker tag libredecision-app:previous libredecision-app:latest`,
|
||||
puis `cd /opt/libredecision-app && docker compose up -d --force-recreate`.
|
||||
- **Vers `71819f9`** : la relecture a montré qu'elle tolère la migration `0006` et continue
|
||||
d'écrire ses votes.
|
||||
- **Vers `8727315`** : pas de perte, mais l'affichage se dégrade. Ce sont les clés brutes
|
||||
« inertia.3 », les propositions vers 5 lues « vers standard », d'adoption impossible. Voir le
|
||||
dossier M3a. On n'y reste pas.
|
||||
- **Les crans, E1 et E2 au cran 4, les tables du vote** : pas de retour automatique. Elles sont
|
||||
additives, ou gardent l'ancien mot à côté.
|
||||
- **Le commit publié** dans le dépôt des textes : on ne le retire pas sans réécrire l'historique
|
||||
de ce dépôt, ce qui serait un acte « supprime ». On publierait par-dessus.
|
||||
@@ -38,7 +38,8 @@ chaîne (question stratégique, `docs/recherche/vote-g1-chaine.md`) ; l'affichag
|
||||
|---|---|---|---|---|
|
||||
| A | L1–L6 : entrée, DA, menu, listes, Décisions | high | **en ligne** 30/10 15 h 45 | `lot/a-entree` |
|
||||
| R | L7–L8 : Raison d'être (amendement de seed gardé), versions groupées | high | **en ligne** 30/10 15 h 45 | `lot/r-texte` |
|
||||
| B | L9 : vote déplié, vote groupé, vote par transaction de 0,1 Ğ1 | xhigh | fusionné (`74f96be`), boucle verte, image construite ; relecture en cours | `lot/b-vote` |
|
||||
| B | L9 : vote déplié, vote groupé, vote par transaction de 0,1 Ğ1 | xhigh | fusionné et relu (`74f96be`) ; acte M2 figé (vote par la chaîne éteint) | `lot/b-vote` |
|
||||
| B2 | Corrections du vote avant de l'ouvrir (relecture de `74f96be`, points 2 à 8) | xhigh | lancé le 31/10 01 h 10 | `lot/b2-vote-sur` |
|
||||
| C | L10 : cinq crans, échelle, réglages | xhigh | fusionné et relu (`a576b68`, `71819f9`) ; acte M3a figé | `lot/c-inertie` |
|
||||
| D | L11 + titre du doc en module (4) + restes mineurs des relectures | high | lancé le 31/10 | `lot/d-modules` |
|
||||
| F | L12–L13 : objections, coquilles validées, messages, délai de 3 jours | xhigh | lancé le 31/10 | `lot/f-objections` |
|
||||
@@ -54,6 +55,7 @@ chaîne (question stratégique, `docs/recherche/vote-g1-chaine.md`) ; l'affichag
|
||||
| Q5 | Secret du vote (Q2) et transaction publique (Q1) : le commentaire porte le choix en clair, ou une empreinte scellée ? | défaut : empreinte scellée (la chaîne montre qui a voté et quand, pas quoi) |
|
||||
| Q6 | Ğ1Companion ne signe pas encore une transaction construite par une page : quelle extension pour le geste unique ? | défaut : duniter-connect maintenant (Ğ1Companion et trustinWallet se brancheront sur la même interface), lien et QR Ğecko sur mobile |
|
||||
| Q7 | Le compte qui reçoit les 0,1 Ğ1 : à qui, et que deviennent les sommes ? | défaut : un compte libreDecision créé par Yvv dans Ğecko, les sommes restent au collectif |
|
||||
| Q8 | Le secret du vote tombe par recoupement : la chaîne montre qui vient de voter, et les totaux bougent aussitôt (relecture de `74f96be`) | à trancher avant d'ouvrir le vote ; pas de défaut posé |
|
||||
|
||||
Défauts posés par orch, sans question (Yvv peut les corriger) :
|
||||
- Décisions : « modules restant à voter » = les modules du doc pas encore adoptés par un vote
|
||||
@@ -69,7 +71,8 @@ Défauts posés par orch, sans question (Yvv peut les corriger) :
|
||||
## Actes
|
||||
|
||||
- M1 : **exécuté** le 30/10/2026, 15 h 29 – 15 h 52 (`actes/2026-10-30-m1-mise-en-ligne.md`).
|
||||
- M3a (L10) : **figé** sur `71819f9` (`actes/2026-10-30-m3-inertie-cinq-crans.md`), relectures inscrites, attend « déploie ».
|
||||
- M3a (L10) : **figé** sur `71819f9` (`actes/2026-10-30-m3-inertie-cinq-crans.md`), attend « déploie ».
|
||||
- M2 + M3a (L9 et L10) : **figé** sur `74f96be` (`actes/2026-10-31-m2-vote.md`), le vote par la chaîne éteint ; remplace M3a s'il est armé.
|
||||
|
||||
Restes mineurs pour le lot D (relecture de `71819f9`, captures du lot B) : « seed a minima · 0 vote » affiché à côté des totaux ; pourcentage des réglages calculé sur le nombre arrondi ; liste explicite des statuts comptés dans la médiane ; affichage de la participation ramenée couvert par un e2e ; formulation « les seuils se calculent sur » (mettre le groupe en sujet) ; flèches du sélecteur de crans.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user