Skip to content

OpenVitals 2.2.6

github-actions[bot] edited this page Nov 9, 2026 · 1 revision

Released 2026-07-17.

The largest release since the Flutter rebuild. Large Apple Health exports import without running out of memory, Garmin .fit files import from a folder, and the long-range overviews are much faster.

Fixed

  • Importing a large Apple Health export no longer runs out of memory. The export is now read a piece at a time instead of loaded whole, so a multi-gigabyte export.xml that used to crash a minute or two into the analysis now imports. Re-importing the same export no longer creates duplicate entries either — the identifier each record is matched on is stable again, so records you already imported are recognised instead of written twice.
  • Sleep is more accurate. Daytime naps are separated from the night, and overlapping sessions recorded by more than one source — a watch and a phone logging the same night — are de-duplicated instead of double-counted.

Added

  • Body Energy. A new screen that scores how much energy your body signals support today, from recovery-side inputs — sleep, heart-rate variability, resting heart rate, physiological stress, temperature, hydration, nutrition and mindfulness — on a 0-100 scale, and calibrates to how you say you feel.
  • Garmin .fit files import from a folder. Point the importer at a Garmin export and it reads sleep, heart-rate variability, resting heart rate, and basal metabolic rate. Files it cannot map are reported as skipped rather than failing the whole import, and the folder cap is high enough for a full export.

Changed

  • The Year and other long-range overviews are much faster. They keep a local cache of daily summaries and update only what changed since the last sync — via Health Connect's Changes API — instead of re-reading a year of records every time you open them. Dense charts also draw faster, with an opt-in aggregated view for very long ranges.
  • Charts pinch to zoom. The day view and the week, month and year views pinch to zoom, and the zoom keeps working while you scroll the page.
  • Reminder notifications use a proper monochrome status-bar icon.

The Codeberg and Play builds keep the same package name and signing certificate, so this installs as a normal update.

Distribution flow:

  • Codeberg release with per-ABI signed APKs (arm64-v8a and armeabi-v7a) and signed Android App Bundle assets.
  • Direct Google Play production upload from the approved Woodpecker deployment.

Generated from docs/releases/2.2.6.md. Edit it there; changes made here are overwritten.

Home

Features

How-to

App

Reference

Engineering

Proposals

Releases

Project

Clone this wiki locally