Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion lib/compute/derivation_engine.dart
Original file line number Diff line number Diff line change
Expand Up @@ -350,7 +350,19 @@ import 'substrate.dart';
// green: steps.dart carries the new step API, rr_correction.dart has the
// signed-dRR `seg.add(x[k])`, advanced_stager.dart has maxAccelCarryForwardSec,
// live.dart has kKnownRecordVersions.
const int kAlgoVersion = 50;

// v51: edge#170 — autoDetectWorkouts' motion-confirmation gate (tuned for
// arm-swing activities) silently dropped every low-limb-swing cardio window
// (cycling/rowing: the wrist stays still on a handlebar/oar) no matter how
// strong the HR signal was. analytics#32 (PR-branch head, pinned above —
// repin to main once merged) adds an HR-ONSET bypass: the gate is skipped
// only when mean bpm over the candidate's first 3 min rises >=25 bpm versus
// the 3 min immediately before it (Whipp & Wasserman 1972 phase-II kinetics),
// which fires on genuine exercise starts but NOT on slow-drifting elevations
// (fever/heat/anxiety) that have no discernible onset — so this changes which
// suggestions autoDetectWorkouts emits without loosening the false-positive
// gate it exists to protect.
const int kAlgoVersion = 51;

/// Raw is kept this many days past derivation, then pruned (derived stays).
const int rawRetentionDays = 3;
Expand Down
4 changes: 2 additions & 2 deletions pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -964,8 +964,8 @@ packages:
dependency: "direct main"
description:
path: "."
ref: "5d421918b5111f0158ccdfd9fa7f99eda1fa87b4"
resolved-ref: "5d421918b5111f0158ccdfd9fa7f99eda1fa87b4"
ref: cbbe06addec1cb78b4ea2c75f64e8a281ac09294
resolved-ref: cbbe06addec1cb78b4ea2c75f64e8a281ac09294
url: "https://github.com/OpenStrap/analytics.git"
source: git
version: "1.0.0"
Expand Down
20 changes: 13 additions & 7 deletions pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,13 +49,19 @@ dependencies:
openstrap_analytics:
git:
url: https://github.com/OpenStrap/analytics.git
# Tip of analytics main — OpenStrap/analytics#31 merged: cardioStager's
# per-epoch robustZ scale is now computed once per night instead of
# re-sorted every epoch (reviewed for DST/incremental-drain staleness —
# none found; it's a pure perf hoist).
# Verified present at THIS sha, not assumed from the PR being merged:
# cardio_stager.dart builds a RobustScale once and robustZ delegates to it.
ref: 5d421918b5111f0158ccdfd9fa7f99eda1fa87b4
# PR-BRANCH HEAD, not main — OpenStrap/analytics#32 (fix/issue-170-...)
# is open, not yet merged. Repin to the merge commit on main once it
# lands (same pattern v49 used briefly for protocol/analytics PR heads).
# autoDetectWorkouts now bypasses the motion-confirmation gate on a
# genuine HR-onset (fast rise vs. immediately-preceding baseline),
# fixing low-limb-swing cardio (cycling/rowing) going undetected while
# still rejecting slow-drifting elevations (fever/heat/anxiety) that
# have no discernible onset.
# Verified present at THIS sha: `git show <sha>:lib/src/onehz/workout/auto_detect.dart | grep onsetRiseBpm`.
# Moved to the branch's new head (cbbe06a) after CodeRabbit caught a real
# off-by-one in the onset window on analytics#32 (earlyMean was 181s vs
# preMean's 180s) — fixed there, not worth a separate edge changelog line.
ref: cbbe06addec1cb78b4ea2c75f64e8a281ac09294

# BLE — flutter_blue_plus is the maintained cross-platform GATT client.
flutter_blue_plus: ^1.36.8
Expand Down
Loading