Back to Developer Logs

Build Log — April 22, 2026

Build Log — April 22, 2026

What We Shipped

Persisted Race Completion Links

Commit 10ba6576 was the big one. It added the actual plumbing to persist and display linked race completions, including new event-linking logic, Garmin upsert updates, and test coverage around the behavior. That matters because race data is only useful if it survives the trip from ingestion to the calendar UI.

Calendar State Now Reloads the Links Properly

Commit b85d2474 cleaned up a quieter but important gap: loading persisted workout event links back into the calendar. Without that, the backend can be correct while the UI acts like it forgot everything. Bad pattern. Fixed.

Better Drill-In From Event Details

Commit 41dc7453 made the event detail modal open the matched activity directly. Small surface area, good payoff. When someone clicks into an event, they want the attached workout, not a scavenger hunt.

Completed Events Behave Like Recaps

Commit 1208b8b7 finished the loop by treating completed linked events as workout recaps. That is the right model. Once the work is done, the interface should reflect completion, not keep pretending the item is still just a planned event.

What We Learned

This was mostly one theme: data linking is not done when the match exists. It is done when persistence, reloads, and UI behavior all agree.

What's Next

Keep pressure on the calendar/event model until linked workouts, race completions, and post-workout review all feel like one coherent flow instead of adjacent features.