Skip to content

OpenVitals 2.6.5

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

Released 2026-08-19.

This release is about the app doing its job without being watched. The watch can now sync itself on a schedule, so sleep and activity arrive without opening the app. Sync with another phone stops choking on years of dense data and stops calling a partial transfer complete; when it fails, it now hands you the evidence instead of a shrug. A night slept in two goes no longer books the time out of bed as time awake. And the app speaks Czech.

Added

  • Automatic watch sync. A new Automatic sync setting on the watch's device screen syncs a Garmin watch on its own every 30 minutes, hour, or two hours - off by default and chosen per watch. Scheduled runs are quiet by design: a watch out of range at 3am is not a fault to report, and the last sync time is what says the schedule is working. Android chooses the exact moment, so a run can be a little late; the battery-optimization exemption offered during pairing keeps overnight runs close to schedule. The schedule survives reboots and updates.
  • Czech. A full translation, offered by the in-app language picker.
  • Notes on mindfulness sessions. The timer save and the manual entry form take a note, stored in Health Connect with the session, so it stays yours and moves with your data. The list keeps notes behind a deliberate tap, and editing a session can change or clear its note.
  • Beers in the beverage catalogue. Beer, lager, pilsner, stout, and alcohol-free beer, with nutrition filled in and honest hydration credit - an alcoholic beer counts less than its volume.

Changed

  • Sync with another phone handles years of data and slow links. A data-dense library - a bike computer's worth of heart rate samples - used to be read into memory whole, which pinned small phones at their heap limit until the session timed out. The transfer now streams, so memory use no longer grows with the size of the library. Batches are also capped by size on the wire, so a batch of sample-heavy records crosses a slow Bluetooth link before the other side gives up waiting, and a pause caused by Health Connect rate limiting no longer kills the session. Older versions of the app still sync with this one.
  • A failed sync explains itself. The failure screen now shows why the session aborted and how far it got, with the same Copy and Share report buttons a successful sync gets. The last report is also offered when you reopen the wizard, so it can still be sent the day after.

Fixed

  • Time out of bed is no longer counted as time awake. A night slept in two goes bridged the gap so the chart stays continuous, but the bridge was typed as awake: a 90-minute get-up read as 1h38m awake and dragged down sleep efficiency and the sleep score. The gap now appears in both the day and week charts as its own out-of-bed segment, in a colour no sleep stage uses, and stays out of the awake numbers. Sleep duration never counted it and is unchanged.
  • A partial transfer no longer reports itself completed. When sync with another phone could not read a page of records even after retrying, it used to end the stream quietly and let the session say it finished. It now aborts with the reason, on both phones' reports.
  • The mindfulness year heatmap shows the last twelve months. The rolling year window only drew the days that fell in the window's first calendar year, so the months since January - including today - were missing. The grid now covers the whole window, laid out in week columns with month labels.
  • Mindfulness entries no longer say "null". Sessions recorded by the old Flutter-era app stamped the word "null" where there was no note; those now read as having no note, and re-saving one scrubs it from the record for good.

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.5.md. Edit it there; changes made here are overwritten.

Home

Features

How-to

App

Reference

Engineering

Proposals

Releases

Project

Clone this wiki locally