# HANDOFF — libreDecision > Dernière mise à jour : 2026-10-22, session orch du chantier 1. ## Où on en est **Chantier 1 — Acte d'engagement Certification** : **en ligne** sur decision.librodrome.org, version `744d157` depuis le 2026-10-22 (pipeline Woodpecker n° 32 ; avant : `fa8e8dc`, n° 30) ; la maquette est sur maquette.decision.librodrome.org (certificat jusqu'au 19/01/2027). En ligne : liens d'équipe, nouveau lien de connexion, noms uniques et mention « sur invitation », règles de coquilles des relectures 7 à 10, publication vers `yvv/decision-depot-textes-reference` (état et « Publier maintenant » dans `/acces`). La publication attend la clé de déploiement (voir plus bas). Incident du 2026-10-21 : Docker a redémarré sur sonic à 21 h 47 ; l'agent Woodpecker `aya-woodpeckerci-local-agent-1` gardait l'ancienne socket (pipeline n° 31 : « Cannot connect to the Docker daemon », rien construit). Remède : `docker restart aya-woodpeckerci-local-agent-1` (fait avec l'accord d'Yvv), puis « Redémarrer » le pipeline dans l'interface Woodpecker. - v3 Rust + Svelte à la racine du dépôt ; la maquette v2 intacte dans `maquette/`. - Boucle : Rust (fmt, clippy `-D warnings`, 69 tests dont 16 scénarios d'API et la publication vers un dépôt nu) · interface (svelte-check 0 avertissement, 9 vitest) · e2e 13 / 13 (C1–C12, M1). L'image Docker rejoue tout et a été essayée localement : santé, interface, volume non-root, clé de publication, lien admin initial (0600, absent des journaux), publication immédiate au démarrage, redémarrage sans commit superflu. - Déploiement : `.woodpecker/app.yml` d'abord (le produit à la racine, qui retire de la racine tout conteneur qui la revendique), puis `.woodpecker/maquette.yml` (la maquette part sur maquette.decision.librodrome.org, seulement si le produit a réussi). - Relectures indépendantes avant mise en ligne, chacune traitée avant de livrer : `1f9c241 : ok`, `94907af : ok`, puis quatre « à reprendre » (`ac9c904`, `9203fd2`, `1eac6f8`, `6c0754a`), toutes sur la même question : une « coquille » (sans vote, publiée) qui change un sens, puis `fa8e8dc : ok` (mis en ligne), `c3d6bf8 : ok`, `fd19dbf : ok`, `753b522 : ok`, `8a32160 : ok`, `850f9c4 : ok`. La règle est désormais simple et explicable : **une coquille touche les lettres et les espaces, rien d'autre** (CHANTIER.md, ADR 0003). Autres points traités : ordre des workflows, anciens conteneurs en `restart: always`, vote réservé aux membres de la toile dans Monnaie libre (une personne, une voix), lien d'invitation jamais vers une identité Ğ1, réservation du lien avant usage, redirection après connexion, en-têtes anti-encadrement, cookies `__Host-`, retour arrière automatique du déploiement (maquette au premier, version précédente ensuite), courses entre correction et entrée en vigueur, syft épinglé. ## Ce qui attend Yvv 1. **Envoyer la demande à poka** : `docs/chantiers/acte-certification/DEMANDE-CONNECT.md`. 2. **Dépôt des textes** : `yvv/decision-depot-textes-reference` sur **git.open.us.org**, créé par Yvv le 2026-10-21 (privé pour l'instant : les applis ne pourront le lire en brut qu'une fois public) — un dépôt séparé du code, pour que la clé du serveur n'écrive jamais dans `yvv/decision` et que le dépôt se transfère d'un bloc (Yvv : « pour l'instant sur open.us ; on fera un dépôt pour l'ouverture, un transfert, et le dépôt officiel pour les textes en vigueur »). Reste à y ajouter la **clé de déploiement** du serveur, **en écriture** (sa partie publique s'affiche dans trustinWallet, `/acces`, section Publication). Le serveur fait lui-même le premier envoi ; en cas d'échec il réessaie avec un délai croissant (1 min, 2, 4… jusqu'à 6 h), repart d'une minute à chaque redémarrage, et `/acces` → Publication montre l'état et offre « Publier maintenant ». Changer de dépôt plus tard : `LD_PUBLISH_REMOTE` dans `docker/app-compose.yml`. 3. **Ouvrir trustinWallet** avec le lien administrateur initial (remis hors conversation, un seul usage : il crée l'identité administratrice). Pour l'équipe : un **lien d'équipe** (`/acces` → Liens d'équipe ; chaque personne qui l'ouvre a sa propre identité), ou une invitation par personne. Pour soi sur un autre appareil : « Nouveau lien de connexion ». 4. Donner à Chiara un compte **git.open.us.org** collaboratrice de `yvv/decision`. 5. Décider : la **licence** du code ; le texte F1.2 du seed (annonce C = 0 et 30 jours). ## Pour reprendre - Lire `docs/chantiers/acte-certification/CHANTIER.md` puis `CONTROLES.md`. - Les retours de Chiara arrivent dans `/acces` → Retours : chacun est un contrôle à repasser. - Quand les identifiants connect arrivent : `DEMANDE-CONNECT.md` § « À la réponse ». - Chantier suivant (après la mise en production et les retours) : Acte d'engagement forgeron. - Restes des relectures, non bloquants, pour la prochaine série : - `publish.rs` : motif `ls-remote` en `refs/heads/` (une branche `x/main` le trompe) ; « Dernière publication » rattachée au dépôt affiché ; compter les documents en attente, pas les lignes de la file ; - mention « sur invitation » : en `kind <> 'g1'` (tout type futur) ; tests de ce qui s'affiche (révision visible, signalement, bout en bout) ; auteur des retours dans `/acces` avec son type ; - noms : sosies latins étendus et ligatures (ı, ł, œ, ß…), invitations créées par un administrateur sans contrôle de nom ; - `sbom-publish` échoue (curl 60 : certificat du serveur Dependency-Track refusé) — étape en `failure: ignore`, déjà le cas avant la v3.