astro-webvitalsv0.4.9

Changelog

Generated from CHANGELOG.md in the project repository. Never maintained twice.

0.4.9

14 September 2026

  • fixedThe debug overlay, accessibility heuristic and SEO inspection are now actually loaded only when enabled, as 0.4.2 stated. A static import from the navigation metrics had pulled them into the entry script every tracked page loads; in the demo build that script drops from 16.1 kB to 4.7 kB gzip, and Vite no longer warns about ineffective dynamic imports.

0.4.8

11 August 2026

  • addedThe local dashboard shows browser-visible page checks per route: title, description, canonical, language, H1, Open Graph, skip link, image alt, link text, form labels and valid JSON-LD.

0.4.7

11 August 2026

  • addedRun sitemap pass in the local dashboard opens every page listed in /sitemap.xml in the current tab and returns with local measurements. The explicitly started pass bypasses sampling; consent and Do Not Track still apply.

0.4.6

11 August 2026

  • changedRedesigned the local dashboard with native system fonts, responsive metric cards, concise local-data status, and accessible rating pills.

0.4.5

11 August 2026

  • fixedExposed the dashboard integration as @casoon/astro-webvitals/integration, so Astro can load it from astro.config without importing the .astro component.

0.4.4

11 August 2026

  • addedOptional browser-local dashboard storage (dashboard) with a bounded history of 200 metrics.
  • addedwebVitalsDashboard() Astro integration, which injects a static, noindex dashboard route at /__web-vitals by default.

0.4.3

11 August 2026

  • addedOptional Web Vitals attribution (attribution) with compact diagnostic context.
  • addedOptional LongTask reporting, browser metric events (webvitals:metric), configurable maxBatchSize, and experimental browser soft-navigation reporting.
  • addedExplicit consent and respectDnt collection gates.
  • addedOpt-in retry queue for failed fetch reports, bounded to 50 entries in localStorage.
  • changedReplaced outdated examples and feature claims with documentation matching the package API.
  • changedAdded reporting unit tests for IDs, deltas, transport selection, and retry persistence.

0.4.2

11 August 2026

  • changedReplaced custom vital calculations with Google's web-vitals package for LCP, CLS, INP, FCP, and TTFB.
  • changedReporting now includes stable metric IDs, deltas, ratings, and navigation types.
  • changedMetrics flush on visibilitychange/pagehide and use sendBeacon where possible.
  • changedLoaded overlay, console, SEO, and accessibility code only when those features are enabled.
  • fixedPrevented duplicate initialization when the component is rendered more than once.
  • fixedRemoved the misleading programmatic FID/INP trigger and legacy FID collection.
  • fixedEscaped SEO and overlay data before rendering it into the debug UI.

0.4.1

11 August 2026

  • fixedThe bundled client script's import path was ../client/index instead of ./client/index, pointing outside src/ — broke the module import introduced in 0.4.0.

0.4.0

11 August 2026

  • changedClient architecture - The ~2500-line inline client script is now split into TypeScript modules under src/client/ (metrics, UI, accessibility, SEO, reporting) and loaded as a bundled module script instead of a raw inline script. This makes the client logic covered by type-checking and linting for the first time, and lets browsers cache the script across page loads instead of re-downloading it inline on every page.
  • changedUpgraded typescript to ^7.0.2 (from ^6.0.3), astro to ^7.2.0, @biomejs/biome to ^2.5.8.
  • changedRemoved src/lib/ - an unused, unreferenced set of metric/util modules that weren't exported or imported anywhere.
  • fixedsampleRate and the auto-generated sessionId were evaluated once at build time in the Astro frontmatter, so every visitor of a statically generated page shared the same sampling decision and session ID. Both are now evaluated client-side, per page load.
  • fixedCaptured console messages were inserted into the console dock without escaping, allowing HTML/script injection via console.log/console.error calls that include untrusted content.
  • fixedA WCAG label lookup could throw on element ids containing CSS-selector-breaking characters, aborting the rest of the accessibility check.
  • fixedThe FID measurement could register a duplicate PerformanceObserver on BFCache restore without disconnecting the previous one.
  • fixedconsole.log/info/warn/error were monkey-patched on every tracked page load regardless of whether debug or consoleDock was enabled; now only patched when needed.

0.1.6

17 December 2025

  • changedDocumentation Update - Comprehensive README overhaul with current features and usage
  • changedConsole Tab - Renamed from "Console & Error Detection" to "Console Viewer" for clarity
  • changedCHANGELOG - Updated to reflect all features accurately

0.1.5

