All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.1.0 - 2026-02-15
- Core
budsctlpackage structure with CLI-first architecture. - Typer CLI commands:
budsctl listbudsctl devicesbudsctl featuresbudsctl set <feature> [value]
- YAML plugin loader with schema validation and semantic checks.
- Built-in sample plugin for OnePlus Buds 4.
- Device matching and target resolution based on name/MAC prefix hints.
- RFCOMM transport over Python socket APIs (no
rfcommCLI dependency). - BLE GATT transport support (
transport.type: ble) with service/characteristic configuration. - Public stable Python API (
budsctl.api) viaClientand typed models/errors. - Reverse-engineering documentation for creating new plugins.
- GitHub Actions workflows for CI, release artifacts, and CodeQL analysis.
- MIT license (
advnpzn).
- Project configured to prefer system Python for Bluetooth capability (
uv.toml,.python-version). setcommand now allows omitted value and prints available values for the requested feature.- Device-hint matching expanded to support plugin identifiers/names and partial MAC matching.
- Wheel packaging now includes all Python modules required by CLI entry points.
- Improved CLI error handling to avoid stack traces for domain/runtime errors.
- Discovery behavior now handles
bluetoothctlfailures with fallback and clearer diagnostics.