Skip to content

v1.0.6

Choose a tag to compare

@github-actions github-actions released this 16 Jun 00:43
· 40 commits to main since this release

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) until SIGINT/SIGTERM.
      Suitable as a systemd user service. Needs a device set in config.json.
    • --print-bpm: stream each reading to stdout (implies --no-tray). Time is
      hh:mm:ss by default, --epoch for unix seconds, --timestamp for 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); --json gives 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.json is 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) and auto_log are 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).