- docker/app.Dockerfile : une image Rust + Svelte, la construction rejoue toute
la boucle (fmt, clippy -D warnings, tests, svelte-check, vitest) ; utilisateur
non-root, volume /data. docker/app-compose.yml pour sonic (fabio).
- .woodpecker/app.yml : produit sur decision.librodrome.org, attend la maquette,
écarte tout conteneur qui revendique encore la racine, healthcheck du commit.
- .woodpecker/maquette.yml (ex .woodpecker.yml) : la maquette v2 telle quelle,
sur maquette.decision.librodrome.org, mêmes volumes.
- .env.example de la maquette rangé dans maquette/ ; celui de la v3 à la racine.
- Docs : README, CONTRIBUTING (travail à deux), CLAUDE.md v3, HANDOFF,
docs/chantiers (feuille de route, fiche, contrôles, onboarding de Chiara,
demande à poka), docs/adr 0001–0006.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- crates/ld-engine : formule inertielle (parité avec la maquette, garde C),
coquille / changement de fond, assistant d'édition à règles, composition
d'un document sous vote permanent (adoptions, aperçus, rivales).
- crates/trustin-access : qui voit, qui ouvre, qui gère les accès.
- crates/ld-server : API axum + SQLite, connexion Ğ1 (client OAuth2 de
connect.monnaie-libre.fr), invitations, entrée en vigueur automatique,
signalements de contradiction, traductions éditoriales, publication git,
taille de la toile lue sur la chaîne.
- seeds/acte-engagement-certification.json : 33 articles, fr + en + es ;
en vigueur : préambule, E1, E2 (seed a minima).
- maquette/ : frontend, backend et docker v2 déplacés tels quels.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- la dép git+ssh échouait en CI : pas de clé SSH dans les conteneurs, et
node:20-slim n'a pas le binaire git (ENOENT) — npm signalait un faux
« tarball corrupted »
- package.json + lock : git+https://git.open.us.org/… (#v0.1.0 → b1c6a2f,
même commit épinglé) — nécessite le repo yvv-nuxt-base public
- git + ca-certificates ajoutés : step test-frontend (.woodpecker.yml) et
image de base du frontend.Dockerfile
- vérifié : npm install + build zéro erreur
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- 0b9c1d2e3f4a : migration initiale (CREATE TABLE IF NOT EXISTS) — safe
sur une DB déjà bootstrappée via create_all()
- 70914b334cfb : ADD COLUMN IF NOT EXISTS (organization_id) — was down_revision=None
- b78571ae9e00 : CREATE TABLE IF NOT EXISTS qualification_protocols
- c4e812fb3a01 : CREATE TABLE IF NOT EXISTS groups + group_members
- d91a3c7f8b02 : ADD COLUMN IF NOT EXISTS origin (mandates)
- Dockerfile prod : restaure alembic upgrade head au démarrage
Sur le serveur prod, exécuter une fois :
docker exec <projet>-backend alembic upgrade head
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Le lifespan FastAPI appelle déjà init_db() (create_all) au démarrage.
Lancer alembic en plus cassait sur une DB vide (migration initiale manquante).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>