Release notes

Changelog

The story of PeriFlow, version by version.

Version 1.0.6

15 July 2026
Live on iOS Live on Android

Trust-and-retention polish on top of the 1.0.5 sleep + widget release. The bigger story is small: weight is now treated as a signal rather than a required onboarding field, journal entries auto-pick up symptom mentions from typed text (so writing "hot flash woke me up" now logs it), and a stale-cycle nudge prompts users to reconcile when their tracker has drifted. Also cleans up the two immediate follow-ups from 1.0.5 (Android widget layout crash, HealthKit / Health Connect error messages surfacing in Settings).

Added

  • Journal symptom pickup from typed text — writing about a symptom in a journal entry auto-logs it against the day.
  • Stale-cycle nudge — prompts reconciliation when the tracker's expected phase has drifted from likely reality.

Changed

  • Weight is optional and treated as a signal, not a hard field — onboarding no longer defaults to 65kg when the field is blank; weight is used only if provided.

Fixed

  • Android home-screen widget crash — accent bar rendered a React Native <View> where an Android FrameLayout was required, crashing the widget provider on first render.
  • HealthKit / Health Connect errors now surface in Settings — sleep import failures previously died silently; the actual error string is now shown in the Health Data row so users (and support) can see what went wrong.

Version 1.0.3

30 June 2026
Live on iOS

Public launch on both stores (2026-06-30). The scope headliner was full HRT support — for a perimenopause app to launch without HRT users would have been a real miss. Also shipped the journal voice-extractor overhaul (80+ new speech patterns), per-entry symptoms, adjustable symptom ratings, and a stack of App-Review-driven iOS fixes (photo library usage description, signing config for the new Apple Developer account, ci_post_clone.sh resilience). Site side, the App Store badge + iOS launch CTAs went up.

Added

  • Full HRT supportHRTStatus type (none/cyclical/continuous/estrogen_only/other), Phase type split (CyclePhase | 'steady'), useHRTConfig() hook, 8-step onboarding with GDPR Article 9 consent, Settings HRT section. All 6 tabs adapted for steady-state and cyclical HRT users. Correlation engine skips phase comparison for steady-state, reframes for cyclical. SourcesModal has 5 PubMed HRT refs. Supabase migration with health_data_hrt audit consent type.
  • Journal: per-entry symptoms + day-grouped list.
  • Journal: adjustable symptom ratings + Dashboard voice journal prompt.
  • Journal progress card redesign + 28-day strip scroll hint.
  • Site: HRT diet & exercise blog article + internal linking.
  • Site: App Store badge + iOS launch CTAs across the site.

Changed

  • Journal voice extractor — comprehensive overhaul — 80+ new speech patterns, cross-symptom inference, modifier fix.

Fixed

  • iOS ITMS-90683 rejection: NSPhotoLibraryUsageDescription missing — the actual cause behind the "builds 44–49 failed" saga.
  • 4 UX issues: keyboard overlap, phase-reveal, carbs layout, duplicate cards.
  • Reset device data now fully clears all stores + onboarding UX fixes.
  • iOS signing config for the new Apple Developer account (V2MWA3SWNK) — stripped signing fields from pbxproj, set DevelopmentTeam in TargetAttributes, set DEVELOPMENT_TEAM on paid account.
  • ci_post_clone.sh more resilient — retry brew install, check for existing node.

Something behaving oddly after an update? Email hello@periflow.io — include your app version (Settings → About) and what you're seeing. We read every message.