Data Trust milestone. Every number Atlas shows you should answer 'where did this come from and how fresh is it?' at a glance — this release wires that question through every chart, integration card, and ingest path, and rebuilds a lot of the iOS surface around it.
- iOSRedesigned Today tab: a single composite progress speedometer replacing the triple-ring, polished long-press action sheet on every tile, To do / Hit / Missed buckets below.
- FIXSign in with Apple now works on the first tap — fixed a double ASAuthorizationController flow that was prompting for the Apple password twice on every sign-in.
- iOSRedesigned More tab: profile card at top, then Settings (goals, privacy), Data (integrations, journal), and About. Send feedback is now a visible row instead of shake-only.
- iOSJournal (formerly Activity) shows workout finish times and sleep wake times — the moments you actually remember. Synthetic 4 AM sleep wakes anchored to local 07:00.
- FIXWater and nutrition totals stay in sync between the Today tab and Browse charts — server-side dedupe path got transactional to prevent concurrent ingests from racing duplicate rows in.
- FIXStand Hours D-view now shows the per-hour heatmap (HealthKit category permission gap fixed).
- iOSHide amounts toggle moved to More → Settings for one-tap privacy mode (mask balances and transactions for screen recording).
- NEWFreshness chip on every Browse chart — see how recently each metric was updated.
- NEWIntegrations page now flags Healthy / Stale / Error per provider, with the last error inline.
- NEWSettings → Account → Active sessions lists every device with an active Atlas session — revoke any you don't recognize.
- NEWEmpty-state CTA on every Browse view — log your first entry or connect a data source in one tap.
- NEWReal App Store badge + QR code on the welcome page.
- WEBNavigation cleanup: /dashboard/metrics is now /dashboard/browse and the Score has its own surface again at /life-score.
- iOSBrowse tab refreshes data on every visit — no more stale rows lingering after a sync.
- SECPer-user rate limit on the HealthKit ingest endpoint.
- SECCache-Control: no-store across the /api/v1/* layer.
- SECiOS observability captures across the Sign-in-with-Apple flow + manual HTTP breadcrumbs on every API call, so the next #778-class bug surfaces in Sentry instead of going silent.
- FIXHourly nutrition buckets carrying only fiber / sugar / sodium now land instead of silently dropping.
- FIXNetwork timeout for everyday requests dropped from 5 minutes to 20 seconds — flaky connections fail fast instead of freezing the app.
- FIXOnboarding no longer re-triggers on every sign-in of the same account — the completed flag is now keyed per-user.