2 KiB
2 KiB
TUI v0.2 Checkpoint
Status
FIRST_USABLE_TUI=PASS
TUI_V0_2_POLISH=IMPLEMENTED
TUI_SESSION_DETAILS=IMPLEMENTED
GATE_2=IN_PROGRESS
TRAINLOG_FORMAT_V1=FROZEN
Purpose
This checkpoint records the first Trainlog interface that is already usable as a local workout journal while development continues.
Android is intentionally not required for this checkpoint.
Implemented user-facing functionality
Dashboard
- colored centralized theme;
- arrow-key navigation;
- F1/F2/F3/F4 shortcuts;
- session and exercise counts;
- latest weight;
- weight delta;
- terminal weight graph;
- sensible flat-series rendering.
Workout entry
- exercise selection;
- repetitions or timed exercises;
- none/external/assistance load modes;
- target sets;
- target repetitions/duration;
- target load;
- planned rest;
- performed sets;
- actual per-set load;
- automatic start/end timestamps.
Workout history
- navigable session list;
- complete session detail;
- exercise-by-exercise browsing;
- target versus actual work;
- ordered actual-set summary.
Body
- body observation persistence;
- weight entry;
- measurement entry;
- initial weight visualization.
Next frozen implementation contract
Human durations
Accepted forms:
90
90s
1:30
1m30
1m30s
2m
Storage remains seconds.
Display becomes human-readable minutes and seconds.
F4 Body graphs
Every stored body metric becomes selectable and graphable.
Paired measurements additionally display left/right asymmetry.
Validation required before checkpoint push
meson compile -C build
meson test -C build --print-errorlogs
python tools/validate_json.py
python tools/validate_import_contract.py
git diff --check
git diff --cached --check
The sanitizer build remains required when the current build-asan directory
matches the latest source tree:
meson compile -C build-asan
meson test -C build-asan --print-errorlogs
Next checkpoint
TUI_DURATION_HUMAN_INPUT
TUI_BODY_METRIC_GRAPHS