00 CHANGELOG

Heart — what changed

Every release of Heart — the features, fixes, and accuracy tweaks that landed on the band.

Latest: v1.0.20 · May 23, 2026

  1. 20 V1.0.20 · FEATURE

    May 23, 2026

    Silent gym auto-start, overnight reliability fix, battery alerts, full-backup map tiles

    Five things in one release, all aimed at Heart being a quieter, more reliable companion. First, gym detection no longer asks you to confirm — arrive at your saved gym, stay 2 minutes, and a Gym session starts automatically with a quick snackbar confirmation. The detection radius is now configurable in Settings → Gym (100–500 m), and a live status row tells you exactly what the detector is seeing — "outside radius", "session starts in 1:42", or "permission needed — tap to retry" — so you never have to wonder if it's working. Second, the overnight no-recording bug is fixed: the background service now detects "zombie" GATT connections (the radio link looks alive but no heart-rate packets are arriving) and forces a clean reconnect within 5 minutes, so the band actually keeps recording through the night. Third, two gentle battery notifications — one at 15%, one at 5% — let you know when the band needs charging, then re-arm only after you charge it back above 20% so a hovering low battery doesn't spam you. Fourth, backups (and QR device-to-device sync) now bundle your offline map tiles too, so a full migration to a new phone reproduces offline maps without re-downloading. Fifth, a small "Powered by PointBreakLab" credit lives at the bottom of Settings.

  2. 19 V1.0.19 · FEATURE

    May 17, 2026

    Post-workout analysis, gym auto-detection, and GPS map fix

    Three things in one release. First, when you end a session Heart now shows a full post-workout summary — HR zone breakdown, peak and avg BPM, active calories, a compare-to-last-session row, and an estimated overnight HRV impact so you can see what recovery cost the session had. Second, go to Settings → Gym, pin your gym's location, pick a detection radius (100 – 500 m), and Heart will offer to start a Gym session automatically after you've been there for 10 minutes — no manual tap needed. Third, the "Waiting for GPS…" state that sometimes stuck on Walk/Run sessions even after a few minutes is fixed: the app now seeds the map from the device's cached location instantly, falls back to a network fix in under two seconds, and only filters out genuinely bad accuracy rather than discarding early satellite fixes.

  3. 17 V1.0.17 · FIX

    May 16, 2026

    Sleep detection after post-workout nights

    Nights following a recorded workout session were being missed at a high rate. Post-exercise sympathetic activation keeps overnight HR elevated by 8–15 bpm, which pushed the detection baseline above the hard gate. The stager now detects when a session ended within three hours of the night window and automatically raises the detection threshold for that night, recovering detection on the nights that matter most for recovery context.

  4. 16 V1.0.16 · FEATURE

    May 14, 2026

    Session analysis: HR trace, zone breakdown, and next-night sleep

    Every session in Trends now has a Detail button that opens a full analysis screen. You get an interactive heart-rate trace with zone-boundary overlays, a stacked zone-time breakdown showing exactly how many minutes you spent in each of the five zones, a stats grid (avg / max / min HR, duration, load score, active kcal), a GPS map for outdoor sessions, and a next-night sleep quality card so you can see how training affected your recovery. On Android, a one-tap banner on the home screen now alerts you when battery optimisation is blocking overnight recording — tap "Fix it" to grant the exemption without digging through Settings.

  5. 15 V1.0.15 · FEATURE

    May 13, 2026

    On-device intelligence: rhythm hints, readiness forecast, personalized sleep

    Three new on-device features land in this release. Live rhythm hints flag windows of unusually irregular beat-to-beat variability on the home screen, with an episode log in Insights. A new readiness forecast on the Insights tab predicts tomorrow’s overnight HRV from the last week of nights, with small adjustments for last night’s sleep and recent training load. And once you’ve corrected seven detected sleep windows by hand, Heart starts shifting future detections by your personal bedtime / wake offset. Everything is closed-form maths running locally — no telemetry, no model file, no account.

  6. 13 V1.0.13 · FEATURE

    May 10, 2026

    Active calories on the home screen

    A new card under the live HR hero shows today’s running active-calorie total plus the live kcal/min rate, gated to HR ≥ 90 bpm so the resting band doesn’t add phantom calories. The card hides itself on sedentary days so the home screen never leads with a 3 kcal headline. Tap the (i) for the methodology and the Keytel formula caveats.

  7. 12 V1.0.12 · FIX

    May 9, 2026

    Sleep stager verified against realistic data

    The sleep stager now matches Kotlin’s thresholds (HR std max 8 bpm, sleep-onset gate 0.7) so Dart and the native background path agree on what counts as sleep. Trends → Sleep stops showing empty weeks for users whose real overnight std is in the 4–6 bpm range.

  8. 11 V1.0.11 · FIX

    May 9, 2026

    Sleep tab actually populates a week of nights

    Three thresholds in the sleep stager were set tight enough that real overnight data couldn’t pass them — clean nights scored 0.85 against a 0.85 gate, the stability check rejected normal 4–6 bpm variance as too noisy, and disturbed-sleep nights under three hours were silently erased. Relaxed all three to match the actual signal the band produces. Trends → Sleep populates with the last week of nights within seconds of opening the app.

  9. 10 V1.0.10 · FIX

    May 9, 2026

    Past nights stop showing zero minutes of sleep

    If you opened Trends → Sleep and saw older nights stuck at zero minutes even though raw HR samples were on disk, that’s fixed. The cached daily summary was being written by a legacy native formula that never picked up the Dart stager fixes. The app now recomputes the last seven nights at launch using the corrected pipeline, and the background service does the same for any future night it computes while Heart is closed.

  10. 09 V1.0.9 · POLISH

    May 9, 2026

    No more morning sleep-validation prompt

    Asking you to remember last night’s bedtime to the minute, every morning, wasn’t earning its keep — most people don’t actually recall accurately, and the prompt added friction without a real payoff. It’s gone. The Sleep snapshot card in Insights now carries a Detection quality bar (Low / Medium / High) so you can see at a glance how confidently the stager classified the night, without having to log anything yourself.

  11. 08 V1.0.8 · FEATURE

    May 9, 2026

    Backup & restore your full history

    Settings → Backup & restore. Pack the device’s full Heart state — every HR sample, every GPS route, every sleep summary, every setting — into a single ZIP and share it via email / Drive / AirDrop. Restore it on a new phone and your full history follows you. Optional automatic backups on a daily / weekly / monthly cadence run quietly the next time you open the app.

  12. 07 V1.0.7 · FIX

    May 9, 2026

    GPS works on Android, faster initial fix

    Android location permission is now requested at the right moment, and the GPS listener registers against both GPS and network providers — so the map gets a coarse fix indoors right away and refines to a precise outdoor fix once you’re under sky. The “Waiting for GPS…” stall is gone.

  13. 06 V1.0.6 · FIX

    May 9, 2026

    Sleep tab works for users with higher resting HR

    Second pass on the sleep stager. v1.0.5 forwarded your personalised resting HR into the detection threshold, but the cap was still pulling the threshold below the actual sleep BPM for default profiles. The cap now leaves enough headroom to detect real sleep up to ~75 bpm while still rejecting clearly-awake nights, so your past week of overnight data shows up correctly.

  14. 05 V1.0.5 · FIX

    May 9, 2026

    Sleep tab no longer empty, Energy no longer shows 6,000 kcal days

    Two fixes from the same screenshot. Sleep: the Trends → Sleep tab was hardcoding a 60 bpm resting reference instead of your personalised value, so users with a real resting HR above 60 saw nothing populate even with tens of thousands of overnight samples on disk. Energy: the daily kcal estimator was applying the Keytel formula at every HR ≥ 60 bpm, but the formula is only validated for 90–150 bpm — integrated over 24 h that produced phantom totals around 6,000 kcal for desk days. The Energy card now shows active energy above resting only (HR ≥ 90 bpm), matching how WHOOP and Polar present their training-load numbers.

  15. 04 V1.0.4 · FIX

    May 9, 2026

    Map tiles actually render

    v1.0.2 declared the INTERNET permission, which OpenStreetMap needs to serve tiles. v1.0.4 is the part that actually makes them load: a custom HTTP layer with a policy-compliant User-Agent so OSM doesn’t reject the requests. The route-map tile area in live and saved sessions stops being grey rectangles.

  16. 03 V1.0.3 · FIX

    May 8, 2026

    Routes record while the app is in the background

    Minimising Heart during a Walk / Run / Cycling session used to pause the GPS stream, so the saved route would render as straight lines connecting only the waypoints captured while the app was visible. The foreground service now keeps recording the full polyline whether the screen is on or off, and the saved-session map shows what you actually moved.

  17. 02 V1.0.2 · FIX

    May 8, 2026

    Internet permission for map tiles

    The Android manifest was missing the INTERNET permission — Heart needs it for exactly one thing, OpenStreetMap tile downloads in the map widget. Declared it (with a comment naming the one widget that uses it). This was the first half of a two-part fix; the tiles fully start loading once v1.0.4’s OSM-policy User-Agent lands too.

  18. 01 V1.0.1 · FIX

    May 8, 2026

    Insights and Trends populate on Android

    v1.0.0 on Android wrote HR samples to one directory and read them from a different one — so the Insights and Trends tabs would render empty (0 samples, 0 minutes wear, no sleep stages) even after the band had been streaming overnight. Live BPM kept working because it’s driven by the in-memory stream, which masked the bug. Fixed.

  19. 00 V1.0.0 · FEATURE

    May 8, 2026

    Initial public release

    Local-first wellness app for Bluetooth heart-rate bands. Pairs with the Coospo HW9 — worn on the chest, upper arm, or forearm — and any standard BLE heart-rate strap (Polar H10, Wahoo TICKR, Garmin HRM-Dual). Live HR with zones, continuous HRV from R-R intervals, four-stage sleep tracking, daily recovery from a personal 30-day baseline, strain and calorie estimation, smart-wake alarms, 24/7 background BLE, an Insights tab with a window selector, and one-tap export / delete-everything. 100 % on-device — no account, no cloud, no telemetry.

Full technical release notes (SHA-256s, build details, APK download counts) live on GitHub.