--- type: journal project: NAV V2 created: 2026-04-14 status: actif --- # NAV V2 — Journal de développement Journal technique de la V2. Décisions, anomalies, points bloquants, TODOs. --- ## 2026-04-29 — Cascade Onglet 1 : Pratiques régénératives (P1 → P5b) **Commit deploy :** `e80b226` (feat/aep-pratiques-regeneratives, 10 commits depuis main) **Exécutant :** Sonnet (agent autonome P1-P5b) ### Chantier P1 → P5b (résumé) Création complète de l'onglet "Pratiques régénératives" sur `aep.trans-former.fr` : - **P1** : scaffold types + API statique `GET /api/pratiques` (52 fiches JSON `public/data/pratiques-regeneratives.json`) - **P2** : page `/pratiques-regeneratives` — carte Leaflet Europe + accordéon DOM-TOM, sidebar filtres (type, pays, matériaux), composants `PratiqueCard.vue` + `PratiqueModal.vue` - **P3** : ajout onglet "Pratiques régé" dans le header nav desktop + hamburger mobile - **P4** : page `/proposer-pratique` — formulaire contribution avec Zod, endpoint `POST /api/submit-pratique` avec rate limit, `public/data/pratiques-pending.json` - **P5a** : build local validé (3.04 MB, APIs 200, 500 SSR = bug Windows/Node 24 préexistant non-bloquant) - **P5b** : deploy prod + smoke test (3/3 endpoints 200, SSR title OK, JSON 52 fiches) ### Deploy - Méthode : `tar .output/ | ssh vps-hetzner "cd /opt/aep && tar -xzf -"` + `systemctl restart aep` - Env diff local vs VPS : VPS a des vars supplémentaires (MISTRAL, NOCODB worker, RESEND) — additionnel non-conflictuel, pas d'impact - Note `deploy.sh` : le script a un BOM UTF-8 (ligne 1 `\xEF\xBB\xBF#!/bin/bash`) qui cause un exit 1 sur le `read -p` quand stdin est un pipe. Contournement : exécution manuelle des étapes. A corriger en V3. ### Smoke test prod (2026-04-29 01:38 UTC) | Endpoint | HTTP | Note | |---|---|---| | GET /pratiques-regeneratives | 200 | SSR OK, titre trouvé (2 occurrences) | | GET /proposer-pratique | 200 | SSR OK | | GET /api/pratiques | 200 | JSON valid, 52 fiches | ### Ce qui reste à valider (Jules, E2E BrowserMCP) - Markers Leaflet visibles + cliquables (Europe + DOM-TOM) - Sidebar filtres fonctionnels (type, pays, matériaux) - Modal fiche + bouton retour preservant filtres - Formulaire `/proposer-pratique` : submit + message succès - Comportement mobile 375×667 (sheet bas, swipe filtres, fiche pleine page) Prompt E2E disponible : `aep-communaute-build/PROMPT-BROWSERMCP-E2E.md` --- ## 2026-04-27 — Session V3 : Finition mobile + Blog Liberapay + 3 deploys **Commit :** `a02a555` — feat(mobile): accordéon outremer, hamburger nav, logo AEP, fiches cliquables, chatbot fullscreen **Pattern :** agents parallèles (3 × Sonnet) pour les 3 SSH indépendants — ~90s total vs ~20min séquentiel ### Changements implémentés **B — OutremerMap.vue : accordéon vertical DOM-TOM** - Template : row horizontale → accordéon `