Skip to content

Garmin Running Data Normalizer v1.1.0

Choose a tag to compare

@tsubotti63 tsubotti63 released this 24 Jul 04:32

Garmin Running Data Normalizer v1.1.0

v1.1.0 strengthens FIT integrity and turns Run-All output into a standalone,
privacy-aware analysis handoff.

Highlights

  • FIT file and optional header CRC validation with fail-closed audit states.
  • Multi-session FIT identity through fit_session_key and fit_lap_key.
  • Null normalization and per-field audit counts for FIT protocol invalid
    sentinels, including enum fields.
  • Evidence-qualified Activity/FIT links with explicit eligibility, exclusion,
    ambiguity, duplicate, and coverage evidence.
  • Relationship Coverage in START_HERE.md, ANALYSIS_HANDOFF.md, and
    ANALYSIS_CONTEXT.json for every explicit relationship, with unresolved
    records retained and inference explicitly prohibited.
  • Fail-closed explicit relationships for Activity/Gear, Personal
    Record/Activity, and FIT Lap/Session.
  • Deterministic human guidance (START_HERE.md, DATASET_INVENTORY.md,
    ANALYSIS_HANDOFF.md) and machine context (ANALYSIS_CONTEXT.json,
    SCHEMA_CATALOG.json, artifact_inventory.json).
  • An explicit integer|string schema contract for source identifiers whose
    Garmin representation or deterministic fallback can use either JSON type.
  • Optional allowlist-only external-safe Analysis Pack with no automatic upload.

Compatibility

Existing 1.x CLI commands and output paths remain available. v1.1 adds new
paths and datasets. fit_file_id and lap_index remain compatible fields;
fit_session_key and fit_lap_key are the v1.1 FIT stable keys.

Privacy and boundaries

Full Run-All output is a local/trusted handoff and can contain personal metrics,
identifiers, provenance, hashes, exact timestamps, memo text, and
source-relative filenames that may contain email-shaped personal identifiers.
The opt-in external-safe pack is limited to month-level activity volume/count
and removes identifiers, keys, paths, hashes, memo text, coordinates, exact
dates/times, heart rate, power, cadence, training effect/load, and other
unneeded health or performance detail. It still requires review before
transfer. Run-All never uploads data.

Sleep, HRV, and Health Status remain library-only. Hosted processing,
authentication, weather integration, automatic upload, and medical/coaching
interpretation remain outside this release.

Installation and publication

The wheel and source distribution are validated from the reviewed release
candidate. Git tag creation, GitHub Release publication, TestPyPI upload, and
Production PyPI upload are separate Human Approval Boundaries.