Skip to content

Releases: Wewoc/Garmin_Local_Archive

v1.6.5.4 — Frozen-Path Centralization

Choose a tag to compare

@Wewoc Wewoc released this 19 Jul 15:24

Internal cleanup: the logic that figures out "where are my files" when
running as a packaged EXE was scattered across six near-identical copies
plus a few smaller variants, and one of them was missing entirely — which
silently broke the Live Tracking dashboard update in the Standalone
version. Everything now goes through one shared module. No user-facing
feature changes, but one real bug fixed along the way.

What's new:

  • Fixed: Live Tracking dashboard failed to refresh silently in the
    Standalone (no-Python-required) build after a sync — now updates
    correctly.
  • Fixed: the "→ Open README" link on the Outputs screen did nothing when
    running from source (development mode) — now opens the file.
  • Internal: consolidated all frozen-build path resolution into a single
    frozen_paths.py module, closing four related findings from the
    standalone-parity audit.

Downloads:

  • Garmin_Local_Archive_Standalone.zip — recommended, no Python required
  • Garmin_Local_Archive.zip — standard, Python 3.10+ required

Full changelog

v1.6.5.2 — Token Lifecycle Log

Choose a tag to compare

@Wewoc Wewoc released this 16 Jul 13:23

A behind-the-scenes addition, no visible change to how the app works. The app now
quietly tracks when your Garmin login token was created and why it stopped working
(expired, rate-limited, encryption key lost, manually reset) — useful for
understanding how long a token actually lasts over time, instead of guessing.

What's new:

  • New file garmin_data/log/garmin_token_log.json — records timestamp, event
    type, and reason whenever your token is created or invalidated. Contains no
    passwords, no credentials, no token content — metadata only.
  • No change to login behaviour, no new buttons, no new settings.

Downloads:

  • Garmin_Local_Archive_Standalone.zip — recommended, no Python required
  • Garmin_Local_Archive.zip — standard, Python 3.10+ required

Full changelog

v1.6.4 — Custom Dashboard Builder

Choose a tag to compare

@Wewoc Wewoc released this 05 Jul 17:09

Pick any Garmin health field and any weather/pollen/air-quality field, set a date range, and build a one-off dashboard — no fixed dashboard list needed. Save your field selection as a named preset for reuse. Optional password-protected export for the HTML output.

What's new:

  • 🎛 Custom Dashboard button — free field picker (Garmin + Context), fixed or relative date range, HTML/Excel output
  • Named presets — save, reload, or delete a field selection
  • 🔒 Optional AES-256 encryption for the Custom Dashboard HTML output

Downloads:

  • Garmin_Local_Archive_Standalone.zip — recommended, no Python required
  • Garmin_Local_Archive.zip — standard, Python 3.10+ required

Full changelog

v1.6.3.1 — Heatmap Dashboard

Choose a tag to compare

@Wewoc Wewoc released this 03 Jul 13:37

New Heatmap dashboard visualizing six metrics (Heart Rate, Steps, Stress,
Body Battery, SpO2, Respiration) as time-of-day × date grids.

While building it, two independent long-standing bugs surfaced and got
fixed along the way:

  • SpO2 and Respiration intraday data was being silently dropped by the
    data broker for every dashboard, not just this new one — a structural
    mismatch between how Garmin's raw data is shaped and how it was being
    read. No data was ever lost (the raw archive was always correct), but
    none of it reached any dashboard.
  • Respiration's quality assessment was checking a key name that doesn't
    exist, so it could never be labeled as fully present.

Also: the Mirror Import dialog no longer asks you to "confirm" a password
you're just unlocking, not creating.

Full detail in CHANGELOG.md.

v1.6.3 — Steps Intraday Foundation + Backfill

Choose a tag to compare

@Wewoc Wewoc released this 02 Jul 15:59

Adds step count as a full intraday metric (15-minute resolution) alongside heart rate, stress, and Body Battery. A new background timer mode also retroactively fills this data into days you already archived — no need to wait for a fresh sync, and no risk to your existing high-quality data.

What's new:

  • Step count now archived at 15-minute intraday resolution, not just the daily total
  • New background timer mode automatically backfills step data into already-archived days from the last 140 days — runs quietly in the background, one lightweight API call per day
  • Fully additive: never overwrites or downgrades existing data, and both your raw archive and your unmodified source backup get the new field

Downloads:

  • Garmin_Local_Archive_Standalone.zip — recommended, no Python required
  • Garmin_Local_Archive.zip — standard, Python 3.10+ required

Full changelog

v1.6.2.1 — Build: T3 ZIP Structure + Docs Path

Choose a tag to compare

@Wewoc Wewoc released this 30 Jun 17:27

