v1.0.6
Changes since v1.0.5.
New
-
CLI / headless mode. gotempo can now run without the tray and answer
one-shot queries, for systems with no tray and for scripts and status bars.
With no flags it still runs in the tray as before.--no-tray: run headless (connect + log per config) untilSIGINT/SIGTERM.
Suitable as a systemd user service. Needs a device set inconfig.json.--print-bpm: stream each reading to stdout (implies--no-tray). Time is
hh:mm:ssby default,--epochfor unix seconds,--timestampfor RFC3339.--status: report the running app's state and exit — connection, a coarse
phase (idle / connecting / reconnecting / connected), logging on/off, current
BPM, and device. Reads the running instance's published state, so it never
touches the BLE connection and is safe to poll from a status bar. Plain output
is one line (connected, 61 bpm, Polar H10, logging off);--jsongives the
full state. Exits non-zero when not connected or not running.--list-devices: scan for HR monitors, print them, exit.--json: machine-readable output for--status,--print-bpm,
--list-devices.--config <path>: use a config file at a custom path.--version/-v, and a grouped--help.
-
Self-documenting config.
config.jsonis now created on first run with
every key at its default, and each value is validated on load: a missing,
malformed, or out-of-range entry is reset to its default and the file rewritten,
so it never silently holds a value the app ignores. The CSV keys
(session_gap_minutes,min_bpm_threshold) andauto_logare now always
present rather than hidden until set.
Changed
- CSV timestamps now have millisecond precision. Straps reporting at ~1 Hz
may not be aligned to whole seconds, so second-resolution timestamps made genuine
readings look like duplicate-or-missing rows. Each reading now gets a distinct,
honest timestamp. Existing files still parse; the change applies to new rows.
Other
- The project is now licensed under the GNU GPL v3 (
LICENSE.md). - README, CONTRIBUTING, and the plan docs updated for the CLI, the status file,
and config behavior.
No other action needed to upgrade. Replace the binary (or re-run install.sh); your
config and data carry over (the config gains its default keys on first launch).