Add wp_prometheus_register_dashboards action hook allowing third-party
plugins to register their own Grafana dashboard templates.
- DashboardProvider: registration system with file/JSON support
- Security: path traversal protection, JSON validation
- Admin UI: "Extension" badge and plugin attribution
- Isolated mode support for dashboard registration hook
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Split Metrics sub-tab settings into separate WordPress option groups:
- wp_prometheus_endpoint_settings for auth token
- wp_prometheus_selection_settings for enabled metrics
- wp_prometheus_advanced_settings for isolated mode
This fixes the bug where saving from one sub-tab would clear settings
from other sub-tabs due to all settings sharing a single option group.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add sub-tabs: Endpoint, Selection, Runtime, Advanced
- Fix early mode checkbox not saving (was outside form element)
- Add CSS styling for horizontal sub-tab navigation
- Update translations with new sub-tab strings
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add wp_prometheus_disable_early_mode option in admin settings
- Support WP_PROMETHEUS_DISABLE_EARLY_MODE environment variable
- Add Early Mode section in Metrics tab with status indicator
- Allow users to enable wp_prometheus_collect_metrics hook
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add early metrics endpoint handler to intercept /metrics before full WP init
- Remove content filters during metrics collection to prevent recursion
- Skip extensibility hooks in early metrics mode
- Change template_redirect to parse_request for earlier interception
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add redis and apcu PHP extensions to release workflow for v0.4.0 storage support
- Add MARKETING.md to gitignore
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add StorageFactory class for storage adapter selection with fallback
- Support Redis storage for shared metrics across instances
- Support APCu storage for high-performance single-server deployments
- Add Storage tab in admin settings with configuration UI
- Add connection testing for Redis and APCu adapters
- Support environment variables for Docker/containerized deployments
- Update Collector to use StorageFactory instead of hardcoded InMemory
- Add all translations (English and German)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Custom Metrics Builder with admin UI for gauge metrics
- Support for static values and WordPress option-based values
- JSON-based export/import with skip/overwrite/rename modes
- Three Grafana dashboard templates (overview, runtime, WooCommerce)
- New tabs: Custom Metrics and Dashboards
- Reset runtime metrics button
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add localhost license bypass for development environments
- Flush rewrite rules when license status changes to fix 404 on /metrics
- Fix wc_orders_count() missing required status parameter
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add tabbed navigation (License, Metrics, Help)
- Move Prometheus configuration to dedicated Help tab
- Separate static and runtime metrics with descriptions
- Add admin CSS for tab styling
- Add endpoint info, curl examples, and metrics reference in Help tab
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Document composer path repository configuration with version aliases
- Document Gitea CI/CD fix for handling re-releases
- Add key learnings about submodule handling in CI environments
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Delete existing releases before creating new ones
- Prevents "Release has no Tag" error on re-releases
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove VCS repository (CI cannot access private Gitea server)
- Add version alias to path repository for wc-licensed-product-client
- Lock file now uses submodule directly without network access
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add VCS repository for wc-licensed-product-client
- Mark path repository as non-canonical
- Regenerate lock file with v0.2.2
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Use ^0.2.2 instead of dev-main for wc-licensed-product-client
- Set minimum-stability to stable for CI/CD compatibility
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>