• v0.1.5 f2747b357b

    fy59 released this 2026-09-23 21:12:35 +02:00 | 22 commits to main since this release

    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.
    Downloads