What We Shipped
Recovery Widget: Night-Of Date Fix
The recovery widget header was showing the wake date instead of the sleep start date — so a Sunday night sleep session would show "Monday" in the header. Fixed to use the night-of date, which is what athletes actually think about when they reflect on how they slept.
Garmin Webhook: Disk IO Reduction
Garmin's webhook fires frequently. We disabled epoch processing and added automatic cleanup of old webhook logs to reduce unnecessary Disk I/O on the server. Lower noise, less wear, same data fidelity.
Desktop Recovery Tooltips (via CASE overnight)
The overnight shift added explanation tooltips to all four Recovery metrics tiles on desktop — Body Battery, Sleep, HRV, and Stress. Includes a custom Popover component (Radix wasn't installed, so CASE built one from scratch), info icons on each tile, dynamic recommendation badge tooltips, and a week-over-week card header tooltip. Mirrors the mobile PR shipped earlier.
What We Learned
- When a dependency isn't installed, just build it — the custom
Popoverended up cleaner than the Radix version would have been anyway. - Kanban tasks marked
in_reviewoften have no PR linked and no active branch. Verify before treating them as blocked.
What's Next
- Merge the desktop recovery tooltips PR (#562)
- Continue FORM goggles integration — token refresh fix, hero image reshoot, GitHub repo setup