# Changelog Toutes les modifications notables sont documentées ici. Format : [Keep a Changelog](https://keepachangelog.com/fr/1.0.0/) — versionnage [semver](https://semver.org/lang/fr/). --- ## [1.6.30] - 2026-05-19 ### Ajouté - Admin stats / drill-down IP : user agents affichés sous l'adresse IP (top 5 par fréquence, sans corrélation avec les pages) - AccessLogParser : capture du user agent (groupe 5 de la regex COMBINED), tracking `ipAgents` par IP, `ip_agents` dans le résultat --- ## [1.6.29] - 2026-05-19 ### Modifié - Admin stats / drill-down IP : chemins affichés un par ligne avec compteur entre parenthèses, triés par date de dernier accès (plus récent en premier) - AccessLogParser : suivi du dernier horodatage par chemin/IP (`ipPathTs`), `ip_top_paths` devient `{n: count, ts: timestamp}` --- ## [1.6.28] - 2026-05-19 ### Ajouté - Admin stats : drill-down AS → IPs dans l'accordéon « Visiteurs par pays » — mini sparkline 14 jours + articles/livres consultés par IP - Admin stats : `ip_data` dans le cache stats (daily + top paths par IP publique) ### Supprimé - Admin stats : section « Répartition par réseau » (fusionnée dans l'accordéon pays) --- ## [1.6.27] - 2026-05-19 ### Ajouté - Admin stats : sparklines SVG 14 jours par page dans « Pages les plus visitées » — courbe + dégradé, carte pleine largeur (#101) ### Corrigé - Admin stats : IPs privées/LAN exclues de la répartition par réseau (Uptime Kuma et hairpin NAT ne polluent plus les stats) (#102) --- ## [1.6.26] - 2026-05-16 ### Ajouté - Page publique `/books` — catalogue de tous les livres avec ≥ 1 article publié, cards cover/titre/description/nombre de pages (#99) - Accueil : section « Livres » (max 6) après les redécouvertes avec lien « Voir tous → /books » (#100) --- ## [1.6.25] - 2026-05-16 ### Ajouté - Admin : onglet « IA » — statut provider/clé, sélecteur `anthropic`/`claude_code`, champ modèle, procédure d'installation CLI, sauvegarde dans `site_settings.json` (#97) - `AiService` : support du provider Claude Code CLI via `proc_open` + lecture provider/modèle depuis `SiteSettings` (#97) - Éditeur : bouton IA unique « Analyser et proposer » — un seul appel retourne l'analyse critique et la réécriture via séparateur `===CRITIQUE===/===REWRITE===` (#96) ### Corrigé - Éditeur IA : boutons placés dans `wizard/step1.php` (la vraie page d'édition) ; `ai-editor.js` adapté pour `#wz-content` et extraction du titre depuis le Markdown (#96) - Sécurité CSP : extraction du `