1.5 KiB
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_sessionswindow; 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 typechecknpm run lintnpm test -- --runInBandnpm audit --audit-level=moderatecd FightRateRN/android && ./gradlew assembleRelease -PreactNativeArchitectures=arm64-v8a