Repository navigation
Releases: davadev/Garmin-Health-Sync
Releases · davadev/Garmin-Health-Sync
Release list
0.12.1
Fixed
- The two CSS warnings of the Obsidian review ("Unexpected duplicate max-height" and "Unexpected duplicate border-top"): the fallbacks for older engines (
dvhunits andcolor-mix) now sit in@supportsblocks instead of repeating the property. The look does not change.
Changed
- The README (all six languages) states under Data & Privacy why the plugin lists the vault's files (
vault.getMarkdownFiles): to find daily notes and its own history notes, never sending names or contents anywhere.
Added
- A "what's new" entry for 0.12.1 (six languages) that names the two changes above. The 0.12.0 notes say the side panel switches itself on when opened and that a new install shows only the cards with data (the text still told to switch it on in the settings first).
Internal
stylelintnow enforcesdeclaration-block-no-duplicate-properties, andcheck-releasefails if the rule is removed, so the warning cannot come back unnoticed.
0.12.0
The release of the health panel. The detail of every step is in the 0.12.0-beta.N sections below.
Added
- Health panel in the right sidebar (ribbon icon or Open health panel; opening it switches it on). It reads your daily notes and the history notes, follows the note you have open, steps through days and has a day picker, a sync button and a button to arrange the cards. 19 cards in sections Today, Recovery, Sleep, Energy, Movement, Fitness and Training: readiness verdict, HRV, resting heart rate, SpO2, breathing, habits, sleep and sleep stages with a timeline, body battery, stress, hydration, steps, intensity minutes, floors, VO2 max, body, load balance, weekly load and sessions (with heart rate zones from an optional birth year). Every card has a switch; a fresh install shows only the cards that have data, existing installs keep every card they had.
- What your data suggests under the light bulb of each card: interpretations that fire only on your own numbers, never generic advice, each documented in
docs/panel-insights.md. "How to read this" explains the metric, and long-view numbers show the last year. - Lifestyle log (habits): the habits you log in Garmin Connect (yes or no, or a count such as coffee) are synced as
lifestyle_*properties and shown in the Habits card, compared with the HRV and resting heart rate of the night after, against your own baseline, with an honest "not clear yet" while the data is thin. Habits can be hidden in the card; dropped habits disappear. - History notes (monthly notes with one JSON line per day), Build Garmin history, Import history from daily notes, and one robust Backfill health data command with progress, resume after a restart and retry of failed days.
- New metrics: water intake and goal, bedtime and wake-up time, stress and recovery minutes. New setting Days without a daily note and Properties of daily notes (leave, fold, hide, or both). A birth year for heart rate zones.
- A fresh install sets itself up from existing notes (metrics, prefix, units, lifestyle log, panel) and follows the Daily Notes or Periodic Notes plugin when its folder or format changed.
- Copy diagnostics includes the shape of Garmin's answers and what the panel sees in the vault. Docs pages for metrics, panel cards, panel insights, settings, history and troubleshooting; README screenshots rendered from the real panel code; a "what's new" entry in six languages.
Fixed
- Blood oxygen (SpO2) is written (the field name was wrong), a missing HRV night stays a gap, a failed endpoint no longer marks a day complete or logs you out, each request has its own timeout, and a backfill never loses days.
- Many robustness fixes of the panel's statistics (outliers, ties, zero values, units) and its drawing (redraw only for relevant notes, follows midnight).
- Mobile: the panel cannot scroll sideways, half-width cards stack on a narrow panel, labels survive a large Android font, touch targets, and "What's new" scrolls only vertically.
Changed
- The sync leaves the frontmatter of your notes as you wrote it. Readiness is gentler with a young history. Three backfill commands became one.
Internal
- Tests at 100 % coverage (statements, branches, functions, lines), contract tests against real Garmin answers, translation sync check, dead-code check, cloud-parity lint.
0.12.0-beta.97
Changed
- Asking for the side panel switches it on. The ribbon icon and the command Open health panel no longer say "turn on the health panel in the settings first": they switch it on and open it. The switch in the settings is still there and turns the panel off again.
- A fresh install shows only the cards that have data. A card with nothing to show (no value of its metrics in the last 90 days, no workout, no habit) is left out until it has data; if no card has data, all are shown so the panel is never blank. A card you switch on in the settings stays, one you switch off stays off. Settings saved before this beta keep every card they had (nothing is switched off for existing users).
Fixed
- The panel could slide sideways on a phone. Two half-width cards (SpO2 and breathing) needed 324 px next to each other, more than a 360 px phone has inside the panel, so a card head stuck out by up to 30 px. A panel narrower than two 190 px cards now stacks them, and the panel itself never scrolls sideways.
- Android with a large font: labels ran into each other. In the weekly card "limit 244" wrapped onto the line below and overlapped "Noch 184 Min."; in the load card the zone names "Belastung" and "Überlastung" ran together. The bar labels no longer wrap and the room under them grows with the font size, and the zone names keep the width they need. Checked in a headless browser at 320, 360 and 412 px with the normal and a 1.3 times larger font.
0.12.0-beta.96
Fixed
- The panel looked in an old folder after the daily notes plugin changed. The plugin read the folder and format of the Daily Notes or Periodic Notes plugin once and kept them, so after you changed them there (or moved your notes) it went on looking in the old place and found no data. At every start the saved folder and format now follow the daily notes plugin when that one says something else and its daily notes are newer than the ones the saved setup finds. A saved setup whose notes are as new or newer stays, so a folder you set yourself is not overridden. A notice says when it follows.
0.12.0-beta.95
Added
- Copy diagnostics shows what the panel sees in the vault. A last
notes:line gives the panel switch, whether a daily note folder is set, the name format, how many daily notes were found (and the newest day), how many hold Garmin properties, and which of our own properties the newest of those holds. No note name and no value. It tells apart a wrong folder or format from notes without Garmin properties. - The panel says when it finds notes but no Garmin data. One line with the number of notes and the newest day, instead of a card of "no reading" after another.
Fixed
- Two notes of one day no longer hide each other. With notes now counted in any folder, an archive copy or a template named by date could replace the real note of that day in the panel. Their properties are merged: what one leaves blank the other fills in.
0.12.0-beta.94
Fixed
- A second device with daily notes in the vault root and another name format found no notes. The format of the Daily Notes or Periodic Notes plugin was only taken over together with a folder, so with notes in the root (no folder) and a format such as
DD.MM.YYYYthe defaultYYYY-MM-DDstayed and nothing matched. An untouched format now follows the daily notes plugin; a format you changed stays.
Added
- The panel says when it finds no daily notes. Instead of a card of "no reading" after another it shows one line: which name format (and folder) it looks for, and that both can be set in the plugin settings. It disappears as soon as a daily note or a day of the history is found.
0.12.0-beta.93
Added
- A fresh install on a second device sets itself up from the notes. With no saved settings and a daily note that holds at least three Garmin properties (a blank property of a template does not count), the plugin switches on the metrics it finds, takes the
ohs_prefix and miles or pounds from the notes (so a first sync does not write a second set of properties next to the first), reads the lifestyle log when habits are there, and switches the side panel on. A notice says so. Nothing is ever switched off, it looks once at startup and once more when Obsidian has indexed the vault, and it never runs again once settings are saved. - The Habits card works without a sign-in. It names the habits from the
lifestyle_properties of the notes and the history (a habit with an amount above 1 is a counted one) until a sync brings Garmin's own names; names from Garmin win.
0.12.0-beta.92
Fixed
- The panel found no daily notes while the daily note folder was empty in the settings. On a second device (a desktop that got the notes through Obsidian Sync, where the plugin's own settings did not come along) the folder setting is empty, and a note such as
Daily/2026-10-29.mdwas not recognised as the daily note of its day, so every card stayed empty although the properties were in the notes. The panel never needed a Garmin sign-in; it only reads the notes. With no folder set, a note named by date in any folder is now a daily note. With a folder set, only notes below it count, as before.
0.12.0-beta.91
Fixed (final sweep of the lifestyle log)
- A habit keeps its key when Garmin renames it or changes its language. The key (
lifestyle_alcohol) was made from the name on every sync, so a rename in the app, or an account language switch that translates the stock habits, started a new key and cut the history in two. The plugin now remembers Garmin's id of each habit and keeps the key it first gave it; the name shown follows Garmin. Habits seen before this beta get their id on the next sync (the key stays as it was while the name is unchanged). - Two habits that read the same get the same keys on every day. The second one used to get its suffix by the order of the list, which could swap the two between days.
- A dropped habit shows on the days before its last one. A habit Garmin stopped listing was hidden on every day you looked at, also on the days when it was in use. It is now hidden from the day after its last listing.
- The Habits card is faster with many habits. The usual values of the nights are worked out once and shared by all habits, not once per habit.
Docs
- README (six languages) has a Features line for the lifestyle log, and the troubleshooting page a section on habits (empty card, no bars, renamed habits, removed values, days from before).
0.12.0-beta.90
Fixed
- The What's new window scrolls only up and down. An illustration in the notes was wider than the window on a phone (396 px content in a 234 to 324 px box), so the text could be dragged sideways and bounced. The illustrations now shrink to the window, long words wrap, the list indent is smaller, and the window is set to vertical scrolling only (no horizontal bar, no sideways swipe, no rubber band). Checked in a headless browser at 340, 390 and 430 px wide: the content width equals the window width.