Aller au contenu principal

Changelog

Historique des évolutions du blog.

Modification
  • Migration Astro 5 → Astro 6 : `glob()` loader, `render(entry)`, `ClientRouter`, content config dans `src/`
  • Migration Tailwind CSS 3 → Tailwind CSS 4 : `@tailwindcss/vite`, `@theme` en CSS, suppression du config JS
Ajout
  • Analytics Umami : script chargé en lazy après `window.load` pour préserver le Speed Index
Ajout
  • Recherche vocale dans la modale de recherche via la Web Speech API (Chrome, Edge, Safari)
  • Structured data JSON-LD : BlogPosting, Speakable, dateModified et WebSite schema sur la homepage pour le VSEO
Modification
  • Header : disparaît au scroll vers le bas, réapparaît au scroll vers le haut
  • Barre de progression de lecture découplée du header en élément fixe indépendant
Correctif
  • Token FCM retiré du localStorage ; désabonnement via deleteToken() côté client uniquement, sans appel serveur
  • Erreurs ElevenLabs loggées en interne, message générique retourné au client
  • Limite de 4 Ko appliquée sur les corps des requêtes POST des endpoints push
Ajout
  • Rapport d'audit de sécurité (SECURITY-REPORT.md)
Modification
  • Ping des abonnés FCM : passage de hebdomadaire (lundi) à quotidien (9h UTC)
Correctif
  • Barre de progression de lecture : exclut la section « Articles similaires » du calcul
  • Comparaison du secret PUSH_NOTIFY_SECRET en constant-time via crypto.subtle.timingSafeEqual
  • Validation des paramètres slug et date dans l'API audio avant construction des chemins R2
  • Rate limiting : 10 req/60s sur /api/push/subscribe et 20 req/60s sur /api/search
  • Headers de sécurité HTTP sur toutes les réponses API : X-Content-Type-Options, X-Frame-Options, HSTS, Referrer-Policy
Sécurité
  • Clé Firebase API vérifiée dans Firebase Console : restreinte à Cloud Messaging API et au referrer https://dumont.me
Ajout
  • Bouton notifications : affiche « ✓ Inscrit aux notifications » avec un style discret une fois abonné
  • Encart Résumé : résumé en points clés rétractable avec dégradé, déroulable au clic
  • Widget Green IT : poids de la page, énergie consommée par requête et budget carbone sur chaque article
  • Page Changelog : historique public des évolutions du blog, accessible depuis le footer
  • Nouvel article : Quand l'IA code à votre place, qui écrit les règles ? — approche Contract-First en 4 chapitres (JSON Schema, OpenAPI, Schema Registry, Data Contracts)
Modification
  • Notifications push découplées de la requête HTTP via Cloudflare Queue : POST /api/push/notify retourne 202 immédiatement, diffusion FCM en arrière-plan avec jusqu'à 3 tentatives automatiques
Correctif
  • Bannière de révision : affiche la période exacte « telle qu'elle existait du [date] au [date] »
Modification
  • robots.txt enrichi : accès accordé à Claude-User, Claude-SearchBot, ChatGPT-User, OAI-SearchBot, Googlebot, Google-Extended et Perplexity-User

Lancement

Ajout
  • Première version publique : Astro SSG, Tailwind, MDX, lecteur audio ElevenLabs, archivage des révisions sur R2, articles similaires par embeddings vectoriels (Cloudflare Vectorize + Workers AI), recherche full-text Pagefind, API Edge sur Cloudflare Workers