forked from yvv/decision
Acte M8 : répétition réseau coupé sur e7ab82f (18 h 54), prémisses, commande sur e7ab82f ; relecture et image en cours ; non figé
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -102,7 +102,7 @@ de N1.1 « pas un nombre minimal de votants », fausse pour un quorum d'auteur b
|
||||
|
||||
## Ce qui part
|
||||
|
||||
Version `2ce2028`, qui contient la version en ligne `6f6197c`. Code touché : `crates/ld-server/src/seed_amend.rs`
|
||||
Version `e7ab82f` (lots T3 et T3b), qui contient la version en ligne `6f6197c`. Code touché : `crates/ld-server/src/seed_amend.rs`
|
||||
(les deux amendements), `crates/ld-server/src/wot.rs` (une constante rendue publique pour les tests, valeur
|
||||
inchangée), `seeds/acte-engagement-certification.json` (bases neuves), des tests et une fixture
|
||||
(`tests/fixtures/seed-quorum-t2.json`, les textes de T2) ; le reste est documentation. `web/` et
|
||||
@@ -116,7 +116,7 @@ inchangée), `seeds/acte-engagement-certification.json` (bases neuves), des test
|
||||
(`follows`) ceux de T2 (`2026-11-03-f1-2-phrases`, `-n1-1-phrases`), 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 posée par T2
|
||||
(F1.2 `96caf353…`, N1.1 `7fbedcb8…`) ; F1.2 et N1.1 admis à la révision 4 seulement si ce sont les
|
||||
(F1.2 `96caf353…`, N1.1 `7fbedcb8…`) ; textes d'après : F1.2 `ddce5aa5…`, N1.1 `7f62fd42…` ; F1.2 et N1.1 admis à la révision 4 seulement si ce sont les
|
||||
amendements suivis (M5, M6b, M6c), et eux seuls, qui l'ont écrite.
|
||||
- `proposals` : texte fr, révision + 1 (F1.2 et N1.1 → 5) ;
|
||||
- `revisions` : une ligne `amendment` ;
|
||||
@@ -133,11 +133,12 @@ inchangée), `seeds/acte-engagement-certification.json` (bases neuves), des test
|
||||
|
||||
## Répétition
|
||||
|
||||
**Faite le 03/11 de 17 h 54 min 20 à 17 h 55**, avec le serveur de `2ce2028` (binaire construit à 17 h 54
|
||||
dans la copie principale sur `953637f`, qui n'ajoute que le tableau ; copié en `m8/ld-server-2ce2028`), sur
|
||||
une copie (17 h 47 min 05) de la copie de production prise par orch de 17 h 46 min 22 à 17 h 46 min 30
|
||||
(production sur `6f6197cc`), publication vers un dépôt nu local (`m8/repetition.sh` ; journal
|
||||
`m8/repetition-m8.log`, scratchpad de l'intégrateur). Deux démarrages.
|
||||
**Faite le 03/11 de 18 h 54 min 44 à 18 h 55 min 28, réseau coupé** (`unshare -rn`, boucle locale seule :
|
||||
`m8/repetition-isolee.sh`), avec le serveur de `e7ab82f` (binaire de la boucle, construit à 18 h 54, copié en
|
||||
`m8/ld-server-e7ab82f`), sur une copie (18 h 47 min 52) de la copie de production prise par orch de
|
||||
17 h 46 min 22 à 17 h 46 min 30 (production sur `6f6197cc`), publication vers un dépôt nu local (journal
|
||||
`m8/repetition-m8b.log`, scratchpad de l'intégrateur). Deux démarrages. Orch comparera les comptes de la
|
||||
production à ceux de cette copie avant de pousser.
|
||||
|
||||
| | Avant | Après |
|
||||
|---|---|---|
|
||||
@@ -154,13 +155,17 @@ une copie (17 h 47 min 05) de la copie de production prise par orch de 17 h 46 m
|
||||
F1.2 et N1.1 (`body`, `revision`, `updated_at` : `ff53cbdc`, `13ee215f` dans Monnaie libre, `e7ae6bcb`,
|
||||
`d75f7e90` dans l'essai), leurs 8 traductions en et es (`body`, `source_hash`, `updated_at`), 4 révisions et
|
||||
4 décisions ajoutées, 2 lignes de file ajoutées et les 10 lignes en attente reportées (`next_at`), les deux
|
||||
compteurs (`sqlite_sequence` : révisions 123, file 25). Et, comme à chaque démarrage du serveur (en
|
||||
production aussi, puis toutes les 6 heures), W relu sur la chaîne : `settings.wot_size` 5 709 → 5 711
|
||||
(lecture de `rpc.duniter.org`, aucune écriture hors de la machine). Rien d'autre. `integrity_check` ok,
|
||||
`foreign_key_check` vide. Les textes écrits sont ceux du seed de `2ce2028`, en fr, en et es, dans les deux
|
||||
groupes (comparés). Journal : quatre « seed amendment applied » (`2026-11-03-f1-2-chiffres`,
|
||||
`-n1-1-chiffres` × essai, Monnaie libre), « publication suspended … waiting=12 », aucune ligne ERROR ni
|
||||
WARN. **Un second démarrage ne rejoue rien** (comptes identiques, aucun « applied »).
|
||||
compteurs (`sqlite_sequence` : révisions 123, file 25). Rien d'autre (`settings` inchangé : W n'a pas pu être
|
||||
relu, réseau coupé). `integrity_check` ok, `foreign_key_check` vide. Les textes écrits sont ceux du seed de
|
||||
`e7ab82f`, en fr, en et es, dans les deux groupes (comparés). Journal : quatre « seed amendment applied »
|
||||
(`2026-11-03-f1-2-chiffres`, `-n1-1-chiffres` × essai, Monnaie libre), « publication suspended …
|
||||
waiting=12 », aucune ligne ERROR ; un seul WARN, attendu réseau coupé : « web of trust size: no node nor
|
||||
indexer answered, keeping the last value ». **Un second démarrage ne rejoue rien** (comptes identiques,
|
||||
aucun « applied »).
|
||||
|
||||
Une première répétition, sur `2ce2028` (lot T3 seul), le 03/11 à 17 h 54, avait donné les mêmes comptes ; le
|
||||
réseau n'y était pas coupé (W relu sur `rpc.duniter.org`, `settings.wot_size` 5 709 → 5 711), ce que la
|
||||
relecture a relevé. Ses copies sont retirées (18 h 47).
|
||||
|
||||
## Effet attendu
|
||||
|
||||
@@ -177,35 +182,36 @@ dans l'historique de chaque proposition).
|
||||
2. Sur une copie fraîche, `m8/premisse.sh <db>` (scratchpad de l'intégrateur, lecture seule) : 6 lignes,
|
||||
toutes `open`, origine `seed`, révision 3 pour F1.1 et 4 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 l'autre. **Lu par l'intégrateur le 03/11 à 17 h 47** sur sa copie de la copie d'orch
|
||||
de 17 h 46 : l'attendu exact ; 0 vote et 0 ligne de bulletin en tout ; une identité. À relire sur la copie
|
||||
fraîche juste avant la poussée.
|
||||
3. La relecture indépendante du sha figé, inscrite « ok » dans `~/harness/etat/relectures.json`.
|
||||
**Première relecture, `2ce2028` : à reprendre** (sous-agent neuf, sans le contexte de l'intégrateur,
|
||||
lancé à 17 h 55, rendu vers 18 h 11, inscrit à 18 h 12 ; transcript
|
||||
`~/.claude/projects/-home-yvv-Documents-PROD-DEV-libreDecision/d0a7108b-7f2f-484a-bcb0-de339238199d/subagents/agent-a3341da520d4c5530.jsonl`).
|
||||
La phrase de G de N1.1, laissée par T3, est fausse sous le quorum : repris par le lot T3b (lancé à
|
||||
18 h 15) ; ce dossier sera refait sur son sha, avec une nouvelle répétition et une relecture neuve.
|
||||
4. `git diff 6f6197c 2ce2028 -- docker/ .woodpecker/ .env data/ crates/ld-server/migrations/` → vide (vu par
|
||||
l'intégrateur le 03/11 à 17 h 56).
|
||||
5. Boucle verte sur `2ce2028`, le 03/11 de 17 h 45 à 17 h 54 (journal `m8/loop.log`), du premier coup :
|
||||
fmt, clippy `-D warnings`, 312 tests Rust, svelte-check 0 / 0 (648 fichiers), 78 vitest, build, e2e
|
||||
42 / 42 (17 h 48 à 17 h 54). Image de production construite le 03/11 de 17 h 55 à 18 h 01 (copie
|
||||
principale sur `953637f`, même code), sortie 0 : étage serveur rejoué (fmt, clippy, 312 tests Rust « ok »,
|
||||
0 échec, build release) ; étage web repris du cache (`web/` identique depuis `6f6197c`, dont l'image l'a
|
||||
rejoué pour M7b) ; image de contrôle retirée à 18 h 01 (journal `m8/docker-m8.log`).
|
||||
reste valable pour l'autre. **Lu par l'intégrateur le 03/11 à 17 h 47, puis à 18 h 54**, sur ses copies de
|
||||
la copie d'orch de 17 h 46 : l'attendu exact ; 0 vote et 0 ligne de bulletin en tout ; une identité. À
|
||||
relire sur la copie fraîche juste avant la poussée, et comparer `counts.sh` à la colonne « Avant » de la
|
||||
répétition.
|
||||
3. La relecture indépendante de `e7ab82f`, inscrite « ok » dans `~/harness/etat/relectures.json`.
|
||||
- Première relecture, **`2ce2028` : à reprendre** (sous-agent neuf, sans le contexte de l'intégrateur,
|
||||
lancé à 17 h 55, inscrit à 18 h 12 ; transcript
|
||||
`~/.claude/projects/-home-yvv-Documents-PROD-DEV-libreDecision/d0a7108b-7f2f-484a-bcb0-de339238199d/subagents/agent-a3341da520d4c5530.jsonl`) :
|
||||
la phrase de G de N1.1 fausse sous le quorum ; mineurs : « autant de voix pour que si » ambigu, le test
|
||||
de « 100 votants » qui ne pouvait pas échouer, la répétition qui avait lu W sur la chaîne. Tout repris
|
||||
par le lot T3b (`e7ab82f`).
|
||||
- **Relecture de `e7ab82f` : en cours** (sous-agent neuf, sans le contexte de l'intégrateur, lancé le
|
||||
03/11 à 18 h 56).
|
||||
4. `git diff 6f6197c e7ab82f -- docker/ .woodpecker/ .env data/ crates/ld-server/migrations/ web/ crates/ld-engine/`
|
||||
→ vide (vu par l'intégrateur le 03/11 à 18 h 48).
|
||||
5. Boucle verte sur `e7ab82f`, le 03/11 de 18 h 47 à 18 h 54 (journal `m8/loop-b.log`), du premier coup :
|
||||
fmt, clippy `-D warnings`, 314 tests Rust, svelte-check 0 / 0 (648 fichiers), 78 vitest, build, e2e
|
||||
42 / 42 (18 h 50 à 18 h 54). Image de production : en cours.
|
||||
6. Sur sonic, aucun témoin `/opt/libredecision-app/deploying`.
|
||||
|
||||
## Commande exacte
|
||||
|
||||
```sh
|
||||
cd /home/yvv/Documents/PROD/DEV/libreDecision
|
||||
git push prod 2ce2028eb200932834c47af6927b9b4d3e44b65e:main
|
||||
git push prod e7ab82f48f41f52b3f31e322553f7cf18bc21601:main
|
||||
```
|
||||
|
||||
## Vérifications après
|
||||
|
||||
- [ ] Santé vue de l'extérieur → `"build":"2ce2028e"`.
|
||||
- [ ] Santé vue de l'extérieur → `"build":"e7ab82f4"`.
|
||||
- [ ] Journaux : quatre « seed amendment applied » (`2026-11-03-f1-2-chiffres`, `-n1-1-chiffres` × essai,
|
||||
Monnaie libre), « publication suspended … waiting=12 », aucune ligne ERROR ni WARN.
|
||||
- [ ] Redémarrage à froid : aucun amendement rejoué.
|
||||
|
||||
Reference in New Issue
Block a user