Files
HealthTracking/docs/superpowers/specs/2026-06-10-fightrate-continuous-monitoring-training-windows.md

1.5 KiB

FightRate RN — Continuous Monitoring + Training Windows

Objective

Change FightRate so BLE heart-rate monitoring is continuous and locally persisted, while a workout/training session is only a marked time window inside that continuous stream. Starting a workout begins a highlighted window; stopping it closes that window and keeps monitoring alive.

Success Criteria

  • The native Android foreground service can start monitoring without creating a workout window.
  • Samples are saved continuously even when no workout window is active.
  • Start/stop workout only opens/closes a workout_sessions window; it does not stop BLE monitoring.
  • History lists saved windows and each item can be opened to inspect details from samples inside that window.
  • Insight and history screens use only real timestamped samples.
  • Capture/History/Insights UI removes generic card-heavy containers and uses Corner Instrument rails, strips, dividers, and instrument surfaces.
  • Existing bare React Native CLI constraint remains; no Expo.

Boundaries

  • No new dependencies unless unavoidable.
  • Do not delete existing tables destructively; migrate by adding a continuous sample table and deriving session summaries from timestamps.
  • Android physical BLE validation remains required after APK install.

Verification

  • npm run typecheck
  • npm run lint
  • npm test -- --runInBand
  • npm audit --audit-level=moderate
  • cd FightRateRN/android && ./gradlew assembleRelease -PreactNativeArchitectures=arm64-v8a