<!--
SPDX-FileCopyrightText: 2025 James Harton

SPDX-License-Identifier: Apache-2.0
-->

# Change Log

All notable changes to this project will be documented in this file.
See [Conventional Commits](Https://conventionalcommits.org) for commit guidelines.

<!-- changelog -->

## [v0.17.0](https://github.com/beam-bots/bb/compare/v0.16.0...v0.17.0) (2026-05-18)




### Features:

* prompt for Nx backend during `mix igniter.install bb` (#103) by James Harton

### Improvements:

* add `test-subprojects` CI workflow (#102) by James Harton

## [v0.16.0](https://github.com/beam-bots/bb/compare/v0.15.4...v0.16.0) (2026-05-17)
### Breaking Changes:

* migrate from `ex_cldr_units` to `localize` (#96) by James Harton

* force-disarm via topology supervisor instead of `auto_disarm_on_error` (#95) by James Harton

* store wall-clock time and originating node on `BB.Message` (#37) (#94) by James Harton



### Bug Fixes:

* cover tuple argument types in typespec and `:map` example (#93) by James Harton

### Improvements:

* identify the publishing robot in pubsub deliveries (#91) (#92) by James Harton

* coerce command goal values to declared argument types (#88) by James Harton

## [v0.15.4](https://github.com/beam-bots/bb/compare/v0.15.3...v0.15.4) (2026-05-16)




### Improvements:

* `BB.Igniter` helpers for writing into the topology section (#87) by James Harton

## [v0.15.3](https://github.com/beam-bots/bb/compare/v0.15.2...v0.15.3) (2026-05-13)




### Improvements:

* add `BB.Igniter` helpers for add-on installers (#86) by James Harton

## [v0.15.2](https://github.com/beam-bots/bb/compare/v0.15.1...v0.15.2) (2026-05-12)




### Bug Fixes:

* docs: update README example to match Igniter output (#73) by James Harton

* docs: align tutorial with Igniter-generated code (#73) by James Harton

* docs: use `limits` instead of `limit` in first robot tutorial (#74) by James Harton

* docs: clarify Igniter quick start instructions (#72) by James Harton

* `OpenLoopPositionEstimator` crash on `set_position/3` in kinematic simulation (#59) by James Harton

### Improvements:

* Trapezoidal motion profile and accurate position tracking in `BB.Sim.Actuator` (#85) by James Harton

## [v0.15.1](https://github.com/beam-bots/bb/compare/v0.15.0...v0.15.1) (2026-02-08)




### Bug Fixes:

* docs: correct `BB.Message.Sensor.IMU` references to `BB.Message.Sensor.Imu` by James Harton

## [v0.15.0](https://github.com/beam-bots/bb/compare/v0.14.0...v0.15.0) (2026-01-18)




### Features:

* add extensible state system with category-based command concurrency (#35) by James Harton

* add extensible state system with category-based command concurrency by James Harton

## [v0.14.0](https://github.com/beam-bots/bb/compare/v0.13.2...v0.14.0) (2026-01-17)




### Features:

* add `BB.Sensor.Mimic` for mechanically-linked joints (#34) by James Harton

## [v0.13.2](https://github.com/beam-bots/bb/compare/v0.13.1...v0.13.2) (2026-01-13)




### Bug Fixes:

* enforce name uniqueness for bridges in DSL verifier (#31) by James Harton

## [v0.13.1](https://github.com/beam-bots/bb/compare/v0.13.0...v0.13.1) (2026-01-09)




### Improvements:

* auto-add `OpenLoopPositionEstimator` in simulation mode (#30) by James Harton

## [v0.13.0](https://github.com/beam-bots/bb/compare/v0.12.0...v0.13.0) (2026-01-05)




### Features:

* add reactive controllers for threshold and pattern matching (#28) by James Harton

## [v0.12.0](https://github.com/beam-bots/bb/compare/v0.11.0...v0.12.0) (2026-01-04)
### Breaking Changes:

* convert commands from Task-based to GenServer-based execution (#27) by James Harton

* convert commands from Task-based to GenServer-based execution by James Harton



### Improvements:

* add command options support and tests by James Harton

* use structured errors in MoveTo command (#26) by James Harton

## [v0.11.0](https://github.com/beam-bots/bb/compare/v0.10.0...v0.11.0) (2025-12-30)




### Features:

* add collision detection system (#25) by James Harton

* add collision detection module by James Harton

### Bug Fixes:

* pass all solver options through `BB.Motion` by James Harton

### Improvements:

* address credo issues and refine collision detection by James Harton

## [v0.10.0](https://github.com/beam-bots/bb/compare/v0.9.0...v0.10.0) (2025-12-29)




### Features:

* add simulation mode for running robots without hardware (#21) by James Harton

* add Vec3 and Quaternion modules with Transform integration (#22) by James Harton

## [v0.9.0](https://github.com/beam-bots/bb/compare/v0.8.0...v0.9.0) (2025-12-26)




### Features:

* add diagnostic and performance telemetry by James Harton

* add structured error handling with `splode` by James Harton

### Improvements:

* add `@type t` to `BB.Error.Invalid.JointConfig` by James Harton

* make `BB.Safety.disarm/2` timeout configurable by James Harton

## [v0.8.0](https://github.com/beam-bots/bb/compare/v0.7.0...v0.8.0) (2025-12-24)




### Features:

* add param() references and wrapper GenServer pattern (#19) by James Harton

* parameters: allow setting params via `start_link` options by James Harton

* dsl: add `param()` references for topology fields by James Harton

* dsl: add `param()` references in actuator/sensor/controller options by James Harton

### Improvements:

* fix arm/disarm actions by James Harton

## [v0.7.0](https://github.com/beam-bots/bb/compare/v0.6.0...v0.7.0) (2025-12-20)




### Features:

* safety: add hardware error reporting with auto-disarm (#16) by James Harton

## [v0.6.0](https://github.com/beam-bots/bb/compare/v0.5.0...v0.6.0) (2025-12-20)




### Features:

* add GenServer behaviours with options_schema callbacks (#15) by James Harton

## [v0.5.0](https://github.com/beam-bots/bb/compare/v0.4.0...v0.5.0) (2025-12-18)




### Features:

* add motion integration for IK solving and actuator commands (#14) by James Harton

### Bug Fixes:

* move argument type docs to entity docs field by James Harton

### Improvements:

* make alpha channel of color optional by James Harton

* motion: add joint state publishing and flexible target formats by James Harton

## [v0.4.0](https://github.com/beam-bots/bb/compare/v0.3.0...v0.4.0) (2025-12-13)




### Features:

* add BB.Safety system for centralised arm/disarm control (#10) by James Harton

* add BB.Safety system for centralised arm/disarm control by James Harton

### Improvements:

* concurrent disarm callbacks and :disarming state by James Harton

* refactor terminate callback and add safety docs to CLAUDE.md by James Harton

## [v0.3.0](https://github.com/beam-bots/bb/compare/v0.2.1...v0.3.0) (2025-12-13)




### Features:

* add standard actuator command interface (#9) by James Harton

* add `BB.Message.Actuator.EndMotion` (#8) by James Harton

* add `BB.Sensor.OpenLoopPositionEstimator` (#7) by James Harton

## [v0.2.1](https://github.com/beam-bots/bb/compare/v0.2.0...v0.2.1) (2025-12-09)




## [v0.2.0](https://github.com/beam-bots/bb/compare/v0.1.0...v0.2.0) (2025-12-06)
### Breaking Changes:

* rename project from Kinetix to Beam Bots by James Harton

* change axis DSL from translational to rotational units by James Harton

* move `name` option from `robot` to `settings` section by James Harton

* restructure DSL with top-level sections by James Harton

* refactor command execution to task-based model by James Harton

* add robot_sensors and controllers DSL sections by James Harton



### Features:

* add parameter system for runtime-adjustable configuration by James Harton

* add Igniter install tasks for project scaffolding by James Harton

* add URDF export mix task (#8) by James Harton

* add robot state machine for command control by James Harton

* add process communication functions and registry partitioning by James Harton

* add hierarchical pubsub system for robot component messages by James Harton

* add optimised robot representation with forward kinematics by James Harton

* add topology-based supervision tree for fault isolation by James Harton

* add actuator entity and sensors to joints by James Harton

* add sensor DSL entity for defining robot sensors by James Harton

* add foundational message system for robot component communication (#5) by James Harton

* Add basic robot definition DSL (#4) by James Harton

## [v0.1.0](https://github.com/beam-bots/bb/compare/v0.1.0...v0.1.0) (2025-11-27)



