Repository navigation
OpenVitals 2.6.0
github-actions[bot] edited this page Nov 9, 2026
·
1 revision
Released 2026-08-05.
This release is about the two conversations your health data has outside the app: with your doctor, and with you. A PDF report you can hand across a desk, menstrual cycle tracking that lives entirely in Health Connect, and blood-pressure logging that captures what clinicians actually ask about a reading. Everything is built on the device; nothing needs an account or the internet.
- Menstrual cycle tracking. Log period flow, spotting, sexual activity, ovulation tests, cervical mucus, and basal body temperature - one category at a time, each saved as its own Health Connect record. Period days are derived from your flow entries, and cycle statistics predict the next period using established fertility-awareness rules; when your cycles vary too much for an honest prediction, the app says so instead of guessing. Cycle data stays an explicit, separately granted Health Connect permission category, and OpenVitals stores none of it outside Health Connect.
-
Health report export (PDF). Pick metrics, a daily, weekly or monthly detail level, and a preset or custom range, and OpenVitals builds a PDF from Health Connect - on the device, with the platform's own PDF engine. Every metric gets a chart, summary statistics, and a data table; the report states its own gaps in print when a permission is missing, the range was truncated, or the build was cancelled. Metrics with more to say get clinical sections:
- Blood pressure: systolic and diastolic statistics kept separate, averages by meal context, and every reading listed with its position and cuff location. Contexts the user chose are shown as such; estimated ones are marked.
- Blood glucose: averages by relation to meal, fasting first - the number a doctor asks for.
- Workouts: totals per activity type and the full session list, not just minutes per day.
- Sleep: average bedtime and wake-up (averaged correctly across midnight), the deep/REM/light/awake stage mix, and one row per night.
- Body metrics show their change over the range, and body temperature lists every reading like a fever diary.
- Richer blood-pressure logging. The entry form gains three optional dropdowns - when the reading was taken (before/after breakfast, lunch, dinner), body position, and cuff location - plus a collapsible measurement guide covering the standard home protocol: rest five minutes, cuff two centimetres above the elbow crease, three readings with the first discarded, and the under-135/85 home target. Position and cuff location are native Health Connect fields, readable by any app.
- Distance backfill from steps. For setups where an app writes steps but no distance: an opt-in setting under Activities takes your stride length and fills in daily distance records only for days that have steps and no distance from any source. Derived records are marked as OpenVitals entries and are removed again if you turn the feature off.
- Portuguese. The app now speaks Portuguese, and Spanish, Italian, Estonian and German are complete again at 100%.
- The dashboard keeps tiles with recent history. A tile only sinks below the fold when its metric has no data today and none in recent days - Sleep no longer drops just because tonight has not happened yet. A new "Sort empty tiles last" display setting makes the behaviour a choice.
- Cycle screens allow screenshots. The previous release blocked capture on cycle screens; that also blocked the phone's owner, so it is gone.
- The base unit option is named "System" everywhere, matching the rest of the app (#247).
- Year-long heart-rate reads no longer risk coming back empty. Daily heart-rate and resting-heart-rate history is read in provider-safe slices, the same fix the nutrition series received earlier.
- Duplicated blood-pressure records are collapsed in the report. The same reading written twice to Health Connect - an import run twice, a second app echoing data back - counts once; genuine repeat measurements are kept.
The app keeps the same package name and signing certificate, so this installs as a normal update.
Distribution flow:
- Codeberg release with signed APK, signed debug APK, and signed Android App Bundle assets.
- Direct Google Play production upload from the approved Woodpecker deployment.
Generated from docs/releases/2.6.0.md. Edit it there; changes made here are overwritten.
This wiki mirrors the Markdown in Hale-MTU/OpenVitals on every push to main.
Features
- Features
- Achievements
- Activity And Training Plans
- Activity Metrics
- Apple Health Import
- Beverage Logging And Caffeine
- Bluetooth LE Sensors
- Body Energy
- Body Metrics
- CoMaps Navigation Context
- CSV Import
- Cycle Tracking
- Daily Readiness
- Elevation Correction
- Feature Map
- FIT Files Import
- Food Logging
- GPX/KML/KMZ/TCX Route Import
- Health Connect Metrics Dashboard
- Health Report Export
- Heart And Vitals
- Heart Rate Recovery
- Home Screen Widgets
- Hydration
- Manual Entry Of Metrics
- Medical Records
- Metric Detail Customization
- Mindfulness
- Non Health Connect Metrics Dashboard
- Nutrition
- Offline Maps Support
- Onboarding And Permissions
- Preloaded Beverage Nutrition Reference
- Privacy, Support, And Diagnostics
- Recording Of Activity
- Reminders
- Settings And Preferences
- Sleep Score And Recovery
- Sleep Tracking
- Statistics
- Sync With Another Phone
How-to
App
- App Guide
- FAQ
- Getting Started
- Health Connect
- Install
- Local And Connected Editions
- Permissions
- Privacy
- Screenshots
- Support
Reference
- Design Reference
- Reference
- Design Guidelines for Offline & Sync
- OpenVitals UI Notes
- Reference: Data Capture
- Reference: Data Display
- Reference: Health Connect Matchmaking
- Reference: Health Connect Onboarding
- Reference: Health Connect Permissions
- Reference: Health Connect UX
- Reference: Promoting Health Connect
Engineering
- Code Analysis
- Engineering
- Flutter ↔ Kotlin test-parity matrix
- apple-health-import
- Architecture
- body-cycle-recovery
- Design system conformance
- Development
- Feature Playbook
- Flutter -> Kotlin test parity: domain/data/core/contract/state/navigation/di/bootstrap/l10n/widget_test
- Flutter → Kotlin test-parity matrix: features section
- Flutter → Kotlin test-parity matrix: ui / goldens / integration / fixtures
- Flutter-to-Kotlin test-parity matrix — dashboard + devicesync
- manual-entry
- Translations
Proposals
- Proposals
- Activity Start Flow Analysis
- Activity Start Flow Simplification Proposals
- Caffeine Detail And Future Sleep Insights
- Cycle Tracking: Design and Status
- Medical Records Through Health Connect
- Medical Records: What Is Left
Releases
- OpenVitals 2.16.0
- OpenVitals 2.15.2
- OpenVitals 2.15.1
- OpenVitals 2.15.0
- OpenVitals 2.14.5
- OpenVitals 2.14.4
- OpenVitals 2.14.3
- OpenVitals 2.14.2
- OpenVitals 2.14.1
- OpenVitals 2.14.0
- OpenVitals 2.13.0
- OpenVitals 2.12.0
- OpenVitals 2.11.2
- OpenVitals 2.11.1
- OpenVitals 2.11.0
- OpenVitals 2.10.1
- OpenVitals 2.10.0
- OpenVitals 2.9.1
- OpenVitals 2.9.0
- OpenVitals 2.8.0
- OpenVitals 2.7.3
- OpenVitals 2.7.2
- OpenVitals 2.7.1
- OpenVitals 2.7.0
- OpenVitals 2.6.6
- OpenVitals 2.6.5
- OpenVitals 2.6.4
- OpenVitals 2.6.3
- OpenVitals 2.6.2
- OpenVitals 2.6.1
- OpenVitals 2.6.0
- OpenVitals 2.5.0
- OpenVitals 2.4.1
- OpenVitals 2.4.0
- OpenVitals 2.3.2
- OpenVitals 2.3.1
- OpenVitals 2.3.0
- OpenVitals 2.2.8
- OpenVitals 2.2.7
- OpenVitals 2.2.6
- OpenVitals 2.2.5
- OpenVitals 2.2.4
- OpenVitals 2.2.3
- OpenVitals 2.2.2
- OpenVitals 2.2.1
- OpenVitals 2.2.0
- OpenVitals 2.1.0
- OpenVitals 2.0.4
- OpenVitals 2.0.3
- OpenVitals 2.0.2
- OpenVitals 2.0.1
- OpenVitals 1.9.0
- OpenVitals 1.8.0
- OpenVitals 1.7.7
- OpenVitals 1.7.6
- OpenVitals 1.7.5
- OpenVitals 1.7.4
- OpenVitals 1.7.3
- OpenVitals 1.7.2
- OpenVitals 1.7.1
- OpenVitals 1.7.0
- OpenVitals 1.6.3
- OpenVitals 1.6.2
- OpenVitals 1.6.1
- OpenVitals 1.6.0
- OpenVitals 1.5.1
- OpenVitals 1.5.0
Project