CHANGELOG.md
<!--
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.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)