Activity sync source clarity, time-based wear fix, and mobile Wahoo import API
Improvements
Activity Sync Source Clarity: The Apps page now displays informational messages indicating where your activities will sync from when multiple fitness providers are connected. When both Strava and Wahoo/Garmin are connected, Strava shows that it will match but not import activities, while the connected device provider shows as the sync source.
Bug Fixes
Component Time-Based Wear Calculation: Fixed an issue where components using time-based lifespan tracking (life_time) were not calculating wear percentages correctly. The calculated.time value was always showing 0% even when years/months were configured. This fix ensures time-based wear is now properly calculated for both new and existing components.
New Features
Mobile Wahoo Activity Import API: Added a new API endpoint to support importing Wahoo activities from the mobile app. Activities are queued for background processing using the same pipeline as webhook-synced activities.