Feature: expanded equipment, integration-aware sync, tooltips

1. Equipment (onboarding step 5):
   - Changed from 3 radio buttons to 14 multi-select chips
   - Bicycle, pool, free weights, squat rack, bench press, machines,
     resistance bands, pull-up bar, kettlebell, jump rope, yoga mat,
     treadmill, stationary bike, rowing machine
   - Backend: equipment_list JSONB field on profile model
   - Resource matcher updated to filter by specific equipment
   - Legacy equipment_access auto-derived for backward compat

2. Sync Strava/Polar (dashboard):
   - Fetches integration status on load
   - Shows 'Connect Strava/Polar' (dashed border) when not connected
   - Shows 'Sync Strava/Polar' only when connected
   - Connect button triggers OAuth flow
   - Sync shows loading state and result count

3. Tooltips:
   - Tip component: hover/click to show explanation bubble
   - Added to: goals, TTM stages, PAR-Q+, BREQ-2 items,
     equipment, rewards gate, daily points, activity checklist,
     weekly progress, integrations section
   - Science references: TTM, PAR-Q+, BREQ-2/RAI explained
This commit is contained in:
claude 2026-03-15 22:16:55 +00:00
parent 434db38f0d
commit 82c4533a96
6 changed files with 270 additions and 66 deletions

View file

@ -30,7 +30,8 @@ class Phase2Request(BaseModel):
# Preferences
activity_preferences: list[str] = []
equipment_access: str | None = None # none, basic_home, full_gym
equipment_access: str | None = None # legacy single value
equipment_list: list[str] = [] # new: list of equipment tags
days_per_week: int = 3
minutes_per_session: int = 30