Garmin Running Data Normalizer v1.1.0
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_keyandfit_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.jsonfor 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|stringschema 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.