Skip to content

Garmin Running Data Normalizer v1.1.1

Choose a tag to compare

@tsubotti63 tsubotti63 released this 24 Jul 05:25

Garmin Running Data Normalizer v1.1.1

v1.1.1 is the stable Production package candidate for the reviewed v1.1
implementation. It strengthens FIT integrity and turns Run-All output into a
standalone, privacy-aware analysis handoff.

Release identity

The published v1.1.0 tag and GitHub Release remain immutable. Their exact
source declares package version 1.1.0rc1, so the TestPyPI rehearsal artifacts
are not renamed or reused as stable Production files. v1.1.1 finalizes package,
module, CLI, generated-output, test, and release metadata consistently without
changing runtime behavior or the stable 1.x interface.

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.

Publication

The wheel and source distribution must be built from the reviewed v1.1.1
version-finalization commit and pass tests, validators, strict metadata checks,
isolated installation, installed Run-All validation, and CI. Tag creation,
GitHub Release publication, TestPyPI upload, and Production PyPI upload remain
separate Human Approval Boundaries.