From 4115b1c8acc5b999ba899b7bacd036577d5f9952 Mon Sep 17 00:00:00 2001 From: Yvv Date: Tue, 3 Nov 2026 06:23:22 +0100 Subject: [PATCH] =?UTF-8?q?Acte=20M6=20fig=C3=A9=20sur=2094ddb17=20(H,=20S?= =?UTF-8?q?,=20V)=20:=20r=C3=A9p=C3=A9tition=20sur=20une=20copie=20de=20la?= =?UTF-8?q?=20production,=20=C3=A9critures=20en=20base,=20effet=20attendu,?= =?UTF-8?q?=20v=C3=A9rifications,=20retour=20;=20le=20brouillon=20retir?= =?UTF-8?q?=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Documentation seule. Co-Authored-By: Claude Opus 5.5 --- ...1-03-m6-propositions-seed-quorum-tampon.md | 172 ++++++++++++++++++ .../acte-certification/M6-brouillon.md | 162 ----------------- docs/chantiers/acte-certification/tableau.md | 3 +- 3 files changed, 174 insertions(+), 163 deletions(-) create mode 100644 actes/2026-11-03-m6-propositions-seed-quorum-tampon.md delete mode 100644 docs/chantiers/acte-certification/M6-brouillon.md diff --git a/actes/2026-11-03-m6-propositions-seed-quorum-tampon.md b/actes/2026-11-03-m6-propositions-seed-quorum-tampon.md new file mode 100644 index 0000000..d361385 --- /dev/null +++ b/actes/2026-11-03-m6-propositions-seed-quorum-tampon.md @@ -0,0 +1,172 @@ +# Acte — Mise en ligne M6 (Propositions seed, quorum par cran, tampon des votes et vote simulé, accueil sous la voûte) +Classe : déploie +Projet : libreDecision Date : 2026-11-03 +**État : FIGÉ** le 03/11/2026 à 06 h 22 sur `94ddb17` (`94ddb175643c8d523a083bbfee3882f22b82f628`) — 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 (voir la prémisse 4). + +## Intention + +Mettre en ligne la revue d'Yvv du 02/11 et ses décisions du 02/11 et du 03/11 (registre) : +- **H** : l'accueil sous la voûte, les trois points sous l'arche, le titre centré en deux lignes + (`a3c0a76`) ; +- **S** : les Propositions seed (I1, E1, E2 ouvertes, au cran 2, ADR 0011), la publication suspendue sans + texte en vigueur, le quorum par cran (ADR 0013, `PUT /units/{id}/quorum`), la licence + `AGPL-3.0-or-later` (`349c8ed`) ; +- **V** : le tampon des votes (ADR 0012), le vote simulé partout tant que la chaîne est fermée, marqué + « simulé », qui compte puis s'efface par l'acte « supprime » ; la publication « pas avant des votes + prouvés » (`94ddb17`). + +Hors de M6 : T (les articles du seed qui décrivent encore l'ancien plancher C : F1.1, F1.2, N1.1), puis U +(le lecteur) en M7. Yvv, à 06 h 07 : « J'ai retiré les propositions. tu peux livrer Decision. » + +## Décisions d'Yvv que l'acte applique + +- Propositions seed au cran 2 ; aucun article en vigueur au départ (02/11). +- Quorum par cran 12 · 12 · 50 · 50 · 50 dans Monnaie libre, 1 à l'essai ; l'auteur le change avant le + premier vote (02/11) ; sous le quorum, les votants manquants comptent comme « non » (03/11). +- Un vote simulé compte, puis s'efface à l'ouverture de la chaîne par un acte « supprime » (02/11). +- Q11 (03/11, « Pas avant des votes prouvés ») : un texte entré en vigueur par des votes simulés est en + vigueur sur le site, mais ne se publie pas. Règle stricte, confirmée par orch le 03/11 à 06 h 11 : rien + ne part tant qu'une entrée simulée ne tient pas sur les seuls votes prouvés. +- Q12 (03/11, « Oui, retire-les ») : les propositions d'inertie I1 → 5 et E1 → 5 retirées avant le + démarrage du nouveau serveur. **Fait par Yvv à l'écran, annoncé à 06 h 07** ; vu sur la copie de + 06 h 11 (prémisse 2). + +## Ce qui part + +Version `94ddb17`, qui contient la version en ligne `3f10a0e` : 51 commits, 84 fichiers. Hors du code +(vérifié le 03/11 à 06 h 22) : rien dans `docker/`, `.woodpecker/`, `.env` ou `data/`, aucun fichier +sensible. Le seed JSON change (bases neuves seulement : un document seedé n'est jamais réinstancié). + +## Ce que l'acte écrit dans la base de production (donnée runtime) + +- **Migrations additives** `0009` (Propositions seed : `proposals.seed_featured`, la table + `seed_proposal_amendments`), `0010` (tampon : `ballots.mode` défaut `'chain'`, `ballot_lines.outcome`, + l'index `ballots_doc` ; aucune ligne réécrite), `0011` (quorums : `documents.quorums`, `units.quorum`, + la table `quorum_amendments`). +- **Amendement Propositions seed** (`2026-11-02-i1/e1/e2-proposition-seed`), par document et par article, + seulement si personne n'y a touché : la version passe d'en vigueur à ouverte et marquée ; + `units.in_force_id` à NULL ; une ligne `revisions` de type `seed_proposal` ; le cran à 2 avec une ligne + `inertia_changes`, si personne n'a touché au cran ; une ligne `seed_proposal_amendments` ; dans Monnaie + libre, une ligne `outbox`, qui attend. +- **Amendement quorums** (`2026-11-03-quorums-par-cran`), une fois par document : `documents.quorums` + là où il est NULL ; une ligne `quorum_amendments` ; une ligne `outbox` dans Monnaie libre. +- **Le tampon** : la première mise en route n'en écrit rien. +- **La publication** : suspendue (aucun article en vigueur, puis « pas avant des votes prouvés »). Le + dépôt des textes garde son dernier état. +- **Aucun vote, aucune identité, aucune autre proposition n'est touché.** + +**Répétition faite le 03/11 de 06 h 21 à 06 h 22**, avec le serveur de `94ddb17` (binaire de la boucle), +sur une copie de la copie de production de 06 h 11 min 12 (santé `3f10a0e8`), publication vers un dépôt nu +local (`m6/repetition.sh`, scratchpad de l'intégrateur ; journal `m6/repetition.log`). + +| | Avant | Après | +|---|---|---| +| Migrations | 1–8 | 1–11 | +| Propositions | inertie retirées 3 · ordres en vigueur 16 · textes en vigueur 6 · textes ouverts 64 · titres en vigueur 2 | inertie retirées 3 · ordres en vigueur 16 · textes ouverts 70 · titres en vigueur 2 | +| Unités en vigueur | essai 12 · Monnaie libre 12 | essai 9 · Monnaie libre 9 | +| I1, E1, E2 (deux groupes) | en vigueur, crans 3, 4, 4 | ouvertes, Propositions seed, cran 2, 2, 2 | +| Révisions | 101 | 107 | +| Traductions | 144 | 144 | +| `inertia_changes` | 4 | 10 | +| `seed_proposal_amendments` | absente | 6 lignes, statut et cran « applied » | +| `quorum_amendments` / `documents.quorums` | absentes | 2 lignes « applied » ; Monnaie libre `[12,12,50,50,50]`, essai `[1,1,1,1,1]` | +| File de publication (Monnaie libre) | 0 en attente, 13 faites | 4 en attente, 13 faites | +| Commits poussés vers le dépôt des textes (local) | — | 0 (« publication suspended … waiting=4 ») | +| Votes, bulletins, signalements, identités | 0, 0, 0, 1 | 0, 0, 0, 1 | + +`integrity_check` ok, `foreign_key_check` vide, avant et après. Journal : six « seed proposal amendment … +status=applied level=applied to_level=2 », deux « quorums written », « publication suspended », aucune +ligne ERROR ni WARN. **Un second démarrage ne rejoue rien** (mêmes comptes, la file reste à 4, 0 commit). + +## Effet attendu + +- Les deux groupes : I1, E1 et E2 sont des « Propositions seed », ouvertes, au cran 2 ; aucun article n'est + en vigueur ; les modules (titre du document au cran 4, ordre de chaque section au cran 2) restent en + vigueur. +- Le seuil se lit en quorum : au cran 2, 9 « pour » passent avec 3 « contre » au plus. +- **Le vote simulé s'ouvre dans Monnaie libre dès la mise en ligne** (pas de `LD_VOTE_ACCOUNT`) : toute + personne qui ouvre le groupe y vote, une personne invitée comprise ; le vote compte aussitôt, marqué + « simulé » sous l'article ; 9 « pour » simulés font entrer I1, E1 ou E2 **sur le site**, sans + publication. Effet de « simule le vote à tout endroit » et « il compte, puis s'efface » ; orch le porte à + son rapport (03/11, 06 h 11). À l'ouverture de la chaîne, l'acte « supprime » (`ld-server + discard-simulation`, à blanc, puis `--apply`) écartera ces votes et réexaminera ce qu'ils ont fait entrer. +- L'accueil sous la voûte. + +Irréversibilité : **partielle**. Le code se remet en arrière ; les données changées restent. + +## Avant — prémisses vivantes + +1. La production sert `3f10a0e` : `curl -s https://decision.librodrome.org/api/health` → + `"build":"3f10a0e8"` ; `git fetch prod && git rev-parse --short prod/main` → `3f10a0e`. +2. Sur une copie fraîche de la base (commande ci-dessous) : aucune proposition d'inertie `open` ; 0 vote, + 0 bulletin ; I1, E1, E2 en vigueur, aux crans 3, 4, 4, dans les deux groupes. **Lu sur la copie de + 06 h 11 min 12** : 3 propositions d'inertie, toutes `withdrawn` (I1 → 5, E1 → 5, et une ancienne sur + l'ordre de l'introduction) ; 0 vote, 0 bulletin, 0 signalement, 1 identité ; I1, E1, E2 en vigueur, + crans 3, 4, 4, dans les deux groupes. À relire sur la seconde copie, juste avant la poussée. Si un de + ces articles a bougé, l'amendement le refuse avec sa raison au journal, et l'acte reste valable. +3. Sur la même copie : 0 vote, donc aucune proposition n'entre au premier balayage. +4. La relecture indépendante de `94ddb17`, inscrite « ok » dans `~/harness/etat/relectures.json` ; aucune + autre relecture de ce code en cours. +5. `git diff 3f10a0e 94ddb17 -- docker/ .woodpecker/ .env data/` → vide (vérifié à 06 h 22). +6. Boucle verte sur `94ddb17` le 03/11 de 06 h 16 à 06 h 21 : fmt, clippy `-D warnings`, 286 tests Rust, + svelte-check 0 erreur 0 avertissement, 56 vitest, build, e2e 36 / 36. Image de production : en + construction (`docker build -f docker/app.Dockerfile --target production`, lancée à 06 h 21). + +## Copie de la base (prise par orch, lecture seule, aucune écriture côté production) + +```sh +set -euo pipefail +d=/tmp/ld-m6-copie; mkdir -m 700 -p "$d" +for f in libredecision.db libredecision.db-wal libredecision.db-shm; do + ssh sonic "docker exec lpk-libredecision-app sh -c 'test -f /data/$f && cat /data/$f'" > "$d/$f" ` (scratchpad de l'intégrateur), en `sqlite3 -readonly`. + +## 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 : + +```sh +cd /home/yvv/Documents/PROD/DEV/libreDecision +git push prod 94ddb175643c8d523a083bbfee3882f22b82f628:main +``` + +(remote `prod` = `gitea@git.open.us.org:EHV/decision.git` ; Woodpecker `.woodpecker/app.yml`, puis +`maquette.yml`.) + +## Vérifications après + +- [ ] Santé vue de l'extérieur → `"build":"94ddb175"`. +- [ ] Journaux : `ssh sonic 'docker logs lpk-libredecision-app 2>&1 | grep -E "amendment|quorums written|publication|ERROR|WARN"'` + → six « seed proposal amendment … status=applied level=applied », deux « quorums written », + « publication suspended », aucune erreur. +- [ ] Redémarrage à froid (`docker compose restart` dans `/opt/libredecision-app`), santé vue de + l'extérieur, journaux : aucun amendement rejoué. +- [ ] Sur une copie fraîche : les comptes « Après » de la répétition, à la ligne près ; `integrity_check` + ok, `foreign_key_check` vide ; copie retirée ensuite. +- [ ] Le dépôt des textes n'a reçu aucun commit : `git ls-remote gitea@git.open.us.org:yvv/decision-depot-textes-reference.git main` + → le même sha qu'avant la poussée (le relever avant). +- [ ] À l'écran (Yvv, à son retour) : l'accueil sous la voûte ; l'Acte d'engagement : les Propositions + seed, aucun article en vigueur ; voter dans Monnaie libre affiche « simulé ». + +## Retour + +- **Le code** : `docker tag libredecision-app:previous libredecision-app:latest`, puis + `cd /opt/libredecision-app && docker compose up -d --force-recreate`. `previous` sera `3f10a0e`. Le + serveur tolère les migrations qu'il ne connaît pas (`set_ignore_missing(true)`, `lib.rs:100`). +- **Les données** : pas de retour automatique. `3f10a0e` montrerait I1, E1, E2 comme propositions + ouvertes sans la marque, et aucun article en vigueur ; les votes simulés éventuels y compteraient comme + des votes du serveur. Un retour du code au-delà de quelques minutes demande un acte de données à part. +- **La publication** : rien n'est parti, rien à retirer. + +## Exécution + +(à remplir par orch) diff --git a/docs/chantiers/acte-certification/M6-brouillon.md b/docs/chantiers/acte-certification/M6-brouillon.md deleted file mode 100644 index adff764..0000000 --- a/docs/chantiers/acte-certification/M6-brouillon.md +++ /dev/null @@ -1,162 +0,0 @@ -# Brouillon — acte M6 (Propositions seed, quorum, tampon des votes, lecteur, accueil, textes du quorum) - -> **Brouillon, pas figé.** Tenu par l'intégrateur libredecision-d4. Il passe sous `actes/` quand il est -> figé sur un sha, avec sa relecture indépendante inscrite. Orch (dev-63) l'exécute sous son mandat -> (« déploie » et « pousse », du 03/11 au 08/11). - -## Intention - -Mettre en ligne la revue d'Yvv du 02/11 et ses décisions du 02/11 et du 03/11 : -- **H** : l'accueil sous la voûte (fusionné, `a3c0a76`) ; -- **S** : les Propositions seed, la publication suspendue sans texte en vigueur, le quorum par cran, la - licence `AGPL-3.0-or-later` (fusionné, `349c8ed`) ; -- **V** : le tampon des votes, le vote simulé partout tant que la chaîne est fermée (à fusionner) ; -- **T** : les articles du seed qui décrivent le quorum (à faire) ; -- **U** : le lecteur, la ligne « N oui pour passer · N non bloquent », le réglage du quorum (à faire). - -## Décisions d'Yvv que l'acte applique (registre) - -- Propositions seed au cran 2 ; aucun article en vigueur au départ (02/11). -- Quorum par cran 12 · 12 · 50 · 50 · 50 dans Monnaie libre, 1 à l'essai ; l'auteur le change avant le - premier vote (02/11) ; sous le quorum, les votants manquants comptent comme « non » (03/11). -- Un vote simulé compte, puis s'efface à l'ouverture de la chaîne par un acte « supprime » (02/11). -- **Q11** (03/11, « Pas avant des votes prouvés ») : un texte entré en vigueur par des votes simulés est - en vigueur sur le site, mais ne se publie pas ; la publication attend un texte passé par les seuls - votes prouvés. Dans Monnaie libre, rien n'est publié avant l'ouverture de la chaîne. -- **Q12** (03/11, « Oui, retire-les ») : retirer les deux propositions d'inertie d'Yvv du 29/10, I1 → 5 et - E1 → 5, **avant** que le nouveau serveur démarre (étape 0 ci-dessous). - -## Étape 0 — avant la poussée : retirer I1 → 5 et E1 → 5 sur la production actuelle - -**Pourquoi avant** : l'amendement des Propositions seed (`seed_proposal_amend.rs`) tourne au démarrage -et n'est décidé qu'une fois par document (l. 319-334, une ligne dans `seed_proposal_amendments`). Si -une proposition d'inertie d'un membre est encore ouverte, il refuse le cran (`inertia_proposal`) pour -de bon : I1 resterait au cran 3 et E1 au cran 4. Une proposition retirée sans vote ne compte plus (sa -requête ne retient que `status IN ('open','applied')` ou une proposition votée). - -**La voie : le geste d'Yvv à l'écran**, sur la version en ligne `3f10a0e`. Vérifiée le 03/11 entre -05 h 50 et 05 h 56 sur un serveur local de `3f10a0e` (base neuve du seed, proposition I1 → 5 créée -comme en production ; captures dans le scratchpad de libredecision-d4, `shots/3-row.png`, -`6-withdraw-visible.png`, `7-after.png`). Pas d'écriture SQL en production. - -1. Yvv, connecté, ouvre `/g/monnaie-libre/docs/acte-engagement-certification`. -2. Il descend au bloc « Propositions en cours » et clique le filtre « Les miennes » : il ne reste - que ses deux propositions d'inertie. -3. Sous l'intertitre « INTRODUCTION » (I1) : la ligne « inertie vers 5 / 5 · très haute », - « 0 pour · 0 contre », pastille « ta proposition ». Il clique la ligne. -4. Le vote se déplie sous la ligne (l'adresse prend `?vote=`). Il clique « Coquilles, - traductions, objections, historique ». -5. Le panneau de droite s'ouvre sur « Détails » : « inertie vers 5 / 5 · très haute · proposé par - Yvv ». Il clique « Retirer ma proposition ». -6. Message « Proposition retirée. » ; la ligne disparaît des propositions en cours (en base : - `status = 'withdrawn'`, `left_at` posé ; la route relance un balayage, sans effet à 0 vote). -7. Même chose pour E1, sous l'intertitre « ENGAGEMENTS FONDAMENTAUX » (déduit de la liste groupée - par section ; non vu en local). - -**Vérification**, sur une copie fraîche de la base de production : -`SELECT unit_id, status FROM proposals WHERE kind = 'inertia'` → 2 `withdrawn`, 0 `open`. - -**Répétition** : sur une copie fraîche, le retrait par la route avec le serveur `3f10a0e`, puis le -démarrage du serveur M6 sur cette copie → I1, E1, E2 au cran 2, et `seed_proposal_amendments` dit -`level_outcome = 'applied'` pour les trois. - -Si le retrait n'est pas fait, l'acte reste valable : I1 et E1 démarrent aux crans 3 et 4, E2 au cran 2, -et le journal dit `inertia_proposal`. - -## Ce que l'acte écrit dans la base de production (donnée runtime) - -- **Migrations additives** : `0009` (Propositions seed : `proposals.seed_featured`, la table - `seed_proposal_amendments`), `0010` (tampon : `ballots.mode` défaut `'chain'`, - `ballot_lines.outcome` vide, l'index `ballots_doc` ; aucune ligne réécrite), `0011` (quorums : - `documents.quorums`, `units.quorum`, la table `quorum_amendments`). -- **Amendement Propositions seed** (`2026-11-02-i1/e1/e2-proposition-seed`), par document et par - article, seulement si personne n'y a touché (0 vote, 0 bulletin, aucune coquille, révision, traduction - de membre ni signalement, origine seed, texte identique) : la version passe d'en vigueur à ouverte et - marquée ; `units.in_force_id` à NULL ; une ligne `revisions` de type `seed_proposal` ; le cran à 2, - avec une ligne `inertia_changes`, si personne n'a touché au cran (aucune proposition d'inertie - ouverte, appliquée ou votée : d'où l'étape 0) ; une ligne `seed_proposal_amendments` ; dans Monnaie - libre, une ligne `outbox`, qui attend. -- **Amendement quorums** (`2026-11-03-quorums-par-cran`), une fois par document : `documents.quorums` - = `[12,12,50,50,50]` (Monnaie libre), `[1,1,1,1,1]` (essai), là où il est NULL ; une ligne - `quorum_amendments` ; une ligne `outbox` dans Monnaie libre. -- **Le tampon** : la première mise en route n'écrit rien du tampon. -- **La publication** : suspendue. Aucun article n'est plus en vigueur dans Monnaie libre, puis (règle - « pas avant des votes prouvés », stricte, confirmée par orch le 03/11 à 06 h 11) rien ne part tant - qu'une entrée simulée ne tient pas sur les seuls votes prouvés. Le dépôt des textes garde son dernier - état. - -## Effet attendu - -- Les deux groupes : I1, E1 et E2 sont des « Propositions seed », ouvertes, au cran 2 ; aucun article - n'est en vigueur ; les modules (titre du document au cran 4, ordre de chaque section au cran 2) restent - en vigueur. -- Le seuil se lit en quorum : 12 · 12 · 50 · 50 · 50 votants dans Monnaie libre ; au cran 2, 9 « pour » - passent avec 3 « contre » au plus. -- **Le vote simulé s'ouvre dans Monnaie libre dès la mise en ligne** (pas de `LD_VOTE_ACCOUNT`) : toute - personne qui ouvre le groupe y vote, une personne invitée comprise ; le vote compte aussitôt, marqué - « simulé » ; 9 « pour » simulés font entrer I1, E1 ou E2 **sur le site**, sans publication. À - l'ouverture de la chaîne, l'acte « supprime » (`ld-server discard-simulation --apply`) écartera ces - votes et réexaminera ce qu'ils ont fait entrer. Effet de « simule le vote à tout endroit » et « il - compte, puis s'efface » ; orch le porte à son rapport, pas en question (03/11, 06 h 11). -- L'accueil sous la voûte. - -Irréversibilité : **partielle**. Le code se remet en arrière ; les données changées restent (I1, E1, E2 -sortis de la vigueur, crans à 2, quorums posés, votes simulés éventuels). - -## 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 : -vers le remote `prod` (`gitea@git.open.us.org:EHV/decision.git`), branche `main`, le sha figé -(Woodpecker : `.woodpecker/app.yml`, puis `maquette.yml`). La ligne exacte est écrite au gel, dans le -dossier sous `actes/`. - -## Vérifications après - -- [ ] Santé vue de l'extérieur : `curl -s https://decision.librodrome.org/api/health` → - `"build":""`. -- [ ] Journaux : `ssh sonic 'docker logs lpk-libredecision-app 2>&1 | grep -E "amendment|quorum|publication|ERROR|WARN"'` - → les amendements « applied » (Propositions seed, quorums), « publication suspended », aucune - erreur. -- [ ] Redémarrage à froid (`docker compose restart` dans `/opt/libredecision-app`), santé, journaux : - aucun amendement rejoué. -- [ ] Sur une copie fraîche : les comptes de la répétition, à la ligne près ; `integrity_check` ok, - `foreign_key_check` vide ; copie retirée ensuite. -- [ ] Le dépôt des textes n'a reçu aucun commit (`git ls-remote` de - `yvv/decision-depot-textes-reference`, branche `main` : inchangée depuis avant l'acte). -- [ ] À l'écran (Yvv, à son retour) : l'accueil sous la voûte ; l'Acte d'engagement : les Propositions - seed, aucun article en vigueur ; voter dans Monnaie libre affiche « simulé ». - -## Retour - -- **Le code** : `docker tag libredecision-app:previous libredecision-app:latest`, puis - `cd /opt/libredecision-app && docker compose up -d --force-recreate`. `previous` sera `3f10a0e`. Le - serveur tolère les migrations qu'il ne connaît pas (`set_ignore_missing(true)`, `lib.rs:100`). -- **Les données** : pas de retour automatique. `3f10a0e` montrerait I1, E1, E2 comme propositions - ouvertes sans la marque, et aucun article en vigueur ; les votes simulés éventuels y compteraient - comme des votes du serveur. Un retour du code au-delà de quelques minutes demande un acte de données - à part. -- **La publication** : rien n'est parti, rien à retirer. - -## Copie de la base de production (prise par orch, lecture seule, aucune écriture côté production) - -Dans `/tmp/ld-m6-copie` (700 / 600), par `docker exec lpk-libredecision-app cat /data/` pour -`libredecision.db`, `-wal`, `-shm`, puis `PRAGMA integrity_check; PRAGMA foreign_key_check;` en -`sqlite3 -readonly`. Pas un instantané atomique : `integrity_check` le dirait, et l'on reprend la -copie. Première copie : 03/11 à 06 h 11 min 12, production `3f10a0e8`, « ok », aucune clé étrangère -cassée. Seconde copie juste avant la poussée. - -Lecture des prémisses : `m6/counts.sh` (scratchpad de l'intégrateur), en lecture seule. Répétition : -`m6/repetition.sh`, sur une copie de la copie, publication vers un dépôt nu local ; `/tmp/ld-m6-copie` -n'est jamais écrit. - -## Prémisses à vérifier (à compléter au gel) - -1. La production sert `3f10a0e` : santé `"build":"3f10a0e8"` ; `prod/main` → `3f10a0e`. -2. Sur une copie fraîche : aucune proposition d'inertie `open` ; 0 vote ; I1, E1, E2 en vigueur, aux - crans 3, 4, 4, dans les deux groupes, intouchés (sinon l'amendement les refuse avec sa raison, et - l'acte reste valable). -3. Sur la même copie : aucune proposition qui aurait déjà ses voix au nouveau seuil (attendu : 0 vote). -4. La relecture indépendante du sha figé, inscrite « ok » dans `~/harness/etat/relectures.json` ; - aucune autre relecture de ce code en cours. -5. `git diff 3f10a0e -- docker/ .woodpecker/ .env data/` : à lire. -6. Boucle verte sur `` et image de production construite. diff --git a/docs/chantiers/acte-certification/tableau.md b/docs/chantiers/acte-certification/tableau.md index ad7e6e7..a4ae0db 100644 --- a/docs/chantiers/acte-certification/tableau.md +++ b/docs/chantiers/acte-certification/tableau.md @@ -148,7 +148,7 @@ chaîne (question stratégique, `docs/recherche/vote-g1-chaine.md`) ; l'affichag | Q9 | Sous le quorum, les votants qui manquent comptent-ils comme des « non » ? (Sinon, un « non » peut faire passer un texte en complétant le quorum.) | **tranché** (03/11, formulaire d'orch racine vers 03 h 45) : « Ils comptent comme non » ; au cran 2, quorum 12, 9 oui passent avec 3 non au plus | | Q10 | Licence : AGPL-3.0 seulement, ou « ou toute version ultérieure » ? | **tranché** (03/11, même formulaire) : « Ou version ultérieure » → `AGPL-3.0-or-later` dans les manifestes (`Cargo.toml`, `web/package.json` et son verrou) et le README ; `LICENSE` inchangé ; confié au lot S | | Q11 | Un texte entré en vigueur par des votes simulés (9 « pour » au cran 2 dans Monnaie libre) se publie-t-il dans le dépôt des textes ? | **tranché** (03/11, formulaire d'orch, reçu avant 05 h 35 ; le relais disait « vers 05 h 45 ») : « Pas avant des votes prouvés » → en vigueur sur le site, pas publié ; la publication attend un texte passé par les seuls votes prouvés (dans Monnaie libre, rien avant l'ouverture de la chaîne) ; codé par V, écrit au dossier M6 | -| Q12 | En production, Yvv a ouvert le 29/10 deux propositions d'inertie, I1 → 5 et E1 → 5 (0 vote). Ouvertes au démarrage de M6, elles retiennent I1 et E1 aux crans 3 et 4 pour de bon (amendement décidé une fois). Les retirer ? | **tranché** (03/11, formulaire d'orch, reçu à 05 h 51) : « Oui, retire-les » → avant le démarrage de M6, par le geste d'Yvv à l'écran (« Les miennes » › la ligne d'inertie › « Coquilles, traductions, objections, historique » › « Retirer ma proposition »), vérifié sur `3f10a0e` en local ; étape 0 du brouillon M6 (`M6-brouillon.md`) | +| Q12 | En production, Yvv a ouvert le 29/10 deux propositions d'inertie, I1 → 5 et E1 → 5 (0 vote). Ouvertes au démarrage de M6, elles retiennent I1 et E1 aux crans 3 et 4 pour de bon (amendement décidé une fois). Les retirer ? | **tranché** (03/11, formulaire d'orch, reçu à 05 h 51) : « Oui, retire-les » → avant le démarrage de M6, par le geste d'Yvv à l'écran (« Les miennes » › la ligne d'inertie › « Coquilles, traductions, objections, historique » › « Retirer ma proposition »), vérifié sur `3f10a0e` en local ; fait par Yvv à l'écran (annoncé à 06 h 07), dossier `actes/2026-11-03-m6-propositions-seed-quorum-tampon.md` | 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 @@ -168,6 +168,7 @@ Défauts posés par orch, sans question (Yvv peut les corriger) : - M2 + M3a (L9 et L10) : **caduc, emporté par M4** (`actes/2026-10-31-m2-vote.md`) : jamais exécuté, `74f96be` est en production depuis M4. - M4 (L9 à L13) : **exécuté** le 01/11/2026, 22 h 52 – 23 h 40 (`actes/2026-10-31-m4-vote-modules-objections.md`) ; M2 et M3a n'ont plus d'objet. - M5 (lot G, articles des règles, licence) : **exécuté** le 02/11/2026, 02 h 53 – 03 h 10 (`actes/2026-11-02-m5-retenue-textes-regles.md`). +- M6 (H, S, V) : **figé** le 03/11 à 06 h 22 sur `94ddb17` (`actes/2026-11-03-m6-propositions-seed-quorum-tampon.md`) ; répétition faite sur une copie de la production de 06 h 11 ; relecture indépendante en cours ; exécuté par orch (dev-63) sous mandat. Restes mineurs de `71819f9` et du lot B : faits dans le lot D.