actes : persistance des messages — exécuté et vérifié en production
ci/woodpecker/push/woodpecker Pipeline was successful

Section d'exécution du dossier (sorties relevées par orch, session dev-65),
CLAUDE.md corrigé (volume librodrome-data sur /app/data, m4 de la relecture),
HANDOFF : état en ligne et décisions restant à Yvv.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Yvv
2026-10-26 19:50:34 +01:00
co-authored by Claude Opus 5.5
parent c32d88bec1
commit 4057f50bd3
3 changed files with 87 additions and 17 deletions
+9 -7
View File
@@ -50,7 +50,7 @@ site/
site.yml # Config globale (nav, footer, GrateWizard)
bookplayer.config.yml # Config player/chapitres
data/
messages.yml # Runtime — volume Docker ../data:/src/data — JAMAIS dans git
messages.yml # Runtime — prod : volume nommé librodrome-data sur /app/data — JAMAIS dans git
server/
api/content/ # GET pages YAML (chemins imbriqués)
api/admin/content/ # PUT pages YAML + liste
@@ -64,17 +64,19 @@ docker/
## Données runtime (CRITIQUE)
- `data/messages.yml` : volume Docker monté `../data:/src/data` (relatif à `docker/`)
- Persisté entre les rebuilds — **jamais écrasé par les commits ni par le déploiement**
- `data/messages.yml` : en prod, volume nommé `librodrome-data` (`external: true`) monté
sur `/app/data` (l'image tourne dans `/app`, le serveur lit `process.cwd()/data`).
Créé et semé à la main sur sonic par l'acte `actes/2026-10-26-persistance-messages.md` ;
un déploiement sans ce volume échoue au lieu de repartir de la graine.
- Persisté entre les rebuilds depuis le 26/10/2026 — **jamais écrasé par les commits ni
par le déploiement** (avant, il ne l'a jamais été : voir le dossier d'acte)
- Structure message : `{ id, author, email, text, type, published, createdAt, reply: { text, publishedAt } | null }`
- Types : `reaction` (ancien, affiché "Réaction", plus proposé dans les formulaires) | `question` | `suggestion` | `retour`
- En dev local : `<racine>/data/messages.yml`
- Graine : `site/messages.yml` (versionné) copié par `server/plugins/seed-messages.ts`
si `data/messages.yml` est absent
- ⚠ Constat du 26/10/2026 : l'image tourne dans `/app` (WORKDIR depuis `07bf07a`) et
résout `data/` depuis `process.cwd()`, alors que le compose monte `/src/data` et
`/src/public`. La persistance en prod n'est donc pas assurée par la config ; effet
sur le serveur non vérifié (voir HANDOFF).
- ⚠ Hors volume, rien ne persiste : éditions /admin de `site/` et `content/`, médias
envoyés par /admin (`/app/public`, jamais servis). Décisions d'Yvv en attente (HANDOFF).
- **Avant toute migration de chemin ou écriture sur data/ : demander confirmation**
## Intégration GrateWizard