Files
decision/actes/2026-11-03-m6b-textes-quorum.md
T

11 KiB
Raw Blame History

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 : EXÉCUTÉ (03/11, 07h56-08h13, par orch dev-63 sous mandat ; pipeline 38) — figé sur bb4bdf5 (bb4bdf58c114fb88ac4e154a7ffe0b06ff359b3e) le 03/11 à 07 h 55 — 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 : « bb4bdf5 : ok » (prémisse 3).

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 <db> (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. Faite : sous-agent neuf, sans le contexte de l'intégrateur, sur 94ddb17..bb4bdf5, rendue le 03/11 à 07 h 53, inscrite à 07 h 55 (transcript ~/.claude/projects/-home-yvv-Documents-PROD-DEV-libreDecision/d0a7108b-7f2f-484a-bcb0-de339238199d/subagents/agent-ad97443391b59fb37.jsonl, dernière ligne « bb4bdf5 : ok »). Ce qu'elle a exécuté :
    • une base faite par les vrais binaires dc2de09, 8727315, 4d4adcc, 3f10a0e, 94ddb17, puis le candidat ; écritures exactement celles annoncées, base entière comparée ;
    • un second démarrage et un retour vers 94ddb17 sans rejeu ;
    • la garde avec de vrais votes : refus votes, ballots, no_open_version. Ce qu'elle laisse à reprendre, dans le texte (aucun bloquant ; mettre en ligne reste un gain net, les textes de M5 décrivent encore C = 50) :
    • F1.2 « ensuite, il ne change plus » : faux après l'acte « supprime » (les votes simulés effacés ne laissent pas de trace, le quorum redevient réglable) ;
    • F1.1 « presque l'unanimité quand peu de gens votent » : faux aux crans 1 à 3 avec le quorum (à la production, 64 · 74 · 77 · 85 · 92 % du cran 1 au cran 5 ; 9 « pour » sur 12 suffisent au cran 2). Mineur : N1.1, première phrase (« un quorum de votants » laisse croire à un minimum) ; base née avant M5 (pas la production) ; essai sans trace d'un vote direct retiré ; ADR 0013 et 0011 à mettre à jour. Suite : un amendement gardé qui suit celui-ci (follows) peut corriger ces phrases tant que personne n'a voté sur l'article. Proposé à orch comme lot T2 (M6c).
  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 construite le 03/11 à 07 h 48, sortie 0 (tests Rust rejoués dedans, tous « ok » ; l'étape web reprise du cache, le web n'ayant pas changé depuis 94ddb17) ; image de contrôle retirée à 07 h 48.

Commande exacte

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

Acte exécuté le 03/11/2026, 07h56-08h13, par orch (session dev-63, e66db8ca), sous mandat « déploie » (inscrit du 03/11 au 08/11) ; décision d'orch de 07h36 (T sans attendre Yvv).

  • Dossier relu en entier à 07h56 ; relecture « bb4bdf5 : ok » vue inscrite (07h55) ; aucune autre relecture de ce code en cours (PRÊT M6b de libredecision-d4).
  • Prémisses, 07h57:04 : santé {"build":"94ddb175","ok":true}, prod/main = 94ddb17 ; git diff 94ddb17 bb4bdf5 -- docker/ .woodpecker/ .env data/ vide ; pipeline 37 success en tête.
  • Copie fraîche, 07h57:11 (/tmp/ld-m6b-avant, 700/600) : integrity_check ok, foreign_key_check vide ; m6b-premisse.sh : l'attendu exact (6 lignes open, seed, révisions 1 / 2 / 2, tous les compteurs à 0 ; 0 vote, 0 bulletin en tout ; migration 11). Dépôt des textes avant : 9e0f45a.
  • Poussée git push prod bb4bdf58c114fb88ac4e154a7ffe0b06ff359b3e:main à 07h57:2x, passée du premier coup (94ddb17..bb4bdf5).
  • Pipeline n° 38 : running à 07h57:34 ; santé bb4bdf58 à 08h02:03 ; app vert (retablir sauté) ; maquette verte ; success à 08h12:29. sbom-publish échoue comme aux pipelines 36 et 37.
  • Après :
    • journaux : six « seed amendment applied » (2026-11-03-f1-1-quorum, -f1-2-quorum, -n1-1-quorum, essai et Monnaie libre), « publication suspended … waiting=7 », aucune ligne ERROR ni WARN ;
    • redémarrage à froid à 08h12:44 : « listening … build=bb4bdf58 », « publication suspended … waiting=7 », aucun amendement rejoué ; santé bb4bdf58 ;
    • copie fraîche, 08h13:02 (/tmp/ld-m6b-apres) : F1.1 en révision 2, F1.2 et N1.1 en révision 3, dans les deux groupes, toujours open, 0 vote ; counts.sh comparé à la copie d'avant : seuls changent révisions 107 → 113, seed_amendments 10 → 16, file 4 → 7 en attente (13 faites), comme la répétition ; le reste identique à la ligne près ; integrity_check ok, foreign_key_check vide ;
    • dépôt des textes : 9e0f45a, inchangé.
  • main local avancé sur bb4bdf5 (git fetch . bb4bdf5…:main, depuis 94ddb17).
  • Copies retirées à 08h13:16 : /tmp/ld-m6b-copie (07h36:53, fournie à l'intégrateur), /tmp/ld-m6b-avant, /tmp/ld-m6b-apres. Les copies de répétition de l'intégrateur sont à retirer par lui.
  • Image de retour : libredecision-app:previous (94ddb17), sans coupure de la publication (§ Retour).