Adopte le design system livré par Claude Design (Info Canicule.html) :
palette --paper/--brand/--ink + ramp vigilance, Public Sans + Manrope,
header sticky blurred avec toggle clair/sombre, pills vigilance avec
glyphes ●▲◆■ (a11y daltonisme), home restructurée (hero, stat tiles,
map + sidebar avec recherche département, liste filtrable, CTA conseils).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
API publique retirée :
- /api/vigilance et /api/vigilance/dept/[code] supprimés
- Mentions retirées dans footer, /mentions-legales, /embed
- /api/health garde, sans CORS (usage interne UptimeRobot + cron HC.io)
- Tests E2E mis à jour (vérifient 404 sur les endpoints retirés)
Pages :
- /dependances : entièrement mise à jour (Sentry, sharp, Playwright,
sitemap, typography ajoutés ; API MF officielle DPObs+DPVigilance,
normales 1991-2020 listées ; section Services tiers ajoutée pour
Opendatasoft en fallback ; section Infrastructure complétée avec
GlitchTip + CrowdSec).
- /soutenir : "~7€/mois mutualisés" → "~30€/mois", suppression du
détail VPS OVH (juste "infra"), suppression du bloc "Réutiliser
les données via API".
Vigilance Météo France load-balancing :
- lib/vigilance.ts : fetch parallèle x3 et garde la réponse au
update_time le plus récent. Constat 2026-05-26 : le gateway MF
load-balance entre instances désynchronisées (~60% renvoyaient
bulletin J-1, ~40% bulletin J). Cette mitigation atteint >95%
de probabilité d'avoir le bulletin frais.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1. lib/vigilance.ts : provider Météo France officielle via DPVigilance/v1
/cartevigilance/encours. Map vers VigilanceAlert (1 par dept × phen × J/J1)
en prenant phenomenon_max_color_id (pire de la journée). Filtre les domains
non-dept (FRA national, sub-côtes XX10, etc).
- Auto-pick : MF si key dispo, sinon opendatasoft. Override VIGILANCE_PROVIDER.
- Fallback opendatasoft si MF échoue (cache key différent pour pas polluer).
- Devrait fixer le lag de plusieurs heures observé sur Opendatasoft.
2. lib/climato.ts : fetch latest + previous (~4 MB compressé), garder 365j max
en cache 24h. Permet l'onglet "1 an" sur la page dept.
3. TemperatureChartInteractive : onglet "1 an" (apparaît si > 30j dispos),
série days365 + normales365 sérialisés au SSR.
4. Base.astro : logo header et footer utilisent <img src="/favicon.svg">
au lieu d'un emoji 🌡️.
5. index.astro : wrapper map repassé à container-tight (max-w-5xl) — la version
1400px était trop grande, on revient à la largeur du reste du site.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Quick wins :
- public/og-image.png (1200x630, via sharp depuis le SVG, build via pnpm build)
SVG ne fonctionne pas pour Open Graph (Slack/Discord/X/FB).
- @sentry/astro intégré conditionnellement (skip si SENTRY_DSN absent → no-op).
GIT_COMMIT_SHA en var pour le release tag dans GlitchTip si voulu.
- /api/vigilance/dept/[code] : JSON enrichi (phenomenon label + color name)
pour J et J1, CORS *, Cache-Control 5min. 404 si code unknown.
- JSON-LD enrichi : @graph WebSite + Service avec isBasedOn Dataset + license LOv2.
- Lien retour vigilance.meteofrance.fr visible sous la carte.
DROM (97x / 976) :
- 5 entrées ajoutées dans departements.ts (région "DROM").
- /departement/[code] DROM : bannière "Vigilance Outre-mer non couverte par
cette source open data" + bouton vers vigilance.meteofrance.fr.
- Home : ligne sous la carte listant les 5 DROM + lien retour.
- L'API /api/vigilance/dept/<DROM> retourne quand même un JSON 200 (arrays vides).
Registre canicule :
- Page /conseils/registre-canicule : qui, quoi, comment s'inscrire au CCAS.
- Numéro vert 0 800 06 66 66.
- Bannière mise en avant en haut de /conseils.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- FranceMap : tooltip riche au hover (HTML overlay), liste les phénomènes
+ niveaux du département. Touch-friendly (1er tap = preview, 2e = clic).
- index.astro : layout refactored, carte toujours visible full-width centrée,
liste par région en details collapsible sous (plus de side-by-side cassé sur PC).
- Alertes actives groupées par département, triées par numéro asc (2A/2B après 19).
- Tailwind safelist vigilance-chip-{1..4} : les classes générées dynamiquement
n'étaient pas captées par le scanner statique → CSS absent en prod.
- Mentions légales : distinction explicite entre Nocleus (micro-entreprise
commerciale) et Info Canicule (projet perso non lucratif, hors cadre pro).
- Liens code source git.nocleus.com retirés partout (autres repos privés y sont
visibles) → code "disponible sur demande" par mail.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
import.meta.env est résolu au build (par Vite), donc le snippet
Umami restait absent à l'exécution puisque .env est seulement disponible
au runtime côté container.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Astro 5 SSR + ioredis cache Valkey, déployable sur shared-net.
- Vigilance temps réel via Opendatasoft (no-auth, LOv2)
- Carte SVG des 96 départements (gregoiredavid/france-geojson)
- Climato T° 30j par dept (CSV.GZ Météo France, cache 24h)
- Conseils officiels par phénomène (7 types Vigilance)
- /api/health (UptimeRobot) + /api/vigilance (JSON public CORS *)
- Dockerfile multi-stage, CI Forgejo deploy.yml (pattern Reteno)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>