8.4 KiB
Acte — Mise en ligne M5 (une version retenue : « contre » et retrait ; les articles des règles réécrits ; la licence)
Classe : déploie
Projet : libreDecision Date : 2026-11-02
État : EXÉCUTÉ le 02/11/2026 — armé d'avance par Yvv (« Pousse. Déploie. », le 02/11, pour relire en ligne), relecture 0919b46+3f10a0e « ok »
ligne) ; on exécute à l'« ok » de la relecture de 0919b46+3f10a0e
Intention
Mettre en ligne ce qu'Yvv veut relire à l'écran : « Pour que je fasse une review, faut que je vois en ligne » (02/11). Trois choses partent :
- le lot G : sur une version retenue par une objection, on peut voter « contre » ou retirer son vote, jamais ajouter un « pour » (Yvv, 01/11) ;
- les articles des règles : F1.2, N1, N1.1 et O1 réécrits selon les règles appliquées (Yvv, 02/11). Ce sont des propositions ouvertes à 0 vote ; l'amendement de seed gardé remplace leur texte et leurs traductions dans les deux groupes. Yvv les relit en ligne ;
- la licence AGPL-3.0 (
LICENSE, champs des manifestes).
Le vote par la chaîne reste éteint : LD_VOTE_ACCOUNT n'est pas posé.
Ce qui part
Version : 3f10a0e, qui contient la version en ligne 4d4adcc ; 13 commits, 41 fichiers. Hors du
code (vérifié le 02/11 à 02 h 03) : rien dans docker/, .woodpecker/, .env ou data/, et aucun
fichier sensible.
Ce que l'acte écrit dans la base de production (donnée runtime)
- Aucune migration.
- Quatre amendements de seed gardés, décidés une fois par document et journalisés dans
seed_amendments(8 lignes). Chacun remplace le texte de la proposition ouverte1.0.0du seed (révision 1 → 2, une ligne d'historiqueamendment) et ses traductions en, es. Seulement si personne n'y a touché : 0 vote, révision 1, aucune coquille, traduction ni objection, et le texte du seed du 21/10 (empreinte). - La republication de Monnaie libre : 4 lignes en file ; rien pour le groupe d'essai.
- Aucun article en vigueur, aucun vote, aucune autre proposition n'est touché.
Répétition faite le 02/11 de 01 h 58 à 02 h 01, avec le serveur de 3f10a0e, sur une copie fraîche
de la base de production (santé 4d4adcc2), sans publication configurée.
| Avant | Après | |
|---|---|---|
| Migrations | 1–8 | 1–8 |
| Propositions | 90 | 90 |
| Les quatre, dans chaque groupe | révision 1, 0 vote, textes du 21/10 | révision 2, nouveaux textes |
| Autres propositions à une révision autre que 1 | I1 ×2 (Raison d'être, M1) | les mêmes |
| Révisions | 92 | 100 |
| Traductions | 144 | 144 (8 réécrites) |
seed_amendments |
2 | 10, toutes « applied » |
| File de publication | 7 | 11 (4 pour Monnaie libre : « proposition de départ réécrite : … ») |
| Votes, signalements, identités | 0, 0, 1 | 0, 0, 1 |
integrity_check ok, foreign_key_check vide. Un second démarrage ne rejoue rien (10 / 100 / 11).
Avant — prémisses vivantes
- La production sert
4d4adcc:curl -s https://decision.librodrome.org/api/health→"build":"4d4adcc2". git fetch prod && git rev-parse --short prod/main→4d4adcc.- La relecture
0919b46+3f10a0eest inscrite « ok » dans~/harness/etat/relectures.json, ainsi que celles de4d4adcc(M4) ; aucune autre relecture de ce code n'est en cours. git diff 4d4adcc 3f10a0e -- docker/ .woodpecker/ .env data/→ vide.- Boucle verte sur
3f10a0ele 02/11 vers 01 h 50 : 237 tests Rust, svelte-check sans avertissement, 55 vitest, e2e 35 / 35. Image de production construite le 02/11 à 02 h 02, sortie 0, avec les tests rejoués dedans. - Sur une copie fraîche de la base de production : les quatre propositions
1.0.0du seed (F1.2, N1, N1.1, O1) sont à la révision 1 et à 0 vote dans les deux groupes. Si l'une a bougé, l'amendement la laisse telle quelle, la refuse avec sa raison au journal, et l'acte reste valable.
Commande exacte
Selon la règle du canon du 02/11, un dossier « déploie » ne liste que la poussée qui met en ligne :
cd /home/yvv/Documents/PROD/DEV/libreDecision
git push prod 3f10a0e:main
Effet attendu
- Dans les deux groupes, F1.2, N1, N1.1 et O1 montrent les nouveaux textes, en fr, en et es.
- Sur une version retenue par une objection, « Contre » et « Retirer mon vote » ; jamais « Pour ».
- Le dépôt des textes reçoit une publication de Monnaie libre.
Irréversibilité : partielle. Le code se remet en arrière. Ce qui reste :
- les nouveaux textes des quatre propositions, à la révision 2, l'ancien texte étant gardé dans l'historique ;
- le commit publié.
Vérifications après
- Santé →
"build":"3f10a0e…", les huit premiers caractères. ssh sonic 'docker logs lpk-libredecision-app 2>&1 | grep -E "seed amendment|published|ERROR|WARN"'→ huit « seed amendment applied », une publication, aucune erreur.- Redémarrage à froid (
docker compose restart), puis santé vue de l'extérieur et journaux : aucun amendement rejoué. L'image n'a niwgetnicurl: la santé se lit depuis le poste. - Sur une copie fraîche : les comptes de la répétition, à la ligne près.
- À l'écran (Yvv) : Monnaie libre → Acte d'engagement → « Propositions en cours » : Paramètres par défaut, Réglage de l'inertie, Niveaux d'inertie, Ordonnancement du document.
Retour
- Le code :
docker tag libredecision-app:previous libredecision-app:latest, puiscd /opt/libredecision-app && docker compose up -d --force-recreate.previoussera alors4d4adcc, qui lit les modules ; le risque d'un retour vers8727315, décrit dans l'acte M4, ne se pose plus. - Les quatre textes : pas de retour automatique. L'ancien texte reste dans l'historique de chaque proposition ; un nouvel amendement gardé pourrait le remettre.
- Le commit publié : on publierait par-dessus.
Exécution
Acte exécuté le 02/11/2026, 02h53-03h10, par orch (session libreDecision).
- Armement : par Yvv dans cette session, d'avance (« Pousse. Déploie. »). Il voulait relire en ligne : « Pour que je fasse une review, faut que je vois en ligne ».
- Relecture : « 0919b46+3f10a0e : ok », inscrite à 02 h 53, sans bloquant.
Prémisses revérifiées à 02 h 53 :
- santé
4d4adcc2; prod/main=4d4adcc;- relectures inscrites ;
- aucune configuration changée ;
- boucle et image du 02/11 vers 02 h ;
- sur une copie fraîche, les quatre propositions
1.0.0à la révision 1 et à 0 vote dans les deux groupes. La copie a été retirée.
Mise en ligne :
- 02 h 58 :
git push prod 3f10a0e:main→4d4adcc..3f10a0e 3f10a0e -> main; - la santé répondait
4d4adcc2, puis n'a pas répondu à la sonde de 03 h 00 min 32, pendant la bascule ; à 03 h 04 min 15 :{"build":"3f10a0e8","ok":true}.
Journaux du démarrage (02 h 04 UTC) :
- huit lignes « seed amendment applied » (F1.2, N1, N1.1, O1 × essai, Monnaie libre) ;
published … commit="unchanged": la publication ne rend que les textes en vigueur, comme l'avait annoncé la relecture ;- aucune ligne ERROR ni WARN.
Image de retour : libredecision-app:previous, construite le 01/11 à 23 h 05 (4d4adcc).
Redémarrage à froid (03 h 07) :
- santé
3f10a0e8vue de l'extérieur,RestartCount0 ; - aucun amendement rejoué ;
- la reprise a publié un commit
17c4db2, qui ne change qu'une ligne dedocument.json:"electorate": 5708→5707, le nombre de membres relu sur la chaîne. C'est le fonctionnement prévu, sans rapport avec cet acte.
Invariants sur une copie fraîche, identiques à la répétition :
- migrations
1,…,8; - 90 propositions ; les quatre à la révision 2 dans les deux groupes ; les seules autres révisées sont I1 ×2 ;
- 100 révisions, 144 traductions, 0 vote, 0 signalement, 1 identité ;
seed_amendments: 10 lignes, toutes « applied » ;integrity_checkok,foreign_key_checkvide.
Retirés, parce qu'ils portaient des données réelles : la copie de la prémisse 6, la copie d'après et
la répétition /tmp/ld-repetition-m5. Image de contrôle et journal de construction retirés le 02/11
à 02 h 03.
À reprendre au prochain tour, avec la relecture d'Yvv en ligne :
- dans N1.1, G se calcule sur p̃ rapporté à W, pas sur un nombre de votants ;
- un second amendement d'un texte déjà amendé demande d'étendre la garde : la révision 2 et l'historique initial puis amendement doivent être admis.