Skip to content

OpenVitals 2.11.0

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

Released 2026-09-28.

This release rebuilds cycle tracking around a day log: bleeding, pain, mood, energy, symptoms, notes and tests for one day, logged one thing at a time and saved together, with next-period ranges built from your own history, cycle reminders, a home-screen widget, a cycle section in the health report and a journal backup. It adds a contraceptive pill scheme with a daily reminder and a Taken mark, brings Day, Week, Month and Year to the caffeine screen, and fixes sections that drew their cards on top of each other. Health Connect keeps every record it has a type for; what it cannot hold stays on the phone.

Added

  • A day log for the cycle. One day, everything you record, saved together: bleeding (none, spotting, light, medium or heavy), pain, mood and energy on a 1 to 5 scale, symptoms in three groups with a one-tap copy of yesterday's, private notes, a pregnancy test, temperature disturbances and cervical sensation, next to the ovulation test, sexual activity, basal temperature and cervical mucus records. Health Connect keeps every record it has a type for; the rest lives in a journal on the phone that leaves it only through your own backup or phone-to-phone sync. Blank means not recorded, never "no symptoms".
  • Log one thing at a time. The Log button asks what you want to log: bleeding, how you feel, a pregnancy test, an ovulation test, sexual activity, basal body temperature or cervical mucus, one card each, and opens only that section. The full day log stays one tap away, and a day that already has entries opens in full for editing.
  • Contraceptive pill. Settings, Cycle gains a pill card: days taking and days pausing (21 and 7 by default), the first day of a pack, and a daily reminder at the time you choose. The cycle screen shows which day of the pack you are on with a "Mark as taken" button; the reminder stays quiet once today is taken and carries a Taken action of its own. The scheme and the taken days sync between your phones.
  • Estimates you can read. The next period is a range built from your own history: the last cycle lengths, widened by an age band taken from your body profile and by the contexts you declare in Settings, Cycle (PMS, PMDD, endometriosis, PCOS, perimenopause, thyroid). Contexts never move a date, they only widen the range, and nothing assumes a 28-day cycle. Recorded facts and estimates are labelled apart everywhere. A cycle can be excluded from the estimate with a reason, and a past period can be added.
  • Today on the cycle screen. The recorded cycle day, the phase when it can be told, a sourced tip or fact, cycle length statistics, a variability view with a bar per cycle, a basal temperature chart with a coverline once a sustained shift is found, and symptom patterns by phase. The month calendar shows flow fills, the estimated window, cycle starts and observation dots.
  • Cycle reminders. Three local reminders in Settings, Cycle, off by default: a daily check-in that is skipped once the day is logged, a heads-up before the estimated range, and a quiet prompt when a cycle runs past it. The text is neutral by default, with descriptive or custom wording as options, and the lock screen always shows neutral text. They re-arm after a reboot, an update, or a clock or time-zone change.
  • Cycle widget and dashboard tile. A home-screen widget shows the recorded cycle day, the estimated range and whether today is logged, never notes, symptoms, mood or energy, and redraws after midnight. A dashboard tile shows the same.
  • Cycle in the health report. The PDF report gains a Cycle tracking section: the cycle-day chart, length statistics over completed cycles, a table per cycle, bleeding and pain counts, symptom counts on and off bleeding days, the notes and a disclaimer.
  • Journal backup. Settings, Cycle exports the journal, the excluded cycles, the contexts and the age band as a JSON file and imports one back. An import merges: the newer edit per day wins, exclusions are added, and the contexts and age band fill a phone that declared none.

Changed

  • The cycle screen is a month calendar over today's cards. The Day, Week, Month and Year selector is gone from this screen: it only reshaped the calendar, and badly outside Month. The arrows and the date picker move the month. The sections can be arranged from the app bar, like on any other metric screen.
  • Phone-to-phone sync carries the cycle journal. Day logs, excluded cycles, the contexts and age band, the pill scheme and the taken days move with the cycle category. A day edited on both phones keeps the later edit; taken days merge; reminder settings stay on their phone. Both phones need this version for the new items.
  • Caffeine like the other metrics. Day, Week, Month and Year with a period to step through, a date picker and sections you can reorder. Every card stays: the day's curve with the threshold and each drink, the bedtime level, period totals, the safe-night calendar, and statistics with a previous-period comparison. Drinks older than the seven-day lookback no longer count toward a level.

Fixed

  • Stacked sections. A reorderable section with a heading and a card drew them on top of each other. Hydration showed it: the reminder card hid the daily goal card, and the statistics grid covered its own heading. A section's content now stacks.
  • Leaving an edited day log. Back and the top-bar arrow asked "Leave without saving?" and then did nothing. Leave now returns to the previous screen.
  • Day-log rows in the cycle entries list. The long summary took the whole row and the title fell to one letter per line. The summary now wraps under the date.
  • Caffeine threshold wording. A level counts as over the sleep threshold only when it shows as more than the threshold: 60.4 mg reads "60 mg" and was called "above your 60 mg threshold".

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

Home

Features

How-to

App

Reference

Engineering

Proposals

Releases

Project

Clone this wiki locally