9 December 2025

  • addedAuto-FID Measurement - Automatic FID measurement after 3 seconds using non-intrusive hidden element
  • addedImproved LCP Detection - Better LCP measurement using renderTime/loadTime with validation
  • addedEnhanced Debug Logging - Detailed console logs for all metric measurements when debug mode is enabled
  • addedSEO Tab - Comprehensive SEO analysis in debug overlay:
  • addedTitle and meta description with length validation
  • addedCanonical URL and robots meta detection
  • addedX-Robots-Tag header check via fetch
  • addedIndexability status badge
  • addedOpen Graph and Twitter Card validation
  • addedStructured Data (JSON-LD) parsing with schema-specific warnings
  • addedHeading outline with H1 count validation
  • addedImage alt text and dimension checks
  • addedCopyable SEO report for bug tickets
  • improvedLCP Measurement - Now uses renderTime || loadTime instead of just startTime for more accurate results
  • improvedLCP Finalization - Reduced timeout from 3s to 2s for faster final values
  • improvedFID Simulation - Creates invisible, non-interactive button element:
  • improvedUses pointer-events: none to prevent accidental clicks
  • improvedPositioned off-screen with left: -9999px
  • improvedaria-hidden="true" and tabindex="-1" for accessibility
  • improvedAutomatically cleaned up after measurement
  • improvedConsole Buffer - Increased from 50 to 200 message history
  • improvedRadial Gauge - Performance score displayed as circular gauge with gradient
  • fixedLCP Not Updating - Fixed renderTime/loadTime extraction for more reliable measurements
  • fixedFID Blocking - FID simulation now uses isolated element that can't interfere with real user interactions

0.1.4

9 December 2025

  • addedRadial Gauge Visualization - Performance score displayed as circular gauge with gradient
  • addedImproved Metrics Layout - Grouped sections for Core Web Vitals, Additional Metrics, and Navigation Timing
  • addedExpandable Accessibility Details - Click to expand issue categories with individual element details
  • addedLearn More Links - Direct links to web.dev documentation for each accessibility issue type
  • addedQuick Wins Section - Actionable tips based on detected accessibility issues
  • addedMetric Descriptions - Each metric now shows a helpful hint (e.g., "Loading performance", "Visual stability")
  • improvedBetter Initial State for Metrics - CLS shows 0.000 (good) by default instead of "waiting"
  • improvedInteraction-based Metrics - FID/INP now show clear call-to-action ("Click or tap to measure")
  • improvedEnhanced Color Scheme - Gradient progress bars, improved contrast, purple scrollbar accent
  • improvedScrollbar Styling - Custom styled scrollbars matching the dark theme
  • improvedPulse Animation - Loading indicators now have smooth pulse animation
  • improvedScore Counter - Shows how many metrics are measured (e.g., "4/6 metrics measured")
  • fixedCLS Initial Display - No longer shows "Monitoring layout shifts..." when there are no shifts

0.1.3

18 November 2025

  • addedConsole Tab - New Console tab displaying browser console output (log, info, warn, error)
  • addedCustom Logging API - webVitalsLog.info(), .warn(), .error() for custom messages
  • addedDockable Console - Bottom-docked console with draggable height
  • improvedResponsive Mode - Auto-updates position on viewport resize without refresh
  • improvedDesktop Position Options - All four corners (top/bottom, left/right)

0.1.2

18 November 2025

  • addedMobile responsive design - Full-width footer bar for viewports < 700px
  • addedNavigation Timing Metrics - DNS, TCP, DOM, LOAD measurements
  • addedLCP timeout - Finalizes after 3 seconds of no changes
  • addedClose button - Dismissible overlay (reopens on reload)
  • fixedTTFB calculation - Now correctly measures from fetchStart to responseStart
  • fixedMobile layout - Footer bar slides up instead of overlaying content
  • fixedMetrics visibility - All metrics show immediately or with pending state
  • improvedMobile UX with slide-up animation
  • improvedMore comprehensive timing metrics available immediately
  • improvedBetter visual hierarchy with grouped metrics

0.1.1

18 November 2025

  • addedNote about extraction from astro-v5-template (github.com/casoon/astro-v5-template)
  • improvedRedesigned accessibility tab to show summary counts instead of detailed lists
  • improvedEnhanced details tab with session info, memory visualization, and network status
  • improvedCleaner UI for accessibility issues with grouped counts by type
  • improvedAdded helpful tips in accessibility tab
  • improvedBetter network status indicators with visual quality markers
  • improvedMemory usage now shows percentage with color-coded progress bar
  • improvedConfiguration status visible in details tab
  • fixedAccessibility tab now shows clean issue counts instead of verbose element details
  • fixedDetails tab now provides useful session and configuration information
  • fixedImproved readability with better spacing and organization

0.1.0

18 November 2025

  • addedInitial Release with Core Features:
  • addedAll Core Web Vitals tracking (LCP, FID, CLS, FCP, TTFB, INP)
  • addedDebug overlay with real-time metrics
  • addedAnalytics endpoint support
  • addedZero dependencies implementation
  • addedTypeScript support with full type definitions
  • addedPosition configuration for debug overlay
  • addedColor-coded status indicators
  • addedAdvanced Features:
  • addedBatch Reporting: Collect and send metrics in batches
  • addedSampling Rate Control: Configurable user sampling (0-1)
  • addedExtended Metrics: Long Tasks, Memory usage, Network info
  • addedSmart Detection: Rage click and dead click detection
  • addedPerformance Budgets: Set and monitor metric thresholds
  • addedAccessibility Support: WCAG 2.1 compliance
  • addedSemantic HTML with ARIA attributes
  • addedFull keyboard navigation
  • addedScreen reader announcements
  • addedHigh contrast colors
  • addedFocus indicators