Back to Dev Log
v0.9.0-Jan 23, 2026Major

Profile Domains Foundations + Insights Hub (Migration-Safe)

Shipped the first slice of the Profile Hub + Body domain refactor with migration-safe models, and transformed Analytics into an Insights hub (Progress/Body/Tools) with robust derived-metrics plumbing.

ProfileBodyInsightsMigrationLocalFirstAnalyticsModals

Shipped

  • Insights Hub (v1 shell)

    • Renamed “Analytics” UI to Insights with tabs: Progress / Body / Tools
    • Added dedicated tab components (ProgressTab, BodyTab, ToolsTab)
    • Added tracking for page views + tab changes to support engagement measurement
    • Updated sidebar + mobile nav labels to reflect “Insights”
  • Profile domain split (migration-safe)

    • Migrated legacy UserMetrics into UserProfile + UserBody models
    • Updated storage keys to match the new structure while preserving existing data
    • Added a ProfileMigrationRunner to run safely during app initialization
    • Refactored Profile page to use new hooks for profile/body ownership
  • Tools UX improvements

    • Enhanced 1RM Calculator with calculation-state management:
      • Results show only after explicit calculate action
      • Calculation state resets when inputs change
      • Cleaner input layout and validity-gated calculate button
  • UI consistency + quality fixes

    • WidgetWrapper now optionally renders primary action beside the title (more consistent layout)
    • Migrated multiple modal surfaces to shadcn/ui Dialog for consistent behavior and styling:
      • ExerciseAutocomplete picker
      • Routine settings + add routine dialogs
    • Updated beta version references across the UI for consistency and cleaned minor component behavior

Why

  • The Profile refactor clarifies domain ownership (identity vs body vs training) without losing existing local-first data.
  • Insights replaces generic “analytics” with day-1 value (Progress/Body) and fast access (Tools).
  • Consistent modal primitives reduce UX drift and recurring UI bugs as the app scales.

Notes

  • This release is the “foundation layer” for the full spec:
    • Profile hub as gateway
    • Body as canonical owner of sex/height/weight/measurements
    • Insights reading from logs + body data with strong empty states
  • Training subpage and baselines ship next (keeping this increment small and migration-safe).

Next

  • Add /profile/body and /profile/training routes (nested under Profile Hub)
  • Implement weight + measurement tracking flows under Body (optional, calm UI)
  • Flesh out Insights v1 cards (streaks, strength trend, 1000lb club, body trajectory) with robust empty states

Install App