Laravel Vitals v1.3
Star Install
Changelog

Versions

Versionné en semver. La branche 1.x ne reçoit que des changements non-breaking — les breaking iront en 2.x avec un guide de migration. Abonnez-vous au flux RSS ou suivez les releases GitHub.

fonctionnalité
v1.3.0
26 juillet 2026

Serveur MCP + conseiller d'index BDD

Deux fonctionnalités qui font agir Vitals sur votre app : un serveur MCP pour que les agents IA lisent et lancent des audits, et un conseiller d'index qui transforme les requêtes lentes capturées en migrations d'index prêtes à coller.

Serveur MCP pour agents IA
  • · Un serveur [Model Context Protocol](https://modelcontextprotocol.io) intégré (vitals), propulsé par laravel/mcp, avec trois outils : latest_audit (scores, Core Web Vitals, télémétrie backend), list_recommendations (findings priorisés avec leurs références fichier:ligne) et run_audit.
  • · Enregistré automatiquement comme serveur stdio local ; endpoint HTTP en option via vitals.mcp.web_route. Configuré sous vitals.mcp. _laravel/mcp est en pré-1.0 ; sa surface d'outils peut évoluer._
Conseiller d'index BDD
  • · Lit les requêtes lentes déjà capturées par la télémétrie backend, analyse en statique les colonnes filtrées / jointes / triées, et émet une recommandation missing-index avec une migration Schema::table(...)->index(...) prête à coller.
  • · Statique et consultatif par conception — n'exécute jamais le SQL, ne migre jamais, ignore les tables vitals_* du package, et valide sur le schéma réel pour éviter les faux positifs. Activable via VITALS_DB_ADVISOR_ENABLED.
fonctionnalité
v1.2.0
26 juillet 2026

Compatibilité agents

Une nouvelle catégorie « Compatibilité agents » dans le moteur de contrôles SEO (8 contrôles, 30 au total) qui mesure si les agents IA peuvent lire et piloter vos pages — alignée sur Lighthouse agentic-browsing et Cloudflare agent-ready.

Contrôles statiques (tous les drivers)
  • · llms.txt présent et bien formé, bots IA autorisés dans robots.txt, sitemap découvrable, noms accessibles sur les éléments interactifs et stabilité de la mise en page (CLS).
  • · Ils apparaissent dans leur propre section sur /vitals/audits/{id}/seo et dans le filtre par catégorie de /vitals/seo, avec des poids faibles pour ne jamais fausser votre score SEO.
WebMCP via le driver Playwright
  • · Détecte l'exposition d'outils WebMCP déclaratifs et impératifs dans une session navigateur — outils disponibles, formulaires exposant WebMCP en déclaratif, et outils déclarant un schéma d'entrée.
  • · La sonde s'exécute dans un contexte isolé après l'audit : elle ne peut jamais altérer le résultat Lighthouse ; sur les autres drivers ces contrôles passent avec la mention « non mesuré ».
Configuration
  • · Désactivez le groupe avec VITALS_SEO_AGENTIC_ENABLED=false, ou contrôle par contrôle via vitals.seo.disabled_checks. Les seuils et la liste des bots IA sont sous vitals.seo.agentic.
correctif
v1.1.1
16 juin 2026

Durcissement PostgreSQL

Corrections de portabilité entre drivers révélées par la nouvelle CI PostgreSQL.

Corrigé
  • · La page de statut public ne plante plus sur PostgreSQL — le calcul de disponibilité a été réécrit en COUNT(DISTINCT DATE(...)), ce qui corrige aussi un décompte erroné des jours actifs.
  • · Les pages de détail d'audit et l'API JSON renvoient désormais 404 (et non 500) pour les identifiants malformés, sur tous les drivers de base de données.
correctif
v1.1.0
16 juin 2026

PostgreSQL dans la CI

PostgreSQL est désormais un driver de base de données de premier plan, couvert par la CI.

Corrigé
  • · La vue SEO multi-URL ne plante plus sur PostgreSQL — l'agrégat MAX(uuid) a été remplacé par une réduction côté PHP sur les recommandations préchargées (une requête de moins, totalement portable).
Ajouté
  • · Une lane CI dédiée à Postgres exécute toute la suite Pest sur postgres:16, pour attraper les problèmes spécifiques aux drivers avant la publication.
stable
v1.0.0
22 mai 2026

Première version stable

Dashboard d'audit de performance natif Laravel, sur Livewire 4 + Flux Free 2 + Tailwind 4. Compatible Laravel 11 / 12 / 13.

Drivers d'audit
  • · Audits Lighthouse avec quatre drivers interchangeables (local, playwright, pagespeed, stub). Chacun renvoie les scores Performance / Accessibilité / Bonnes pratiques / SEO et les valeurs brutes (LCP, INP, CLS, TTFB, FCP, TBT, Speed Index).
  • · Télémétrie backend — requêtes, temps de requêtes, suspicion N+1, pic mémoire, vues rendues, jobs dispatchés, événements déclenchés, hits/misses de cache. Échantillonnée via un en-tête X-Vitals-Audit-Id signé : votre trafic de prod n'est jamais affecté.
  • · Analyse de code — des analyseurs statiques rattachent un fichier:ligne exact aux findings Lighthouse en lisant vos vues Blade, votre config Vite et votre composer.json.
Pages du dashboard
  • · /vitals — vue d'ensemble avec sparklines de tendances sur toutes les URLs surveillées.
  • · /vitals/urls et /vitals/urls/{id} — détail par URL avec historique des audits, scores moyens, filtre de période et bascule de métriques.
  • · /vitals/audits/{id} — détail complet de l'audit avec jauges, cartes Core Web Vitals, décomposition front ↔ back, recommandations colorées par sévérité.
  • · /vitals/issues — top issues, régressions et toutes les recommandations groupées par clé d'audit.
  • · /vitals/seo — vue SEO multi-URL avec détail des contrôles personnalisés et filtre par catégorie.
  • · /vitals/rum — Real User Monitoring avec attribution INP (élément + type d'événement).
  • · /vitals/queries — baselines de requêtes par route avec détection N+1 et patterns SQL répétés.
  • · /vitals/learn — base de connaissances de chaque problème détectable, parcourable par catégorie avec extraits de code.
  • · /vitals/budgets — seuils par métrique avec historique des violations.
  • · Spotlight (Cmd/Ctrl+K) — recherche globale dans audits, URLs, recommandations et entrées learn.
Sous-système de contrôles SEO
  • · 22 contrôles alignés sur les bonnes pratiques Google 2026 — Configuration (3), Contenu (5), Métadonnées (7), Performance (7).
  • · L'accesseur Audit::vitals_seo_score combine le SEO Lighthouse (50%) avec le taux de réussite pondéré des contrôles personnalisés (50%) — un score 0–100 plus exigeant.
Real User Monitoring
  • · Directive Blade @vitalsRum — légère (~11 Ko, ~4 Ko gzip), basée sur web-vitals v4 avec données d'attribution.
  • · Respect de la vie privée : aucune IP stockée, aucune empreinte numérique.
  • · Attribution INP : on extrait le sélecteur cible et le type d'événement de l'interaction la plus lente — vous corrigez le bon élément du premier coup.
Confort développeur
  • · Ouvrir dans l'éditeur — 11 éditeurs supportés (VSCode, Cursor, PHPStorm, IntelliJ IDEA, Sublime Text, Atom, TextMate, MacVim, Emacs, Nova, Zed). Template custom via VITALS_EDITOR_URL_TEMPLATE.
  • · API JSON v1 — /vitals/api/v1/{audits,urls,recommendations} avec pagination, filtres par date, et accès protégé par la Gate viewVitals.
  • · Seeder de démo — php artisan vitals:demo remplit des données synthétiques pour explorer le dashboard avant le moindre audit réel.
Notifications
  • · Canaux email + Slack pour Régression détectée et Budget dépassé.
  • · Les messages Slack sont threadés par URL — les régressions suivantes répondent au message d'origine.
i18n
  • · Interface complète en EN, FR, DE, ES — ~1 100 chaînes couvrant pages, composants, recommandations, titres/descriptions/hints des contrôles SEO et tooltips.
Thème
  • · Palette OKLCH native avec accent rose et échelle de gris neutres teintés.
  • · Geist Sans + Geist Mono auto-hébergés via @fontsource-variable.
  • · Modes clair + sombre pilotés par une classe .dark sur <html>, mémorisés via le bouton de la navbar.
Tests
  • · 550+ tests Pest (unit + feature + integration) sur les pipelines d'audit, les contrôles SEO, les composants Livewire, l'API JSON, les notifications, la capture de télémétrie et l'évaluation des budgets. PHPStan level max, aucune baseline.