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

26 lines
1.5 KiB
Markdown

# 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`