From de8281f7f65931e644f6a189e26f73a4af3a2f19 Mon Sep 17 00:00:00 2001 From: Yvv Date: Tue, 3 Nov 2026 07:44:54 +0100 Subject: [PATCH] =?UTF-8?q?Acte=20M6b=20en=20pr=C3=A9paration=20sur=20bb4b?= =?UTF-8?q?df5=20(lot=20T)=20:=20r=C3=A9p=C3=A9tition=20sur=20une=20copie?= =?UTF-8?q?=20de=20la=20production=20d'apr=C3=A8s=20M6,=20pr=C3=A9misses,?= =?UTF-8?q?=20v=C3=A9rifications,=20retour?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Documentation seule. Co-Authored-By: Claude Opus 5.5 --- actes/2026-11-03-m6b-textes-quorum.md | 124 ++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 actes/2026-11-03-m6b-textes-quorum.md diff --git a/actes/2026-11-03-m6b-textes-quorum.md b/actes/2026-11-03-m6b-textes-quorum.md new file mode 100644 index 0000000..6b74917 --- /dev/null +++ b/actes/2026-11-03-m6b-textes-quorum.md @@ -0,0 +1,124 @@ +# Acte — Mise en ligne M6b (F1.1, F1.2 et N1.1 disent le quorum par cran) +Classe : déploie +Projet : libreDecision Date : 2026-11-03 +**État : EN PRÉPARATION** sur `bb4bdf5` (`bb4bdf58c114fb88ac4e154a7ffe0b06ff359b3e`) — préparé par +l'intégrateur libredecision-d4 ; exécuté par orch (dev-63) sous son mandat (« déploie » et « pousse », du +03/11 au 08/11). Relecture indépendante : en cours. + +## Intention + +Mettre en ligne le lot T : les trois articles du seed qui décrivaient encore l'ancien plancher C +(F1.1 « Formule du seuil WoT », F1.2 « Paramètres par défaut », N1.1 « Niveaux d'inertie ») disent le +quorum par cran (ADR 0013), en fr, en et es. + +**Décision d'orch (dev-63, 03/11 à 07 h 36)** : T part en M6b sans attendre la relecture d'Yvv, avec les +quatre défauts de l'intégrateur (Q13). Raison : le vote simulé est ouvert depuis M6 ; un vote, même +simulé, sur un de ces articles avant la mise en ligne figerait pour de bon le texte faux (l'amendement le +refuserait). Avec T en ligne, un vote figerait au pire un défaut de formulation, qu'un nouvel amendement +gardé corrigera tant qu'aucun vote n'a touché l'article. Les quatre questions vont à Yvv avec +`docs/chantiers/acte-certification/textes-quorum-seed.md`. + +Défauts appliqués (Q13) : F1.2 n'annonce pas l'intention de remonter l'inertie ; « Propositions seed » +dans le texte voté ; l'exemple de N1.1 (7 224 membres, 120 votants) gardé comme illustration ; le groupe +d'essai non nommé. + +## Ce qui part + +Version `bb4bdf5`, qui contient la version en ligne `94ddb17`. Code touché : +`crates/ld-server/src/seed_amend.rs` (l'amendement), `crates/ld-server/src/wot.rs` (`REFRESH` rendu +public pour un test), `seeds/acte-engagement-certification.json` (bases neuves), des tests ; le reste est +documentation. Configuration (`docker/`, `.woodpecker/`, `.env`, `data/`) : rien (vérifié le 03/11 à +07 h 37). + +## Ce que l'acte écrit dans la base de production (donnée runtime) + +- **Aucune migration.** +- **Amendement de seed gardé** `2026-11-03-f1-1-quorum`, `-f1-2-quorum`, `-n1-1-quorum`, décidé une fois + par document, dans une transaction, seulement si personne n'a touché l'article : 0 vote (simulé + compris), 0 ligne de bulletin, aucune coquille, traduction de membre ni objection, texte d'avant + identique à l'empreinte attendue ; pour F1.2 et N1.1, la révision 2 admise seulement si c'est + l'amendement de M5, et lui seul. + - `proposals` : titre et texte fr, révision + 1 (F1.1 → 2 ; F1.2 et N1.1 → 3) ; + - `revisions` : une ligne `amendment` (l'ancien texte gardé, diff) ; + - `translations` : en et es remplacés ; + - `seed_amendments` : la décision ; + - `outbox` : une ligne par article dans Monnaie libre, qui attend (publication suspendue) ; rien pour + l'essai. + Refus possibles, le texte d'avant reste : `not_a_seed`, `voted_into_force`, `confirmed`, `votes`, + `ballots`, `corrected`, `translation_edited`, `signalled`, `revised`, `text_differs`. +- Les amendements de M5 sur F1.2 et N1.1 sont marqués dépassés : ils ne décident plus rien. +- **Aucun vote, aucune autre proposition, aucun autre article n'est touché ; la publication reste + suspendue.** + +## Répétition + +**Faite le 03/11 de 07 h 43 à 07 h 44**, avec le serveur de `bb4bdf5` (binaire de la boucle), sur une copie +de la copie de production prise par orch à 07 h 36 min 53 (santé `94ddb175`), publication vers un dépôt nu +local (`m6/repetition.sh` ; journal `m6/repetition-m6b.log`, scratchpad de l'intégrateur). + +| | Avant | Après | +|---|---|---| +| F1.1 (deux groupes) | ouverte, seed, révision 1, 0 vote, 0 bulletin | révision 2 | +| F1.2, N1.1 (deux groupes) | ouvertes, seed, révision 2, 0 vote, 0 bulletin | révision 3 | +| Révisions | 107 | 113 | +| Traductions | 144 | 144 (en, es des trois articles remplacés) | +| `seed_amendments` | 10 | 16 | +| File de publication (Monnaie libre) | 4 en attente, 13 faites | 7 en attente, 13 faites | +| Commits vers le dépôt des textes (local) | — | 0 (« publication suspended ») | +| Tout le reste (`m6/counts.sh` : migrations 1–11, propositions, unités en vigueur, I1/E1/E2, `inertia_changes`, amendements de M6, votes, bulletins, signalements, identités) | | identique à la ligne près | + +`integrity_check` ok, `foreign_key_check` vide. Journal : six « seed amendment applied » +(`2026-11-03-f1-1-quorum`, `-f1-2-quorum`, `-n1-1-quorum` × essai, Monnaie libre), « publication +suspended », aucune ligne ERROR ni WARN. **Un second démarrage ne rejoue rien** (comptes identiques). + +## Effet attendu + +- Dans les deux groupes, F1.1, F1.2 et N1.1 montrent les nouveaux textes, en fr, en et es. +- Rien d'autre ne change ; le dépôt des textes reste à `9e0f45a`. + +Irréversibilité : **partielle**. Le code se remet en arrière ; les nouveaux textes restent (l'ancien est +dans l'historique de chaque proposition). + +## Avant — prémisses vivantes + +1. La production sert `94ddb17` : santé `"build":"94ddb175"` ; `prod/main` → `94ddb17`. +2. Sur une copie fraîche, `m6/m6b-premisse.sh ` (scratchpad de l'intégrateur, lecture seule) : + 6 lignes, toutes `open`, origine `seed`, révision 1 pour F1.1 et 2 pour F1.2 et N1.1, votes, + bulletins, coquilles et objections à 0 ; migration 11. Un article touché est refusé par l'amendement + avec sa raison, et l'acte reste valable pour les autres. **Lu par orch sur la copie de 07 h 36 min 53** + (santé `94ddb175`) : l'attendu exact ; 0 vote et 0 ligne de bulletin en tout. À relire sur la copie + fraîche juste avant la poussée. +3. La relecture indépendante de `bb4bdf5`, inscrite « ok » dans `~/harness/etat/relectures.json`. +4. `git diff 94ddb17 bb4bdf5 -- docker/ .woodpecker/ .env data/` → vide (vérifié à 07 h 37). +5. Boucle verte sur le code de `bb4bdf5` (arbre de `33f149b`, documentation seule en plus) le 03/11 de + 07 h 36 à 07 h 43 : fmt, clippy `-D warnings`, 294 tests Rust, svelte-check 0 / 0, 56 vitest, build, + e2e 36 / 36. Image de production : en construction (lancée à 07 h 43). + +## Commande exacte + +```sh +cd /home/yvv/Documents/PROD/DEV/libreDecision +git push prod bb4bdf58c114fb88ac4e154a7ffe0b06ff359b3e:main +``` + +## Vérifications après + +- [ ] Santé vue de l'extérieur → `"build":"bb4bdf58"`. +- [ ] Journaux : six « seed amendment applied » (F1.1, F1.2, N1.1 × essai, Monnaie libre), + « publication suspended », aucune ligne ERROR ni WARN. +- [ ] Redémarrage à froid : aucun amendement rejoué. +- [ ] Sur une copie fraîche : les trois articles à la nouvelle révision dans les deux groupes ; le reste + identique à la ligne près à la copie d'avant (comptes de `m6/counts.sh`) ; `integrity_check` ok. +- [ ] Le dépôt des textes reste à `9e0f45a`. + +## Retour + +- **Le code** : `docker tag libredecision-app:previous libredecision-app:latest`, puis + `cd /opt/libredecision-app && docker compose up -d --force-recreate`. `previous` sera `94ddb17`, qui + attend aussi le premier texte pour publier : pas de coupure de la publication à faire. +- **Les textes** : pas de retour automatique ; l'ancien texte reste dans l'historique de chaque + proposition, un nouvel amendement gardé pourrait le remettre. + +## Exécution + +(à remplir par orch)