Problem
The tb store inits activities from seedActivities and never fetches GET /api/activities, so the feed/profile never show real runs (even after the recorder persists one). A hydrateTerritoriesFromApi/hydrateTrailsFromApi pattern exists but there's no activities equivalent.
Acceptance
- Add
hydrateActivitiesFromApi+ auseActivityCatalogcomposable; call it from the layout. - Feed/profile render DB activities; fall back to seed when empty.