What's new
Persistent threshold cache — thresholds are now stored in localStorage per sensor and survive across measurements that have no ideal_low/ideal_high.
Priority chain (highest → lowest):
- Measurement attributes (
ideal_low/ideal_high) — used + written to cache - User config (min/max set in card editor) — used + written to cache
- localStorage cache — used as fallback when neither above is available
- Built-in defaults (
PL_DEFAULT_TARGETS) — pH 7.2–7.6, etc.
The card editor also pre-fills threshold fields from cache when no measurement thresholds are available.