Back to Developer Logs

Build Log — March 9, 2026

Build Log — March 9, 2026

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 Popover ended up cleaner than the Radix version would have been anyway.
  • Kanban tasks marked in_review often 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