baldav/docs/session-logs
4aiman f704498d11 Workout mode: HR-only recording (зарядка) without GPS
New 'Зарядка' activity type records a session with no GPS - no location
service, no watchPosition, no track points - just the heart-rate poll and a
timer, for indoor exercise. kcal comes from HR (Keytel gross minus BMR, net
like the rest of the app) and counts in the daily balance.

- gps.js: GPS.hrKcalNet; startRecording/stopRecording 'workout' branches;
  the HR poll appends [relSec,bpm] samples.
- db.js: gps_sessions.hr_samples column + setSessionHrSamples.
- main.js: 'Зарядка (пульс)' option; renderWorkoutInline (map-less live
  screen: big HR, timer, kcal, connect-sensor button); renderWorkoutDetail
  (HR chart by zones, load, avg/max).
- tools/hr_log.py: background HR logger (standard 0x180D, no pairing).

Sensor read from the desktop confirmed on a Coospo H808S (F7:72:74:A4:FB:07,
~1 Hz) without pairing.
2026-10-17 00:54:21 +03:00
..
2026-09-07_brouter-findings.md Scrub location/identity: home city name and external mirror IP → placeholders 2026-09-10 00:55:45 +03:00
2026-09-07_gps-model-findings-impl.md Wind: "headwind in the face" label button on the recording screen 2026-09-07 17:10:16 +03:00
2026-09-07_manual-pauses-altitude-glitches.md GPS stats: exclude manual pauses; reject unrealistic altitude steps 2026-09-07 13:53:40 +03:00
2026-09-07_rec-statusbar-backdrop.md rec screen: status-bar backdrop so the system bar stays visible over the map 2026-09-07 17:15:19 +03:00
2026-09-10_brouter-ux-gapfill-planner.md gap-fill: reload detail via reopenDetail (in-place), not a stacked screen 2026-09-10 15:51:34 +03:00
2026-09-11_route-editor-gapfill-fixes.md routes: return a reliable id from addRoute (re-read, not lastInsertId) 2026-09-11 01:25:28 +03:00
2026-09-12_nogo-reroute.md Reroute: rejoin the active route past a blockage from the current position 2026-09-12 23:05:58 +03:00
2026-09-14_ridden-roads-walk.md Track detail: fold the segment list into an accordion so action buttons stay reachable 2026-09-14 13:27:29 +03:00
2026-09-14_share-image.md Share image Stage 2: native save/share + settings background picker 2026-09-14 10:38:29 +03:00
2026-09-17_repeat-intervals.md Repeat analysis: detect a segment ridden twice (minPasses 3 -> 2); count no longer blocks 2-rep sessions 2026-09-21 11:27:24 +03:00
2026-09-18_merge-rides.md Merge rides: long-press to multi-select tracks and combine them into one (reversible via orig_session_id) 2026-09-18 00:08:25 +03:00
2026-09-21_db-backup.md DB restore: restart via AlarmManager (startActivity+exit raced, app just closed) 2026-09-21 13:44:54 +03:00
2026-09-21_split-and-bike-guard.md Docs: current versions table in README; note router deploy of build 464 2026-09-21 12:43:49 +03:00
2026-09-21_ui-fixes.md Repeat analysis: sweep the hot-cell threshold and keep the most passes (out-and-back reps were lost when a twice-ridden approach inflated the reference) 2026-09-21 20:30:38 +03:00
2026-09-22_balance-selected-day-and-weight.md Balance/trend/charts follow the selected day; kcal weight is per-ride (stored) and settings weight auto-syncs to the latest weigh-in 2026-09-22 11:12:24 +03:00
2026-09-22_gapfill-order-fix.md Gap-fill: re-sequence the session by ts on save (filled points landed at the front on merged/split tracks with NULL seq) 2026-09-22 20:58:06 +03:00
2026-09-26_map-follow-toggle.md Build: auto-clean stale Android bundles per build + clean target 2026-09-27 00:04:52 +03:00
2026-09-29_progress-and-zoom.md Progress on recompute/refine/roads-rebuild + remember map zoom 2026-09-29 23:19:37 +03:00
2026-09-29_startup-slowness.md Track detail: await history.go popstates before re-render after gap-fill revert/save 2026-09-29 16:03:52 +03:00
2026-09-30_gapfill-ridden-router.md Gap-fill: bridge dropouts over your own ridden roads first, public BRouter only as fallback 2026-09-30 00:23:28 +03:00
2026-10-02_ble-manual-connect.md BLE HR: connect manually only, no auto-scan on every ride (battery) 2026-10-02 14:03:16 +03:00
2026-10-17_hr-workout-mode.md Workout mode: HR-only recording (зарядка) without GPS 2026-10-17 00:54:21 +03:00