trainlog/docs/releases/v0.1.5.md
2026-09-23 21:10:11 +02:00

2.9 KiB

Trainlog v0.1.5 completes the factual cardio capture cycle and makes the Android-to-Web Sleep workflow ready for real nightly use without adding medical, sleep-stage, or causal inference.

Heart-rate capture and cardio sessions

  • Android persistently acquires real CYCPLUS Heart Rate Service measurements, retains factual observation timestamps, BPM and raw RR values, and exposes a global fresh/stale/disconnected indicator.
  • Training occurrences have explicit start/end timelines so synchronized heart-rate samples retain their stable exercise ownership instead of inferring it later from time overlap.
  • Dedicated cardio sessions, measured calibration profiles and fresh-signal BPM-guided phases use separate versioned companions and preserve the frozen historical session formats.
  • Guidance suspends on stale signal and records measured facts only; it does not estimate fitness, recovery, readiness or medical state.

Factual Web timelines

  • History and Sleep display synchronized heart-rate samples through one bounded native read model and responsive Web timeline.
  • Full-source min/mean/max and RR counts remain exact while large visual projections are bounded.
  • Cardio timelines show factual occurrence bounds, resolved targets, instruction changes and measured calibration points.
  • Sleep highlights notable relative rises and falls with a deterministic local median rule, explicitly without assigning a sleep stage or cause.

Sleep capture and medication quantity

  • Medication can be recorded before Couché. The first intake creates one durable pending 18:00-to-18:00 night; Couché advances the same stable entry, Réveil leaves heart-rate capture running, and Levé closes it at the factual final-get-up timestamp.
  • A missing sensor fabricates neither a capture nor a sample.
  • Sleep Diary V2 carries structured per-intake quantity while published V1 remains strict and readable; historical intakes default to quantity one.
  • The Web agenda renders every night in the selected period on one aligned 18:00-to-18:00 axis, and the selected night owns the full-width heart-rate detail. PDF reports retain their multi-night behavior and display quantity without replacing per-unit dose.

Compatibility and validation

  • Desktop schema v35 and Android schema v32 are additive migrations.
  • TRAINLOG_FORMAT_V1, mobile export V3, stable identities, causal revision lineage, generation/ACK semantics and Bluetooth/MTP transport ownership are unchanged.
  • Native tests, Android unit tests and APK assembly, Web tests/typecheck/build, JSON/import validation, changed-C formatting and exact Sleep V2 replay all pass at the release tag.

Assets

  • trainlog-android-v0.1.5.apk: signed public Android APK.
  • trainlog-tui-linux-x86_64-v0.1.5: Linux x86-64 runtime bundle containing the TUI, local Web adapter, synchronization helpers and required catalogs.
  • SHA256SUMS: SHA-256 checksums for both artifacts.