Skip to content

Add activity selection metrics, heart-rate drift, and integration fixes - #16

Merged
ericceg merged 15 commits into
mainfrom
integrate-pr-15
Oct 11, 2026
Merged

ericceg merged 15 commits into
mainfrom
integrate-pr-15

Conversation

@ericceg

@ericceg ericceg commented Oct 11, 2026 •

Copy link
Copy Markdown
Owner

Activity Detail now recalculates workout metrics for selected chart ranges and reports heart-rate drift and pace-HR decoupling for the whole workout or a selection. Segment metrics use full-resolution records, with calculations deferred until drag release. Missing distance readings no longer create false stops.

Incorporates the original work from #15 together with the reviewed integration fixes:

  • Keep chart endpoints, segment distance/elevation, heart-rate zones, and decoupling consistent across elapsed-time, moving-time, and distance selections, including recorded pauses and missing sensor data.
  • Discard stale activity and decoupling responses, invalidate analytics caches when settings or definitions change, refresh heatmaps after scans, and include today's activities in dashboard totals.
  • Validate versions and run quality checks before cross-platform packaging; update the README and developer guide.

Contributors

Includes contributions from Will (@bitloop-dev) and @farrrunnner.

Validation

  • npm run check passed: version alignment, TypeScript typecheck, 25 activity tests, Rust check, 42 Rust tests, and Rust formatting.
  • npm run build passed.
  • git diff --check origin/main...HEAD passed.

bitloop-dev and others added 15 commits August 3, 2026 02:35
…ions

The PR recalculated full-resolution segment metrics and heart-rate zones on
every drag selection update, adding synchronous UI-thread work despite
the chart's downsampled rendering. This caused noticeable drag-to-zoom lag
and undermined the responsiveness that downsampling was introduced to keep.

Use only the committed zoom domain for segment calculations, decoupling
requests, and capped chart samples. During dragging, update the selection
highlight; on mouse release, calculate accurate metrics from all records
and resample the visible window. Memoize metric cards and the HR-zone chart
so unchanged values do not rerender with each drag update.

Add regression coverage for all three axes, release, cancellation, reset,
and sensor readings omitted from plotted samples. Update the developer
guide to document when segment metrics change.

Validation: TypeScript typecheck, all 25 activity tests, and production build
passed. Live UI frame rate has not been measured.
Enable connectNulls for all combined and split activity chart series so
missing or filtered readings do not leave visual breaks, matching the
preferred continuous chart appearance.

This is a rendering change; full-resolution metrics, chart sample caps,
and calculations after drag release are preserved.

Validation: TypeScript typecheck and git diff --check passed.
@ericceg
ericceg merged commit 117b376 into main Oct 11, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants