Skip to content

v0.3.0

Choose a tag to compare

@alitalhq alitalhq released this 23 Oct 09:48
· 16 commits to main since this release
95e0eec

Python and embedded Linux. On-remote format unchanged (bothy_format = 1). The Python
package (bothy on PyPI) and the Flutter package have their own changelogs.

Added

  • bothy-oauth: the Google OAuth helpers (loopback sign-in with PKCE, device flow, token
    refresh, revoke, a keyring/file token store and a refreshing AccessTokenProvider), moved
    out of the CLI so other front ends can use them. The CLI uses it; its behaviour is unchanged.
  • crates/bothy-ffi (not published): the start of a C ABI with a cbindgen header, for
    embedding the engine in C and C++ programs.

Changed

  • The default Argon2id cost for new key files is 64 MiB, 2 passes, 1 lane (was 3 passes),
    bothy::crypto::DEFAULT_KDF_COST. Three passes took 1.09 s per unlock on a Cortex-A53
    board. Existing key files keep the parameters stored in them.

Fixed

  • The blocking API's runtime had no IO driver, so Drive requests from it (the Python
    binding) panicked.

Security

  • ctutils 0.4.5 in the lockfile (RUSTSEC-2026-0385), which cargo install --locked bothy-cli uses.

Packages

Tested end to end on an arm64 board (4x Cortex-A53, Ubuntu 22.04, ROS 2 Humble): the robot agent in examples/pi-agent took a mission from the Flutter demo, synced 48 hours of offline telemetry (2,880 records) without loss, peaked at 28 MiB while syncing, and bridged missions and telemetry to ROS 2 topics.