✨ What's New
🎨 Transparent Background for Badges
Badges now support transparent backgrounds, making them easier to embed on any page.
Usage:
https://your-server.com/?stableId=abc123&transparent=true
The Badge Playground in documentation also includes a new "Transparent" option in the theme selector.
🖼️ Flexible Logo Customization
You can now use different logos for dark and light themes:
logo-dark.svg/logo-dark.png— for dark themelogo-light.svg/logo-light.png— for light themelogo.svg/logo.png— universal fallback
Priority: theme-specific SVG → theme-specific PNG → universal SVG → universal PNG
🔍 Improved Name Sorting
Names with leading emojis are now sorted correctly by their text content, ignoring emoji prefixes.
🐛 Bug Fixes
🔄 Metrics Not Clearing on Subscription Update
Fixed a race condition where metrics for removed proxy locations would persist with status 0 after subscription updates.
Affected scenario: When using proxy-resolve-domains=true and an IP was removed from DNS, the metric for that IP would remain in Prometheus.
Root cause: Goroutines completing proxy checks could write metrics after ClearMetrics() had already run.
Fix: Added generation tracking to skip metric updates when the proxy configuration has changed during a check cycle.
📚 Documentation
- Added live demo links throughout documentation and README
- Updated architecture docs with Badge System and Asset Manager components
- Added
WEB_PUBLICparameter to CLI and Docker examples - Improved code formatting in nginx configuration examples