Hotfix for the standalone build. The Documentation button now correctly opens
Quickstart, User Guide, and README App — the files were previously missing from
the T3 package and were looked up in the wrong location after unpacking.

What's new:

  • Documentation button works in T3 (Standalone): QUICKSTART.txt, USER_GUIDE.txt,
    and README_APP.md are found and opened correctly
  • T3 ZIP structure fixed: contents are placed flat in the root after unpacking —
    no subfolder nesting

Downloads:

  • Garmin_Local_Archive_Standalone.zip — recommended, no Python required
  • Garmin_Local_Archive.zip — standard, Python 3.10+ required

Full changelog

v1.6.2 — Sleep Dashboard + Intraday Explorer

Choose a tag to compare

@Wewoc Wewoc released this 30 Jun 14:56

The Sleep Dashboard now includes an embedded intraday detail section.
Click any row in the sleep table to jump directly to that night's intraday
view — Heart Rate, Stress, Body Battery, and Respiration plotted in a
single interactive Plotly chart. No second file, no external links:
one self-contained HTML output.

What's new:

  • Sleep Dashboard rows are clickable — jumps to intraday detail for that date
  • Four intraday traces inline: Heart Rate, Stress, Body Battery, Respiration
  • Date dropdown for manual navigation within the intraday section
  • Plotly embedded only when intraday data is present (no overhead for older archives)

Downloads:

  • Garmin_Local_Archive_Standalone.zip — recommended, no Python required
  • Garmin_Local_Archive.zip — standard, Python 3.10+ required

Full changelog

v1.6.1 — Encrypted Dashboard Export

Choose a tag to compare

@Wewoc Wewoc released this 29 Jun 15:01

Adds password-protected HTML dashboard export for secure transport on USB drives or other
removable media. Encrypted files open in any browser and decrypt locally — no server, no
internet connection, no external dependency required.

Also improves the Mirror password dialog: confirmation field added, password is never saved
to Windows Credential Manager (prevents the silent typo scenario).

What's new:

  • 🔒 Encrypted Dashboards — new button in Settings → Export. Builds all HTML dashboards
    and encrypts them with AES-256-GCM. Output goes to basedir/encrypted/ with _enc suffix.
    Explorer opens automatically. Not triggered by Daily Sync.
  • Browser-side decryption — the encrypted file is self-contained. Password dialog and
    Web Crypto API decryption are embedded inline. Works with file:// protocol.
  • Mirror password confirmation — Export to Mirror and Import from Mirror now both require
    password + confirmation. Password is never cached in Windows Credential Manager.

Downloads:

  • Garmin_Local_Archive_Standalone.zip — recommended, no Python required
  • Garmin_Local_Archive.zip — standard, Python 3.10+ required

Full changelog

v1.6.0.7 — Dropdown Indicators, Device Table Edit, Single Instance

Choose a tag to compare

@Wewoc Wewoc released this 28 Jun 14:50

Fixes a flaky pre-build-gate test, adds ▼ indicators to all dropdown
selectors, makes device names re-editable after initial assignment, and
prevents multiple simultaneous GLA instances from corrupting the archive.

What's new:

  • ▼ indicators on Dashboard, Files, and Sheet dropdowns (Qt6/Windows suppresses native arrows)
  • Device table: all non-hardware rows re-editable via double-click (not just "unknown")
  • Single instance guard: second GLA launch shows warning and exits cleanly
  • Flaky determinism test fixed (timestamp excluded from comparison)

Downloads:

  • Garmin_Local_Archive_Standalone.zip — recommended, no Python required
  • Garmin_Local_Archive.zip — standard, Python 3.10+ required

Full changelog

v1.6.0.6 — Documentation, Tooltips & UI Polish

Choose a tag to compare

@Wewoc Wewoc released this 27 Jun 10:51

Adds a Documentation button with in-app access to Quickstart Guide, User Guide,
and README. All buttons and input fields now show tooltips. Mirror button labels
are unified throughout the app. Settings left panel widened to 400px for cleaner
Full HD display.

What's new:

  • 📖 Documentation button — opens Quickstart, User Guide or README directly in the app
  • 💬 Tooltips on all buttons and input fields (Settings + Home panel)
  • 🔁 Mirror labels unified: "Export to Mirror" used consistently throughout
  • ⬛ Settings left column widened: 340px → 400px (no scrollbar at Full HD)
  • ⬛ DATA MANAGEMENT buttons left-aligned with equal width
  • 📄 QUICKSTART.txt + USER_GUIDE.txt included in all build targets

Downloads:

  • Garmin_Local_Archive_Standalone.zip — recommended, no Python required
  • Garmin_Local_Archive.zip — standard, Python 3.10+ required

Full changelog