2026.5.6
🔧 Bug fixes
- Refactored metric recalculation to use topological ordering — all derived
metrics are now computed in a single deterministic pass (BMI → LBM →
FAT_PERCENTAGE → ... → BODY_SCORE), eliminating redundant cascade
recalculations. - Fixed double/redundant recalculations when weight and impedance arrive as
separate state updates — a_settlingflag now blocks intermediate
recalculations until the debounce window elapses. A 5-second debounce
(RECALCULATION_DEBOUNCEinconst.py) ensures all sensors (weight,
impedance_low, impedance_high) have settled before the single recalculation
fires.
Closes #378. - Fixed
last_measurement_timeupdating twice per measurement cycle (once on
weight, once on impedance) — timestamp is now stamped once in
_on_debounce_elapsedafter all sensors have settled.
Closes #378. - Fixed renamed
bone_cell_masstobcmin attributes to match the
bodymiscale component attribute name.