Changed pushReplacement to push in onboarding navigation so the
onboarding screen stays in the nav stack when moving to baseline.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Previously the app jumped directly to ResultsScreen when user had
existing data, bypassing the WelcomeScreen entirely. Now returning
users see WelcomeScreen where they can Start and choose to continue
from their last saved run or start fresh.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
When tapping Start with existing saved runs, shows dialog asking
whether to continue from last run or start fresh. Continuing pre-fills
all profile and behavior inputs from the saved run.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Changed divisions from 170 to 374, giving approximately 0.45 kg per
step (~1 lb precision) instead of 1 kg per step (~2.2 lbs).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Shows all profile and behavioral inputs in a single scrolling list
instead of paginated screens. Displays formatted values for all fields.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Former smokers have already quit - they can't take further action
on smoking. Treat them as optimal for the smoking behavior.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add Skip/Skip Forever links to onboarding screens only
- Remove Skip links from questionnaire screens (baseline, behavioral, lifestyle)
- Add app icon (1024x1024) and generate all platform sizes
- Update About screen with correct URLs (privacy, terms, disclaimer, how it works)
- Add "No ads. Ever." section to About screen
- Configure Android release signing with upload keystore
- Add URL intent query for Android 11+ link launching
- Add skipForever preference to LocalStorage
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Features:
- Save calculation runs with custom labels for later retrieval
- View saved runs list with dominant factor summary
- View detailed results of any saved run
- View original inputs in read-only mode
- Use any saved run as starting point for new calculation
- Compare two saved runs side-by-side
- About screen with app info, help links, privacy policy
- Metric/Imperial unit toggle persisted across sessions
- Info icon in app bar on all screens
Technical:
- New SavedRun model with full serialization
- SQLite saved_runs table with CRUD operations
- readOnly mode for all input screens
- Unit preference stored in LocalStorage
- Database schema upgraded to v2
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Split behavioral inputs into two screens (Habits + Lifestyle)
- Added 5 new modifiable factors: diet quality, processed food,
drug use, social connection, and stress level
- Updated hazard ratios for all new factors based on meta-analyses
- Model version bumped to 1.1
- Simplified welcome screen with clearer value proposition
- Updated tests for expanded behavioral model
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Added "Add Months" header with subtitle
- Numbered step indicators (1, 2, 3) with progress lines
- Checkmarks for completed steps
- "Step X of 3" badge on each slide
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 3-slide onboarding: baseline, questions, results
- Replaced welcome screen with onboarding flow
- Tightened uncertainty range from ±40% to ±20%
- Ranges now more precise (e.g., 58-86 vs 40-104 months)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Local-first Flutter app that identifies the single behavioral change
most likely to extend lifespan using hazard-based modeling.
Features:
- Risk engine with hazard ratios from meta-analyses
- 50 countries mapped to 4 mortality groups
- 6 modifiable factors: smoking, alcohol, sleep, activity, driving, work hours
- SQLite local storage (no cloud, no accounts)
- Muted clinical UI theme
- 23 unit tests for risk engine
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>