CHANGELOG¶
All notable changes to this project will be documented in this file.
2.2.0 - 2026-03-25¶
Bug Fixes¶
- Dropped base python version from 3.12 to 3.11 (29ccd98)
2.1.1 - 2026-03-25¶
Bug Fixes¶
- Add interrupt parameter to light on method (92a985d)
Documentation¶
- fix dangling cross-reference in contributing.md (87bac4a)
Other¶
- Updated uv.lock with latest dependencies. (d75a029)
2.1.0 - 2026-03-24¶
Bug Fixes¶
- cancel pre-existing tasks in Light.on() via Template Method (#59) (06d7cd2)
- use uv sync for git-cliff in release workflow (7350ca0)
- use GH_PAT for release changelog push (af63027)
2.0.1 - 2026-03-15¶
Bug Fixes¶
- use GH_PAT for auto-merge workflow permissions (3099e9d)
- add preflight checks to publish tasks (2c039b5)
Other¶
- add scratch file names to .gitignore (ff0b596)
Refactor¶
- modernize type annotations with Self and Callable (#57) (2df1ff6)
1.0.1 - 2026-03-15¶
Features¶
- replace changelog generation with git-cliff (#55) (8c7635c)
0.15.4 - 2026-03-14¶
Bug Fixes¶
- mark blyncusb doc code block as notest (8a118d7)
- set testpaths so bare pytest runs unit tests only (07d71fa)
- IndexError in button_on method addressed. (32319a6)
- Luxafor Flag on method could barf on incorrect led specification. (98802bc)
- resolve CI failures - lint rules, libusb dependency, format (2c6c8bb)
- Changed path encoding order in Light.at_path (19b5637)
Documentation¶
- sync doc test guidance across CLAUDE.md, CONTRIBUTING.md, docs/, and release workflow (#44) (03f5fd7)
- rewrite documentation to match actual API (fixes #43) (27a8e16)
Features¶
- add support for early Blynclight models (VID 0x1130) (#52) (498a80b)
- add poe doc-test task, update all references (4f74ff3)
- add executable doc tests with pytest-markdown-docs (#44) (f0d553e)
Other¶
- Luxafor Mute is_button method does not work. (8d47268)
- nope, needed libusb too. Added back into test workflows. (be4d483)
- libudev.h supplied by libudev-dev and not libusb. (bfc77c6)
- Remove hallucinated section from README (9d5ba2c)
- Updated tests (bd35a7c)
- Updated pyproject.toml (9c42260)
Styling¶
- remove underscore prefixes from docs/conftest.py (42c7d70)
0.15.3 - 2025-11-22¶
Bug Fixes¶
- busylight_core.hardware.Hardware (ab3b0d9)
Features¶
- Acquire Light instances using path specifier. (6551ae3)
- busylight_core.light.Light.nleds property (e2cf8c8)
Refactor¶
- Cleanup: (162d83c)
0.15.2 - 2025-09-21¶
Bug Fixes¶
- refactor Kuando keepalive to instance method and update tests (6704451)
- TaskableMixin mock detection and vendor test (c7386bf)
0.15.1 - 2025-08-12¶
Documentation¶
- Updated README.md examples. (c0d7633)
Features¶
0.15.0 - 2025-07-31¶
Bug Fixes¶
- add missing interval parameter for periodic keepalive (4aa03f0)
- Some serial devices have None for vendor or product IDs (665cb26)
- accidently commited working file (a9a089d)
Documentation¶
- remove unnecessary Kuando-specific section from CLAUDE.md (b6c590f)
- remove keepalive mentions from user documentation (1fcfd94)
- update documentation for TaskableMixin and Kuando keepalive (d552aac)
- update issue templates with correct version commands (7bfeca3)
- add Implementation links to vendor API reference navigation (d6c77a9)
- restructure API reference documentation (603e01a)
Features¶
- add threading fallback for TaskableMixin (663ba9a)
- add new device support request issue template (7778b86)
Other¶
- add version attribute validation tests (86c6ac1)
Refactor¶
- simplify Kuando keepalive implementation (f5695ed)
- restructure vendor implementations into logical modules (25b16d7)
Styling¶
- ruff formatting cleanup (662176c)
0.14.1 - 2025-07-25¶
Bug Fixes¶
- Use consistent busylight_core naming in tool section (83b21b2)
Documentation¶
- update all documentation for vendor Lights classes (b676a52)
- Broken link in README.md (c693c38)
- Consolidated development info in CONTRIBUTING.md (3054ab3)
- Removed mute from Kuando in vendor/device table. (86ea9e0)
- Wordsmithing the README (b6ae056)
- Fixed doc URLs in README. s/advanced-features/features/ (c5fa708)
- fix documentation links in README (41703a6)
- comprehensive documentation improvements and API reference enhancement (652ce8a)
- removed nonfunctional fix for footnote rendering. (444f36c)
- Update CONTRIBUTING.md for optimized release workflow (b0bcf28)
- Document optimized release workflow in CLAUDE.md (0ad1067)
- Document Python version configuration in workflows README (21b5aeb)
- Document workflow communication mechanism in README (fa02ff6)
- Add GitHub Pages setup link to workflows README (e3ae0d4)
- Remove irrelevant Jinja formatting section from workflows README (840d11b)
- Update workflows README to reflect optimized architecture (ca8c844)
- Optimize CLAUDE.md for token efficiency and objectivity (98f0627)
- Standardize exception variable names from 'e' to 'error' (5d6ff49)
Features¶
- add vendor-specific Lights classes for direct access (90177e7)
- Updated busylight_core package with version information string. (9fdfde3)
- added release method to busylight_core.light.Light (6bce0de)
- Add error handling for missing Python version config (aebb765)
Other¶
- add comprehensive tests for vendor Lights classes (ee27c3c)
- Remove unnecessary JSON conversion for Python versions (6866a0f)
Refactor¶
- Standardize Light class caching to @cache decorator (e7fe6e3)
0.11.0 - 2025-07-22¶
Other¶
- Update tests to match corrected device capabilities (303e0f5)
0.10.0 - 2025-07-22¶
Bug Fixes¶
- Correct audio capabilities across Embrava Blynclight variants (d88e806)
Documentation¶
- Updated light and init docstrings (645e592)
- Updated README examples. (f083f06)
- Update project documentation with docstring format guidance (84e8cce)
- Update project documentation with docstring format guidance (ccabfc8)
Other¶
- ignore scripts directory that CLAUDE creates for one-off tools. (afbd9dd)
Refactor¶
- Standardize docstrings to Sphinx reStructuredText format (64f182f)
- Standardize docstrings to Sphinx reStructuredText format (c3b10a4)
0.9.2 - 2025-07-22¶
CI¶
- Updated release workflow to include automatic changelog updates. (7fa49dc)
Other¶
- Updated CLAUDE.md (73eceb6)
0.9.1 - 2025-07-22¶
Other¶
- satisfying ruff check in src and tests (4aca9d7)
- ruff check updates, refactor of the blinkstick claims methods. (2d3f681)
0.9.0 - 2025-07-22¶
Documentation¶
- Restore proper docstrings with Google/JavaDoc style formatting (185e04a)
Features¶
- Enhanced async task management with prioritization and error handling (a395382)
Other¶
- Add plan.md to .gitignore (d114171)
- Add comprehensive hierarchy tests for all vendor base classes (345bae0)
Refactor¶
- Updated agile innovative blinkstick classes with a parameterized _claims classmethod (267de41)
- Replace try/except/pass with contextlib.suppress (942c245)
- Clean up async task management code (ca28010)
- Remove plan.md from repository (eebd65a)
- complete vendor base class hierarchy standardization (1f61902)
- implement Phase 1 foundation improvements (de94f2f)
Styling¶
- Replace single-character exception variable with descriptive name (01cd5d7)
0.8.0 - 2025-07-20¶
Other¶
- Updated Kuando _busylight.ScaledColorField to work with 3.11 and 3.12 (73778cc)
0.7.0 - 2025-07-20¶
Bug Fixes¶
- Fixed a bug in the _muteme.OneBitField class's setter method. (2a988b7)
Other¶
- Updated Kunado _busylight ColorField set and get methods. (a1c3044)
- Ruff updates for test_vendor_plantronics_status_indicator (8907412)
- Add comprehensive tests for Plantronics Status Indicator device (6abfdac)
0.6.0 - 2025-07-20¶
Other¶
- Cleaned up poe tasks in pyproject. (073df3a)
- Ruff updates to tests. (80e4975)
- Add comprehensive tests for CompuLab fit-statUSB device (22f835a)
- Add comprehensive tests for Light.udev_rules classmethod (3aac874)
- Ruff check fixes. (ccc92a9)
- Refactored Kuando Busylight tests. (ec00ad7)
- Clean up docstrings and standardize color property documentation (367874b)
- Renamed Kuando Busylight Alpha test suite. (dab57e9)
- Refactored Kuando Busylight family and updated tests. (eac743d)
- Refactor color handling architecture across all devices (af4d85d)
- Updated .gitignore (2c26238)
- Bugfix for blinkstick_base.BlinkStickBase (35df5b8)
- Updated busylight_core.light.Light (42b8597)
- Updated Luxafor tests for proper Busy Tag vendor name. (53a935e)
- Busy Tag device now in the Luxafor family of devices. (ef2ef45)
- Updated Agile Innovative BlinkStick family (f8da555)
- Updated Agile Innovative BlinkStick family of imports. (95396da)
0.5.0 - 2025-07-19¶
Bug Fixes¶
- Fix exception implementation and hardware handle property (d9ab8b7)
Other¶
- Updated Embrava blynclight test, removed check for deleted struct property. (f640d11)
- Add BlinkStickBase abstract base class for Agile Innovative devices (889ba11)
- Simplify Embrava Blynclight implementation and improve documentation (e617c68)
- Enhance Embrava Blynclight implementation with color field support (b5a1de4)
- Enhance exception handling and improve hardware robustness (801d92a)
- Enhance Light class documentation and type safety (68c8e91)
- Updated test_light (db665f1)
- Updated Agile Innovative tests: ruff check (d255617)
- Updated README with link to Busylight For Humans™ (e650fc7)
0.4.1 - 2025-07-18¶
Other¶
- Added check to subclasses method to exclude Light subclasses whose supported_device_ids dictionary is None (1904d9e)
- Updated README.md (b11f457)
0.4.0 - 2025-07-18¶
Other¶
- Added support for remainder of the Agile Innovative BlinkStick family of devices: BlinkStick, BlickStick Pro, BlickStick Nano, BlickStick Flex, and BlickStick Strip (3b3a4c9)
- Update BlinkStick tests for new State API (c1b0ed5)
0.3.5 - 2025-07-18¶
Bug Fixes¶
- Fix descriptor protocol handling for Python 3.11 compatibility (2f03dab)
0.3.4 - 2025-07-18¶
Other¶
- Update BlinkStick tests for GRB color fix implementation (51912d8)
- Updates to Agile Innovative BlinkStick, bug in new code and testing. (ea5c4e4)
- Updated BlinkStick devices. (07a363f)
- ruff check tests now runs clean (f26943f)
- ruff format tests (9e14843)
- Achieve 99% test coverage with comprehensive edge case testing (fdfaad6)
- Rename all vendor-specific test files with test_vendor_ prefix (9215065)
- Complete comprehensive test coverage for all remaining vendor implementations (4a90a9a)
- Add comprehensive test coverage for EPOS and Kuando vendor implementations (5e57d55)
0.3.3 - 2025-07-17¶
Other¶
- Renamed Light.reset property to Light.was_reset since it shadowed the reset method. Whoops. (b29c7d7)
- ruff format tests updated unpacking. (a10f704)
- Updated MuteSync (5521c69)
0.3.2 - 2025-07-17¶
Other¶
- Update mutesync claims method (38d849b)
0.3.1 - 2025-07-17¶
Other¶
- Updated mutesync vendor to reflect new ownership by MuteMe (30a6382)
- Updated .envrc (ddf3d0c)
- Updated vendor and model information (fcbf8e5)
0.3.0 - 2025-07-16¶
Bug Fixes¶
- Fixed typo in busylight_alpha (6ab20ee)
- Fix all ruff check issues in test suite and complete pytest compliance (3d47216)
- Fix all ruff check issues in src directory (c6752f7)
- Fixed light.Light.hash (070fcbb)
- Fix API Reference navigation to properly show Light class (b3e6bda)
Other¶
- Updated project dependencies (9939a28)
- Improve API design and test coverage with property refactoring (df3a436)
- Update old exception references to new exception names (0f5d07d)
- Updated base class implementations to satisfy ruff check (24b03db)
- Updated source with ruff format (52f7102)
- Updated pyproject.toml ruff check options (4e577cb)
- Updated busylight_core/light.py (254ba9d)
- Updated Vendor Embrava init (8096084)
- Updated EPOS Busylight (ed88619)
- EPOS Busylight Support (ba756be)
- Updated Tests (b25f72d)
- Refactored Embrava Blynclight (c964555)
- Updated MuteMe vendor tests to include MuteSync (28dc5d1)
- Removed empty vendor test for busytag (1b30067)
- Updated tests" -m "Moved MuteSync fixtures to MuteMe module. (c232f91)
- Refactor Light API to simplify device support pattern (e6a09c4)
- MuteSync now vendored by MuteMe (577913a)
- MuteSync now vendored by MuteMe (dd24156)
- Moved BusyTag to the Luxafor vendor subdirectory. (8ee7ed0)
- Updated tests/conftest.py (420361a)
- Updated pyproject.toml (204bf44)
- Updated README.md (602a686)
- Updated gitignore for .claude (1435089)
- Updated envrc (f40fbc8)
- Updated docs to highlight busylight_core.Light class (c1059d6)
- Updated .envrc (e008dfb)
- Prominently feature Light class in API reference (2f26ff4)
- Improve API reference navigation with organized table of contents (2f2f48f)
- Remove pre-commit hook installation from contributing docs (aac516e)
- Update documentation to remove CLI references and expand features (76f5bf3)
0.2.4 - 2025-07-13¶
Other¶
- Increased minimum python version to 3.11 (e312f9d)
0.2.3 - 2025-07-13¶
Bug Fixes¶
- Fixed bug in conftest.py (222963a)
0.2.2 - 2025-07-13¶
Other¶
- Narrowed supported python versions (f9f19d9)
0.2.1 - 2025-07-13¶
Other¶
0.2.0 - 2025-07-13¶
Bug Fixes¶
- Fix async test failures and deprecation warnings (0da7618)