Changelog
What's new in MyBodyAI. Click any version to see what changed.
v0.991 beta
Latest
May 16, 2026
New
- AI Hub — the AI tab is renamed and restructured into three layers (Today / What is happening / Bigger picture) with a Next-days Outlook section and an Open Insight CTA
- 10-band decile metric system — all 13 health metrics now use a single 10-band copy table (severity + insight + AI tip in EN and CS) instead of the old 3–5 tier ladder, so every score position has a tailored interpretation
- Body Status hero rework on the dashboard — gauge size roughly doubled and the competing person silhouette removed, so the headline number reads as the visual anchor
- Weekly digest redesigned — week-over-week comparison hero with gauge bar, four delta tiles, 7-day bar chart, top three highlights and a recommendation. Delivered Monday 10:00 Europe/Prague (was Sunday 8 UTC)
- Confidence chip on dashboard tiles — when the underlying confidence drops below 0.8 the chip appears (yellow under 0.8, red under 0.5), so a glance at a tile reads as value, trend, confidence
- Provider tier badge per signal on /connect — a gold / silver / bronze dot next to each signal shows which provider is the trusted source (Fitbit VO2max gold vs Fitbit steps bronze, etc.), no more uniform colour per provider
- Five topic-cluster hub pages on aiclysm.com — HRV, Sleep, Recovery, Longevity and Stress — each cross-linking around ten articles, glossary entries, tools and device comparisons
- New blog post — HRV accuracy compared across Garmin, Polar, Fitbit and Withings, bilingual, with eight peer-reviewed citations
- /.well-known/security.txt — coordinated disclosure contact per RFC 9116 for security researchers
- Activities now show additional details — speed, power, elevation gain, moving time, minimum heart rate and step count alongside duration, distance and load — pulled from Garmin or Strava and merged on a per-field basis
- Bilingual confirmation email after a successful Garmin GDPR import — summarises what landed (HRV, SpO2, VO2max, activities) and suggests a complementary provider when something is missing
Improved
- Morning Energy recalibrated — HRV switched to an absolute mapping (was personal percentile), weights tuned to 0.2 HRV / 0.5 sleep / 0.3 RHR after grid search, plus 10-band insight copy and driver chips (Sleep Quality / ANS Balance / Sleep Debt)
- Sleep debt is now shown with sign in hours across all UI — −X.Xh debt / +X.Xh reserve — instead of a 0–100 score that hid the direction
- AI tips audit — seven logic and copy bugs fixed across micro-tips, training tips, AI insights, alerts, daily narrative, weekly digest and the adaptive engine
- Flagship cards rewritten in semi-lay tonality — drops ‘sympathetic’ / ‘vagal’ / ‘autonomic’ / ‘baseline’ jargon in favour of stress response, balance, recovery system
- Transactional emails visually overhauled (all 11 templates) plus a dark-mode override for new Outlook for Windows / Outlook.com / Gmail / Apple Mail — the deep-navy palette is no longer repainted to mid-gray
- Light mode redesigned — warm cream-sand palette unified across marketing and dashboard, plus a hairline outline on the Body Status hero so colours stay legible on the lighter background
- Typography refresh — Manrope across body and display headings (JetBrains Mono kept for code), marketing homepage emoji icons replaced with Lucide SVG (seven stroke icons matching the brand line)
- Dashboard typography pass — hero gauge resized, signature ring slimmed and the Bio Age font capped at one consistent size across all tabs so the headline numbers stay the visual anchor on phone screens
- Glossary entries, blog posts and topic hubs now cross-link automatically — about 190 inline references added in EN and CS so reading an HRV article surfaces the matching glossary entries and related posts in one click
Fixed
- Morning Energy proxy never reached non-Garmin users in the live pipeline — an old guard counted Garmin-specific history days and dropped the proxy context for everyone else. Re-filled 549 historical rows for 11 affected users
- Bio Age card now stays interactive when birth date is missing — clicking the empty-delta state routes you straight to Settings → Profile → date of birth
- Garmin GDPR import auto-fills bio-age inputs (gender, birth date, height, weight, VO2max) from user_profile.json and BioMetricProfileData inside the export ZIP
- Garmin GDPR activities are now imported and merged with existing Strava records — Garmin contributes training load, training effect and VO2max to the same activity row, the richer source wins per field
- Profile save now invalidates AI and scoring caches — previously the dashboard returned 6h stale data right after you filled in birth date and gender
- Tools pages (biological-age, hrv-decoder, sleep-calculator) no longer hit an infinite reload loop when localStorage.lang differs from the URL language
- Mobile Chrome auto-translate no longer crashes the app — a notranslate meta hint prevents the browser from wrapping text nodes, which used to desync React on the Settings page
- Czech URL prefix /cs/ now wins over the localStorage language setting — sharing a CS link with someone whose browser is set to English no longer flips the page to English
- Strava and Garmin webhooks are now correctly proxied through Caddy to the wearables backend — previously these events 404ed and were silently dropped
Security & Infra
- Mobile auth token sliding expiry — every successful X-Mobile-Token auth refreshes the token timestamp (throttled to once per 24h), so a daily-worn paired Garmin watch keeps a live token indefinitely while a 90-day idle device still expires
- PostgreSQL timestamps now native — 16 columns migrated from TEXT to timestamptz, dropping the ::timestamptz casts on every indexed read across admin, auth cooldowns and premium expiry
- Major dependency bumps — Stripe SDK 14.4.1 to 15.1.0, gunicorn 25.1.0 to 26.0.0, sentry-sdk 2.29.1 to 2.59.0, postcss 8.5.8 to 8.5.14, vite 7.3.1 to 7.3.3 (4 npm advisories closed)
v0.99 beta
May 4, 2026
New
- Backdate self-report up to 7 days — day picker chips (Today / Yesterday / weekday) so you can fill in a missed check-in for any of the last week
- Garmin Connect IQ watch app (Pre Release) — on-watch health dashboard for 67 supported devices (Fenix, Forerunner, Venu, Epix, Vivoactive, Enduro, Instinct), pair via 6-digit code in Settings
- Garmin GDPR import now extracts HRV, SpO2, VO2max and AFib events from FIT files inside the export ZIP — massive jump in Garmin data coverage
- Garmin Index Smart Scale support — weight, body fat %, muscle mass, bone mass, body water % imported from your GDPR ZIP and shown on the Body card
- Both signature slots (left + right) are now user-configurable — pick from 14 metrics for each side, persisted across tabs and devices
- One-click Disconnect button on /connect page for any OAuth provider (Fitbit, Polar, Withings, Strava) — revokes tokens server-side, stops dormant alerts
- FAQ Connection issues category — 10 bilingual entries covering re-OAuth, dormant providers, missing data and pairing problems
- Illness Risk model adds breath-rise trend (Mason 2022) — rising overnight respiration is a documented early-warning signal for infection
Improved
- Bio Age card always renders, even when chronological-age delta is missing — you still see the radar with all 8 domains and contributing top three
- Insight detail popover is now inline — opens above the metric instead of a full-screen modal, with proper scroll and responsive grid
- Dormant provider banner now distinguishes ‘no device paired’ from ‘scope upgrade needed’ from ‘sync stalled’ — targeted action for each
- Apple Health removed from the UI everywhere — the provider was retired upstream and listing it caused user confusion
- Settings page exposes a Watch Pairing card — generate a 6-digit code with a 5-minute countdown, copy button, and clear instructions for Garmin Connect Mobile
Fixed
- Health tab Training Load chart now populates — the score was being computed but never plumbed into the history payload, leaving the sparkline empty
- Re-connecting an expired or revoked provider actually reactivates it — previously the new tokens were saved but the status stayed ‘expired’, leaving the device invisible
- Watch pairing endpoint no longer rejects every request as forbidden — CSRF guard correctly skipped on the pre-session pair exchange
- Backdating an existing self-report no longer leaves an orphan illness signature when you un-check ‘currently sick’ — routes through the proper edit pipeline
- Lockout ‘try again in N seconds’ banner now uses the actual cooldown window from the database, not a hard-coded value
- Bio Age calibration label dropped a spurious ×100 multiplier that made small adjustments look like 1500 % drift
- Polar 404 noise silenced for users without a Polar device — previously every sync logged 2,400+ false errors per day
- Self-report alcohol values 2 (moderate) and 3 (heavy) are persisted — previously the POST endpoint capped at 0/1 and silently dropped higher values
Security & Infra
- Admin panel hardening sweep — XSS escaping on log search results, RBAC self-protection (admins can’t demote themselves to a 401), persistent admin audit log with viewer, async transactional email
- OAuth tokens encrypted at rest — provider access & refresh tokens are now Fernet-wrapped in the database, dual-write phase complete with 21/21 connections backfilled
- P0 audit sweep — CSRF protection extended to every state-changing non-admin endpoint with documented exemptions, OAuth log sanitisation, contract drift guards, webhook HMAC hardening
v0.98 beta
April 20, 2026
New
- Daily Narrative — your day told as a coach's story with today's slogan, yesterday's recap, 7-day trend, and tomorrow's outlook
- 10-tier color scale across week trend bars — instantly see critical, steady, strong, or peak days
- Training Load metric + Strain context — tracks your weekly training stress with 7-day strain history
- Unlock panel — shows exactly which metrics become available when you connect another device
- Garmin data import via official GDPR export (ZIP upload) — while we wait for Garmin Connect API access
- Signal status on every metric — active, limited, stale, or unavailable, always clear why
- Community card in Settings — join our growing user community
- Illness Risk — redesigned as an AI 'defense shield' tile with an animated ring, breathing halo, live monitoring pulse, contributing biomarker chips (Immune, Respiratory, Recovery) and an adaptive insight that speaks to your current state.
- Biological Age — a paired 'youth gauge' visual next to Illness Risk with its own ring, breathing halo, top three contributing domains (e.g. cardiovascular, sleep, recovery) and age delta front and centre.
- AI Discoveries redesigned — correlation and seasonal patterns now render as premium cards with strength bands, metric-pair icons, and a four-season best-vs-worst strip.
- Tap any metric to see a detailed explanation — what it means, how we compute it, what influences it, and how to read the score. Fully translated to Czech and English.
Improved
- Plain-language score labels and mobile-friendly collapsible panels throughout the dashboard
- Natural, native Czech translations across all AI-generated daily insights
- Body Status now requires at least 5 core metrics before reporting 'Steady' — no more false 'all good' when data is missing
- Sleep efficiency now follows the AASM clinical standard (Total Sleep Time / Time In Bed) — consistent with sleep medicine research
- Self-reported symptoms now provide informational insight alongside biometrics instead of overriding scores — more transparent
- Faster login — last activity update moved off the critical path
- Better experience for Fitbit-only and scale-only users — sparse data handled gracefully
- Weekly Summary card now compares scores week-over-week with trend labels
- Dashboard layout reworked — your flagship metrics surface at the top, weekly trends moved below so the most actionable insight stays on screen first
- Hero consolidated — one unified Body Status gauge with a compact Training Readiness chip, replacing two competing indicators
- Changelog page redesigned — each version is now a one-click accordion so it's easy to scan the full release history
- Risk-type metrics (Illness Risk, Stress Load, Overtraining) now show raw values — a low number means a good state, with a short matching bar. No more mental math of 'is 94 good or bad?'.
Fixed
- VO2max badge restored on metric card
- Strain Chip labels now properly translated to Czech
- Mind / Body / Sleep panels no longer disappear after being opened
- Training Readiness card restored to hero section
- Garmin morning Body Battery now correctly uses peak 24h value
- Quick Tips icons (wind, check) display correctly
- Dark mode: below-threshold bars are now visible
- Background scoring retries on transient database locks — no more silently missing updates
- Dashboard refresh no longer redirects you to the landing page — the URL now stays on your dashboard as expected.
- Withings workouts sync — fixed a date-parsing error that prevented workouts from syncing for every Withings user.
v0.97 beta
April 10, 2026
Improved
- Biological Age calculation now uses smooth transitions across all health domains — more accurate and stable results
- Peak Day detection requires stronger HRV signal — fewer false positives on noisy measurement days
- Circadian rhythm scoring now handles shift workers and irregular wake times correctly
- Touch targets enlarged across the dashboard for better mobile experience
- Performance optimizations — faster scoring, reduced server resource usage
Fixed
- Data sync no longer discards valid sleep records in rare edge cases
- Health data distribution models now correctly include all valid measurements
- Dashboard sync indicator no longer blocks header controls
- Security hardening and infrastructure improvements
v0.96 beta
April 7, 2026
Improved
- Sleep Quality score now reflects individual nights — a bad night drops your score immediately instead of being hidden by weekly averaging
- Sleep Quality now uses 6 signals (provider score, sleep phases, duration, efficiency, overnight recharge, trend) instead of a single average
- Circadian rhythm scoring recalibrated — deep sleep consistency no longer penalizes normal night-to-night variation
- Training recommendations now precisely match your readiness zone — no more intense workout suggestions on moderate-readiness days
- Trend explanations now correctly identify the driving signal for each health index change
Fixed
- Deep sleep values under 5 minutes are now filtered out (sensor misclassification)
- Illness risk adjustments from morning energy patterns are now visible in score diagnostics
- Historical scores recalculated to match updated algorithms — no artificial jumps in trend charts
v0.95 beta
April 5, 2026
New
- Extended signal coverage to 19 signals across 5 providers (was 14)
- Polar: SpO2, skin temperature, VO2max, weight, and ANS Charge (recovery score) now synced
- Fitbit: daily activity stats (steps, calories, floors) and VO2max (Cardio Fitness Score) now synced
- Withings: skin temperature and respiratory rate from sleep data now synced
- Signal Matrix — new categorized comparison table on the Devices page (5 categories, 27 signals)
- Sleep efficiency, floors climbed, and distance now tracked in daily summaries
Improved
- Sleep summaries now include HRV, respiratory rate, and SpO2 from all providers
- Resting HR and HRV now applied across all historical days (not just today)
- Provider comparison table in the app now shows 5 categorized groups
- Complete device lists for all providers (specific models instead of generic descriptions)
Fixed
- Website content audit — removed references to unsupported providers, corrected all signal and metric counts
- Czech language improvements — formal address (vykání), diacritics, and typo corrections across 20+ files
v0.94 beta
April 4, 2026
New
- Feature pages — dedicated pages for Health Pattern Detection, Biological Age, and Body Status
- Database migration system — automatic schema upgrades without data loss
- Admin panel redesign — improved UX, SMTP testing, email management
Improved
- Weekly health digest — skips users without data, fixed bio age template rendering
- Login flow — deduplicated ceremony code, added IP blocking on OTP verification
v0.93 beta
March 29, 2026
New
- CI/CD pipeline — automated testing on every commit via GitHub Actions
- Disaster recovery plan and Data Protection Impact Assessment documentation
Improved
- Test coverage expanded from 353 to 875+ tests across the entire codebase
- Exhaustive code review — 40,000+ lines reviewed, 35+ fixes with zero regressions
Fixed
- Rate limiter now uses real client IP (was using proxy IP)
- Admin panel — split into sub-modules for better maintainability
v0.92 beta
March 22, 2026
New
- Accessibility (WCAG 2.1 AA) — keyboard navigation, focus traps, ARIA labels across the app
- Progressive Web App (PWA) — installable on mobile with offline support
- FAQ page — 26 questions across 5 categories with search
- Body Status gauge — continuous 5-state visualization (Alert → Recovery → Steady → Strong → Peak)
Improved
- Security hardening — scrypt-hashed OTP, TLS 1.3, non-root containers, 100% admin audit logging
- SEO audit — structured data, canonical URLs, hreflang tags on all pages
Fixed
- Professional quality audit — 14 backend + 9 frontend fixes, dependency pinning
- Czech text standardization — formal address (vykání) across all components
v0.91 beta
March 18, 2026
New
- Scoring engine v2 — complete overhaul of all 12 health indices with evidence-based formulas
- Free lifetime pricing — all features free for early adopters, paid plans as voluntary support
- Legal compliance — privacy policy, terms of service, GDPR data export and deletion
- Rate limiting and monitoring — request throttling, error alerting via Telegram
Improved
- Authentication rewrite — password-first flow with 6-step state machine, anti-enumeration
- Codebase restructuring — health_scores, database, ai_engine, routes as packages
- Gzip/zstd compression, code splitting, lazy-loaded routes
v0.90 beta
March 12, 2026
New
- MyBodyAI platform launch — 12 health indices, biological age, body status, training readiness
- Dashboard with 3 view modes — Command Center, Focus, and Zen
- 4 provider integrations — Polar, Fitbit, Withings, and Strava via Open Wearables API
- Gamification — 26 achievements, 10 ranks, BioClass evolution system
- AI-powered insights — pattern detection, trend analysis, micro-tips, and daily targets
- Bilingual interface — full English and Czech support with formal Czech address