🚀 Major Features & Improvements
Customizable Notification Templates (#1356) 🌟 Community Contribution by @cameronr
- Notification Settings UI: Full-featured settings page for editing, saving, and resetting templates
- Template-Driven Content: Configurable placeholders for new species notifications
- Detection Links: Server-rendered templates with clickable detection links (requires server address in settings)
- URL Sanitization: URLs automatically stripped from in-app notifications (bell icon, toast, notification list)
- Test Functionality: Send test "new species" notifications directly from settings
- Multi-Language Support: Complete translations (en, de, es, fi, fr, pt)
- Navigation Integration: Added to sidebar and settings menu
- Impact: Fully customizable notification content for different notification channels
🔧 Bug Fixes & Reliability
Notification Package Improvements (#1350, #1351, #1349)
- Linter Clean: All golangci-lint errors resolved for zero-error policy (#1350)
- Goroutine Leak Fixed: Proper cleanup in toast filter tests (#1351)
- Architectural Enhancements: Multiple improvements from code review (#1349)
- Bounded dispatch concurrency with semaphore-based limiting
- Exponential backoff with jitter for retries
- Enriched filter metrics with specific rejection reasons
- Optimized health check locking to reduce contention
Full Changelog: nightly-20251007...nightly-20251008