From 4dceaccb18b6602266d85d5da1c378341a5e103e Mon Sep 17 00:00:00 2001 From: Mohammad Abdul Sahil <127765312+abdulsaheel@users.noreply.github.com> Date: Sat, 19 Sep 2026 13:29:13 +0530 Subject: [PATCH] bump kAlgoVersion 92->93, repin analytics for overreaching rhr guard analytics PR #73 fixes overreachingConjunction never guarding against quantized whole-bpm rhr baselines (dispersionBelowQuantum), the same guard illness_cusum/readiness_composite/event_detection already carry on this channel. re-pin once #73 merges to main. --- lib/compute/derivation_engine.dart | 13 +++++++++++-- pubspec.lock | 4 ++-- pubspec.yaml | 12 +++++++++++- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/lib/compute/derivation_engine.dart b/lib/compute/derivation_engine.dart index bef8ab19..74fc5bd3 100644 --- a/lib/compute/derivation_engine.dart +++ b/lib/compute/derivation_engine.dart @@ -1672,7 +1672,16 @@ import 'substrate.dart'; // output change for any user who customized priority for a signal and then // paired another device that also declares it. kAnalyticsPin/kProtocolPin // UNCHANGED: edge-only fix. -const int kAlgoVersion = 92; +// +// 92 → 93 (`overreachingConjunction` rhr quantum guard, analytics PR #73): +// an alternating whole-bpm rhr baseline (58/59) has a small nonzero MAD that +// is unresolvable rounding noise, not real dispersion — the guard +// `dispersionBelowQuantum` already applies on this same rhr channel in +// illness_cusum/readiness_composite/event_detection. Without it, a 1bpm rise +// could clear the gate and fire the "both facts point the same way" card on +// nothing. kAnalyticsPin repinned to analytics PR #73 (1acdd4b) — re-pin to +// main once it merges. +const int kAlgoVersion = 93; /// The sibling SHAs this version was derived against, asserted against /// pubspec.yaml in test/db_serve_version_and_reads_test.dart. /// @@ -1841,7 +1850,7 @@ const int kAlgoVersion = 92; // picking one single-device SHA over the other. Verified: `1cf8e61` (this // branch's own pin) IS an ancestor of `fe1464d` — the wearfit protocol // commit is already folded in, nothing is lost by moving to the tip. -const String kAnalyticsPin = '1bf9b6233b364bb4cc307e298abda0c97d25aeef'; +const String kAnalyticsPin = '1acdd4beee989ed4a4051b97b2d496ad74e74dd7'; // Repinned to analytics PR #70's merged main SHA (was the pre-squash branch // commit 47847fa, orphaned once the PR squash-merged) — same content, see // pubspec.yaml's comment for the verification command. diff --git a/pubspec.lock b/pubspec.lock index 1dd64c14..0fc0b916 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -937,8 +937,8 @@ packages: dependency: "direct main" description: path: "." - ref: "1bf9b6233b364bb4cc307e298abda0c97d25aeef" - resolved-ref: "1bf9b6233b364bb4cc307e298abda0c97d25aeef" + ref: "1acdd4beee989ed4a4051b97b2d496ad74e74dd7" + resolved-ref: "1acdd4beee989ed4a4051b97b2d496ad74e74dd7" url: "https://github.com/OpenStrap/analytics.git" source: git version: "1.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index ff98bd17..60488bd3 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -444,7 +444,17 @@ dependencies: # byte-identical. Verified: # `git show 1bf9b62:lib/src/onehz/clinical/stress_si.dart | # grep -n 'nnTimesMs\|maxGapSec'` - ref: 1bf9b6233b364bb4cc307e298abda0c97d25aeef + # + # analytics PR #73 (fix/overreaching-rhr-quantum-guard @ 1acdd4b, not yet + # merged): overreachingConjunction() never called dispersionBelowQuantum + # on rhrBaselineWindow, unlike illness_cusum/readiness_composite/ + # event_detection on this same rhr channel. An alternating whole-bpm + # baseline (58/59) has a small nonzero MAD that isn't real dispersion, + # so a 1bpm rise could clear the gate and fire the conjunction card on + # rounding noise. Re-pin to main once #73 merges. Verified: + # `git show 1acdd4b:lib/src/onehz/human/overreaching_conjunction.dart | + # grep dispersionBelowQuantum` + ref: 1acdd4beee989ed4a4051b97b2d496ad74e74dd7 # BLE — flutter_blue_plus is the maintained cross-platform GATT client. flutter_blue_plus: ^1.36.8