59 lines
2.9 KiB
Markdown
59 lines
2.9 KiB
Markdown
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.
|