26 lines
1.5 KiB
Markdown
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`
|