Lot T : F1.1, F1.2 et N1.1 disent le quorum par cran (seed, trois langues) ; un second amendement de seed gardé les remplace en production

- Le seed : « Formule du seuil WoT », « Paramètres par défaut », « Niveaux d'inertie »
  réécrits d'après l'ADR 0013 (sous le quorum, les votants qui manquent comptent comme
  « non » ; au-delà, la part du cran) et l'ADR 0011 (aucun article en vigueur au départ,
  les trois Propositions seed au cran 2, le titre au cran 4) ; le _source le dit.
- Les nombres : chacun, en fr, en et es, calculé par le moteur ou lu dans le seed
  (tests/seed_quorum_texts.rs) ; les trois formules évaluées telles qu'écrites contre
  threshold et inertia ; les règles de forme vérifiées.
- seed_amend : 2026-11-03-f1-1-quorum, -f1-2-quorum, -n1-1-quorum. Un amendement qui
  « follows » un autre admet la révision 2 « initial puis amendment » écrite par lui seul,
  rien d'autre ; ceux de M5 sur F1.2 et N1.1 sont « superseded_by » (plus rien décidé,
  sans erreur). La garde compte aussi les lignes de bulletin du tampon (« ballots »).
- Tests vus rouges : sept du lot T, deux unitaires de la garde ; les tests de M5 jouent
  sur le seed de M5 (la fixture de production).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Yvv
2026-11-03 07:16:57 +01:00
co-authored by Claude Opus 5.5
parent 39d5cd2633
commit 92ba485f71
6 changed files with 1269 additions and 30 deletions
+5 -1
View File
@@ -353,9 +353,13 @@ async fn the_production_base_turns_its_untouched_texts_into_seed_proposals_once(
kept.push(v);
}
}
// The articles of the quorum (F1.1, F1.2, N1.1) are amended at the same start, by the
// seed amendments of lot T (`tests/seed_quorum_texts.rs`): left out here.
let translations = |state: AppState| async move {
sqlx::query_as::<_, (String, String, String, String, String)>(
"SELECT proposal_id, lang, title, body, source_hash FROM translations ORDER BY proposal_id, lang",
"SELECT t.proposal_id, t.lang, t.title, t.body, t.source_hash FROM translations t
JOIN proposals p ON p.id = t.proposal_id JOIN units u ON u.id = p.unit_id
WHERE u.code NOT IN ('F1.1', 'F1.2', 'N1.1') ORDER BY t.proposal_id, t.lang",
)
.fetch_all(&state.db)
.await