baldav/frontend
4aiman 1b10aa67de Wind: "headwind in the face" label button on the recording screen
Variant 5 from the findings doc, as GROUND TRUTH for validating the
from-track wind estimate — it does NOT feed kcal/power. Chosen scope
(per user): a toggle button now, binary "in the face" only, voice later.

- rec screen button "Ветер в лицо": tap opens a headwind interval, tap
  closes it; the open state is highlighted and survives a screen re-render
- GPS.toggleWindMark()/_closeOpenWindMark(); recording.windMarks =
  [{startTs,endTs}] ms, persisted to localStorage, written to the DB on
  finish and restored on crash recovery (a dangling interval auto-closes)
- gps_sessions.wind_marks (JSON) + DB.setSessionWindMarks (separate from
  finishGpsSession so recompute paths preserve marks); parsed in getGpsSession
- rec-bottom wraps now so the third button never overflows a narrow screen

Analysis (marks vs estimate) stays in tools/track once enough km accumulate.
2026-09-07 17:10:16 +03:00
..
css Wind: "headwind in the face" label button on the recording screen 2026-09-07 17:10:16 +03:00
data Product catalog cleanup (no-badge unused) + order-independent search 2026-08-25 18:23:51 +03:00
img Compass map rotation, landscape layout, GPS placeholder 2026-06-25 16:54:45 +03:00
js Wind: "headwind in the face" label button on the recording screen 2026-09-07 17:10:16 +03:00
lib ЧЗ scanner: switch decoder to zxing-wasm (ZXing-C++) for reliable DataMatrix 2026-08-27 09:42:05 +03:00
index.html ЧЗ scanner: switch decoder to zxing-wasm (ZXing-C++) for reliable DataMatrix 2026-08-27 09:42:05 +03:00