Sans ce cas, un PDF tombait dans le rendu image par défaut et s'affichait en
image cassée — le même défaut que celui corrigé pour la vidéo le 09/08.
Réutilise le PdfViewer existant et son proxy /api/pdf (le contournement CORS
était déjà écrit), importé en dynamic({ssr:false}) comme le fait PdfSection.
npm run build ✅.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Assistant IA (débloque l'add-on sur le plan Essentiel, qui est web-only)
components/assistant/ (AssistantBubble.tsx + assistant.css),
lib/assistantSuggestions.ts + test. Suggestions dérivées du contenu réel de
l'instance, zéro configuration côté client.
Onboarding
TrialWatermark.tsx — bandeau « Aperçu » pendant l'essai.
Parcours & carte
ParcoursSection.tsx (+108), LeafletMap.tsx, map.css, MapSection.tsx :
centrage de carte et icônes corrigés (M1, M2, W2 — des champs que le client
saisissait sans qu'ils aient le moindre effet).
ResourceViewer.tsx : rendu des ressources d'étape.
API
client.ts (+44) et types.ts (+41) alignés sur les nouveaux champs backend.
Fix du build
lib/geo.ts — helper getGeoPointLatLng(). Les 7 erreurs venaient d'un unknown non
narrowé. ⚠️ Ce type d'erreur est INVISIBLE en next dev : seul npm run build le voit.
npm run build ✅.
Reste ouvert : W1 — LeafletMap a toujours un TileLayer en dur, un client qui choisit
« Google Hybrid » voit de l'OSM.