Repository navigation
Releases: tareqayz/Obsidian-Garmin-Connect
Release list
1.0.2
Changed
- Two command names no longer repeat the plugin's name, which the command palette already shows:
Sign in and Set up…. Command ids are unchanged, so hotkeys keep working.
Removed
- The one-time copy of old day notes, which 0.1.0-beta.1 and 0.2.0-beta.1 wrote. The notes stay
where they are, and the history download fetches those days from Garmin again.
Fixed
- The Community directory's review no longer warns about the plugin's code or the map styles.
1.0.1
Fixed
- The plugin's description no longer says "Obsidian" or starts with the plugin's name, which
the Community directory's release check rejected.
1.0.0
The first stable release, and the first in the Obsidian Community directory. It has the same
features as 1.0.0-beta.1.
1.0.0-beta.1
Added
- A page for every activity, whatever the sport, from every list that shows one.
- Rides: the route by power zone, Power and Cycling Dynamics, and charts down to the power
phases and the Power Curve. - Pool swims: the interval table and a bar a length.
- Open-water swims: the route and charts.
- Every other sport: the sections the sports share.
- Rides: the route by power zone, Power and Cycling Dynamics, and charts down to the power
- Sensors and badges on every activity's Overview, named as the app names them.
- An "All … Activities" link under every activity, not only runs ("All Walking Activities"
under a walk), opening the hub's page for its group or All Activities filtered to it. - All Activities, as Garmin's new page.
- A search that ignores case and accents.
- A Filters sheet: activity groups, dates, distance, time, ascent, event type, favourites,
records. - Chips, the exact count, and four sorts.
- Copy debug info: what a bug report needs, redacted, with no request and no sign-in.
- Stop syncing, Pause the history download and Resume the history download commands.
Changed
- The Garmin session stays on the device, in Obsidian's keychain rather than
data.json.- Each device signs in once.
- A device that only reads what another syncs says "Not signed in on this device".
- Needs Obsidian 1.11.4.
- Gentler on Garmin by default. New installs sync at Gentle. The history download keeps to
2,500, 5,000 or 8,000 requests an hour by speed, down from 5,000–15,000, counting everything the
device asked. - Run details is now Activity details, for every sport. A Run details range carries on for
runs; the other sports are offered once in New data for your history. - The activity index is version 3 (event type, favourites, records, a pool's unit), and an
activity's file is version 6.- The index is listed again once you agree.
- A run saved before asks only its summary and badges again.
- Sport names are the app's, from a table of Garmin's activity types.
- Region on the sign-in step, so a China account signs in against garmin.cn from the start.
- Diagnostics are safe to paste.
- Emails, tokens and IP addresses are scrubbed, and names become placeholders.
- New installs save a run only when you ask: Save every diagnostics run to the vault is now
off by default. - The checks that use the session don't run during a sync.
- A generic icon: Lucide's watch instead of a trace of Garmin's logo.
- The data and log folder settings save on Enter or on leaving the field, and refuse the vault's
root, hidden folders and the settings folder. - The uninstall prompt waits until the plugin's folder is gone at two checks in a row, and can
take the diagnostics notes too. - An unknown answer at sign-in now names Garmin's status, instead of "Unexpected login
response".
Fixed
- A failed token refresh signed every device out. Only Garmin saying the token is spent ends a
session now. - Garmin's bot check refusing the device didn't stop the history download. It now pauses for half
an hour, doubling up to twelve hours. - A JSON 403, or a privacy-protected day, read as a dead session. Now only that request fails,
with a warning. - An unexpected payload aborted the whole sync and wedged the download. The day now fails alone,
and a download piece that fails three times waits for the next session. - A request that never answered held the sync until Obsidian restarted. Requests give up after a
minute. - The history download booked today as fetched. Today is never booked as whole.
- An unreadable data file was written over, losing its history. It is now set aside as
….unreadable-….jsonand fetched again. - An older version on another device wrote over a newer version's files. It now stops and asks
to be updated. - A short page partway down the activity list replaced the index. A listing now replaces it only
when it is about as long as Garmin's count. - Sync services' conflict copies went unnoticed. The first gets a notice, and Delete synced
data now also removes Syncthing's and Dropbox's copies and set-aside unreadable files. - A page that threw blanked Home, even after a restart. It now shows a card with Copy debug
info and Back to Home. - A Home tab left open past midnight kept yesterday. It moves to the new day within a minute.
- An update left the old version's dialogs open. Unloading closes them.
- Every sync's notice said "Garmin returned no rows" for accounts without VO₂ Max or race
predictions. That stays in the log now. - An activity file could put HTML into a lap marker. Lap numbers are drawn as text.
- Perceived Effort's dot colours now go in the app's pairs.
0.2.0-beta.2
The plugin is now Garmin Connect, rebuilt inside Obsidian: the phone app's
Home, Activities, daily stats, Sleep and Health Stats pages, drawn from data
the sync keeps in your vault. The configurable dashboard that came before it is
gone.
Added
-
Home. Garmin Connect's home screen, opened by the ribbon icon or Open
home. All three of the app's presets (Be healthy, Stay active, Track my
training), and At a Glance with 36 cards. Its See All page has an edit mode:
remove, reorder (drag or arrow keys) and Add a Stat, up to 20 cards. -
Activities. From Home's ⋯ menu, More → Activities:
- one page per sport, with distance, time, ascent and calorie totals over a
week, four weeks or a year, and a page per month; - All Activities and Personal Records.
They read an activity index the sync keeps in
<data folder>/activities/. - one page per sport, with distance, time, ascent and calorie totals over a
-
Steps, Floors and Intensity Minutes. Pages for a day, a week, four weeks
and a year, read from a daily stats index in<data folder>/daily-stats/. -
Sleep. The night's score, stages and timeline, its factors, and the Sleep
Coach, plus the weekly, four-week and yearly views. Read from a sleep index in
<data folder>/sleep/. -
Health Stats. From More → Health Stats, a hub with these pages. They read
the histories the sync keeps under<data folder>/; Health Snapshot loads on
view.- Health Status, Weight, Pulse Ox, Pulse Ox Acclimation
- Respiration, Heart Rate, Blood Pressure, Stress, Body Battery
- Fitness Age, Health Snapshot
- Lifestyle Logging (Garmin's empty state for now)
-
Commands.
- A command to open each page: Open activities, Open steps, Open
sleep, Open stress and so on. - A command to sync each history: activity; step, floor and intensity;
sleep; and each of the nine Health Stats indexes. Each history also fills
in by itself after the first sync of a session, until it is complete.
- A command to open each page: Open activities, Open steps, Open
-
Three metric groups.
intraday: the day's heart rate, stress, Body Battery, steps, floors and
intensity curves, kept in<data folder>/series/<date>.jsonfor
the newest seven days of a sync.health: Health Status and Health Snapshots.profile: the watch, personal records, lactate threshold and training plan
in<data folder>/account.json, about nine requests a sync.
A vault that predates them gets them switched on once.
-
The API catalogue now covers the Activities and Health Stats endpoints: 167
in all, 69 of them checked against the live service every day. -
For contributors:
- CI builds and tests every pull request;
- release notes come from this file;
- the
/garmin-pagepipeline (.claude/skills/garmin-page/) rebuilds a
Garmin page from the phone and web app.
Changed
-
Command and ribbon names. The ribbon icon is Open Garmin Home, and:
- Open dashboard → Open home;
- Run connectivity probe → Run diagnostics;
- Rebuild the Garmin table view → Rebuild the table view.
Command ids are unchanged, so hotkeys keep working.
-
Settings.
- The Diagnostics section is now Advanced.
- Races and workouts show what they cost: one request per sync, not one a
day. - New vaults save diagnostics runs to
Garmin/diagnostics.
-
Requires Obsidian 1.9.10 or later, the first release with Bases, which
the generated table view needs.
Fixed
- VO₂ Max and training status now reach the day notes. The sync was looking
for them in the wrong place in Garmin's responses.
Removed
-
The classic dashboard. The following are gone:
- Open classic dashboard and its layouts;
- the history charts for HRV, readiness, recovery, training load, VO₂ max,
endurance and race predictions; - the per-activity detail (splits, heart-rate zones, elevation);
- the calendar heatmap and the data table;
- its Backfill… button.
The data is all still there:
- your day notes and the Bases table keep every value;
- Home's At a Glance cards show the latest;
- Sync a date range… still backfills.
Performance Stats and an activity detail screen are next to be rebuilt (see
TODO.md).
Hotkeys bound to Open classic dashboard no longer do anything, and a tab
of it left open reopens as Home. -
The one-off clean-up, and its notice, for settings written by pre-release
builds. -
For contributors:
npm run probe:nodeandnpm run preview:dashboard.
0.2.0-beta.1
The plugin is now Garmin Connect, rebuilt inside Obsidian: the phone app's
Home, Activities, daily stats, Sleep and Health Stats pages, drawn from data
the sync keeps in your vault. The configurable dashboard that came before it is
gone.
Added
-
Home. Garmin Connect's home screen, opened by the ribbon icon or Open
home. All three of the app's presets (Be healthy, Stay active, Track my
training), and At a Glance with 36 cards. Its See All page has an edit mode:
remove, reorder (drag or arrow keys) and Add a Stat, up to 20 cards. -
Activities. From Home's ⋯ menu, More → Activities:
- one page per sport, with distance, time, ascent and calorie totals over a
week, four weeks or a year, and a page per month; - All Activities and Personal Records.
They read an activity index the sync keeps in
<data folder>/activities/. - one page per sport, with distance, time, ascent and calorie totals over a
-
Steps, Floors and Intensity Minutes. Pages for a day, a week, four weeks
and a year, read from a daily stats index in<data folder>/daily-stats/. -
Sleep. The night's score, stages and timeline, its factors, and the Sleep
Coach, plus the weekly, four-week and yearly views. Read from a sleep index in
<data folder>/sleep/. -
Health Stats. From More → Health Stats, a hub with these pages. They read
the histories the sync keeps under<data folder>/; Health Snapshot loads on
view.- Health Status, Weight, Pulse Ox, Pulse Ox Acclimation
- Respiration, Heart Rate, Blood Pressure, Stress, Body Battery
- Fitness Age, Health Snapshot
- Lifestyle Logging (Garmin's empty state for now)
-
Commands.
- A command to open each page: Open activities, Open steps, Open
sleep, Open stress and so on. - A command to sync each history: activity; step, floor and intensity;
sleep; and each of the nine Health Stats indexes. Each history also fills
in by itself after the first sync of a session, until it is complete.
- A command to open each page: Open activities, Open steps, Open
-
Three metric groups.
intraday: the day's heart rate, stress, Body Battery, steps, floors and
intensity curves, kept in<data folder>/series/<date>.jsonfor
the newest seven days of a sync.health: Health Status and Health Snapshots.profile: the watch, personal records, lactate threshold and training plan
in<data folder>/account.json, about nine requests a sync.
A vault that predates them gets them switched on once.
-
The API catalogue now covers the Activities and Health Stats endpoints: 167
in all, 69 of them checked against the live service every day. -
For contributors:
- CI builds and tests every pull request;
- release notes come from this file;
- the
/garmin-pagepipeline (.claude/skills/garmin-page/) rebuilds a
Garmin page from the phone and web app.
Changed
-
Command and ribbon names. The ribbon icon is Open Garmin Home, and:
- Open dashboard → Open home;
- Run connectivity probe → Run diagnostics;
- Rebuild the Garmin table view → Rebuild the table view.
Command ids are unchanged, so hotkeys keep working.
-
Settings.
- The Diagnostics section is now Advanced.
- Races and workouts show what they cost: one request per sync, not one a
day. - New vaults save diagnostics runs to
Garmin/diagnostics.
-
Requires Obsidian 1.9.10 or later, the first release with Bases, which
the generated table view needs.
Fixed
- VO₂ Max and training status now reach the day notes. The sync was looking
for them in the wrong place in Garmin's responses.
Removed
-
The classic dashboard. The following are gone:
- Open classic dashboard and its layouts;
- the history charts for HRV, readiness, recovery, training load, VO₂ max,
endurance and race predictions; - the per-activity detail (splits, heart-rate zones, elevation);
- the calendar heatmap and the data table;
- its Backfill… button.
The data is all still there:
- your day notes and the Bases table keep every value;
- Home's At a Glance cards show the latest;
- Sync a date range… still backfills.
Performance Stats and an activity detail screen are next to be rebuilt (see
TODO.md).
Hotkeys bound to Open classic dashboard no longer do anything, and a tab
of it left open reopens as Home. -
The one-off clean-up, and its notice, for settings written by pre-release
builds. -
For contributors:
npm run probe:nodeandnpm run preview:dashboard.
0.1.0-beta.1
0.1.0-beta.1