Changelog¶
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.
v0.3.0 - 2026-03-18¶
Bug Fixes¶
type correctness audit and lint cleanup (a709166 by Ronan Byrne).
Misc¶
v0.2.1 - 2026-02-27¶
Docs¶
Features¶
add pre-publish validation job to release pipeline (0d28e24 by Ronan Byrne).
add profile parameter registries (3.2) (82d07cd by Ronan Byrne).
add GATT orphan detection tests and coverage report script (e2b9722 by Ronan Byrne).
add TTL eviction and BufferStats to DependencyPairingBuffer (9093627 by Ronan Byrne).
decode location/sensing AD types with tests (31bf76a by Ronan Byrne).
Bug Fixes¶
run validate pytest from /tmp to avoid src/ import shadowing (26447a9 by Ronan Byrne).
scope validate pytest to exact test file, not directory (c45bf91 by Ronan Byrne).
add pytest-xdist to validate job test dependencies (975baef by Ronan Byrne).
ignore tests/docs and tests/benchmarks in validate job (2d98925 by Ronan Byrne).
replace deprecated post-release version scheme with no-guess-dev (cf3388f by Ronan Byrne).
remove sdist force-include to prevent double-nesting of submodule data (c5825f5 by Ronan Byrne).
replace git-cliff with gh generate-notes in release workflow (46c8d6f by Ronan Byrne).
Code Refactoring¶
Misc¶
Merge pull request #178 from RonanB96/pypi_update (82f3608 by Ronan Byrne).
Fix: Use try/except with allow_module_level=True for optional dependency tests (73d45f0 by Ronan Byrne).
validate: use packaging marker for targeted smoke tests (e0de9ce by Ronan Byrne).
pypi updates and upgrade ci versions (f464a07 by Ronan Byrne).
Merge pull request #177 from RonanB96/workstream-3/completeness-missing-features (8a9405f by Ronan Byrne).
Even more chars (b362e69 by Ronan Byrne).
Many new chars added (f4aeed1 by Ronan Byrne).
3.1: Fix PeripheralDevice — remove dead translator param + add tests (39a53b6 by Ronan Byrne).
Merge pull request #174 from RonanB96/god-class-cleanup (dc45b0c by Ronan Byrne).
Increase min python to 3.10 (f4cf255 by Ronan Byrne).
big rework on large files (7761572 by Ronan Byrne).
char roles supports (8934fd0 by Ronan Byrne).
Remove testpypi upload (0adf981 by Ronan Byrne).
v0.1.0 - 2026-02-07¶
Chore¶
remove accidentally committed files (ee070d3 by Ronan Byrne).
Continuous Integration¶
bump actions/upload-artifact from 5 to 6 (7a5afb8 by dependabot[bot]).
bump dawidd6/action-download-artifact from 11 to 12 (4fdb190 by dependabot[bot]).
bump actions/download-artifact from 6 to 7 (791ecee by dependabot[bot]).
bump dawidd6/action-download-artifact from 9 to 11 (df5bd18 by dependabot[bot]).
increase test-documentation timeout to 30 minutes (21a678a by Ronan Byrne).
add fetch-depth: 0 to build-docs job for git describe (a5fb966 by Ronan Byrne).
only run Playwright tests on PRs, not on main branch (e06738c by Ronan Byrne).
Docs¶
Features¶
implement type-safe characteristics and shared address utilities (3925ef7 by Ronan Byrne).
add advertising framework, scanning API, and EAD decryption (2ae9a32 by Ronan Byrne).
integrate UriSchemesRegistry + NamespaceDescriptionRegistry into runtime BLE (ba9c808 by Ronan Byrne).
auto-resolve CPF format/unit names from registries (7804ad7 by Ronan Byrne).
add CodingFormatRegistry and UriSchemesRegistry (9c2603f by Ronan Byrne).
Add comprehensive validation attributes to GATT characteristics (3e583f8 by Ronan Byrne).
Implement Indoor Positioning Service optional characteristics (ec964f3 by Ronan Byrne).
Implement Format Types Registry and UTF-16 string support (62ec1e6 by Ronan Byrne).
Bug Fixes¶
add validate parameter to all _decode_value methods (0de4332 by Ronan Byrne).
use TYPE_CHECKING block for Callable type aliases (Python 3.9) (a7ef2cb by Ronan Byrne).
use Union[] for Python 3.9 compatibility in device_types (4856c8e by Ronan Byrne).
move AsyncKeyLookup into TYPE_CHECKING block for Python 3.9 (183c9d3 by Ronan Byrne).
Add future annotations and mask MAC addresses in logs (738e3ac by Ronan Byrne).
Code Refactoring¶
rename ConnectionManagerProtocol to ClientManagerProtocol (804d102 by Ronan Byrne).
Misc¶
Merge pull request #172 from RonanB96/releases (188cade by Ronan Byrne).
Potential fix for code scanning alert no. 22: Workflow does not contain permissions (32b4f75 by Ronan Byrne).
Add release job (0255f97 by Ronan Byrne).
Merge pull request #171 from RonanB96/bless_intergration (01d0124 by Ronan Byrne).
Merge pull request #170 from RonanB96/fix/submodule-initialization (38338bf by Ronan Byrne).
Merge branch ‘main’ into fix/submodule-initialization (739bd86 by Ronan Byrne).
Testing fixes (b67057e by Ronan Byrne).
Merge pull request #169 from RonanB96/fix/submodule-initialization (4fb1b7a by Ronan Byrne).
Add custom build hook to auto-initialize git submodule (7a9da18 by Ronan Byrne).
Merge pull request #167 from RonanB96/advertising_updates (b7fc7b2 by Ronan Byrne).
Switch to advertising returns and exceptions over a result type (59cd945 by Ronan Byrne).
move over to ruff purely for linting and some advertising updates (052ccfe by Ronan Byrne).
Instructions updates and extend advertising data (4e7f279 by Ronan Byrne).
Merge pull request #165 from RonanB96/encode_decode_rework (05da53a by Ronan Byrne).
Add bitfield type and fix linter errors (522d9c8 by Ronan Byrne).
Merge pull request #164 from RonanB96/dependabot/github_actions/actions/upload-artifact-6 (ab5b1c5 by Ronan Byrne).
Merge pull request #163 from RonanB96/dependabot/github_actions/dawidd6/action-download-artifact-12 (af83d3e by Ronan Byrne).
Alert clean and simplfy encode and decode pattern (953df82 by Ronan Byrne).
Converting from characterdata ret to value ret (cd22eeb by Ronan Byrne).
Generic typevar info in chars (6a0d850 by Ronan Byrne).
Merge pull request #162 from RonanB96/transalate_encode (8e5afda by Ronan Byrne).
More readme updates (ea84f7c by Ronan Byrne).
Documentation updates (6d1761d by Ronan Byrne).
Merge pull request #161 from RonanB96/gss_updates (433241f by Ronan Byrne).
Merge branch ‘main’ into gss_updates (eadcf65 by Ronan Byrne).
Add enum template and udpate old chars (4056a88 by Ronan Byrne).
Merge pull request #158 from RonanB96/dependabot/github_actions/actions/download-artifact-7 (ad038a8 by Ronan Byrne).
Merge pull request #156 from RonanB96/dependabot/github_actions/dawidd6/action-download-artifact-11 (be354c9 by Ronan Byrne).
Merge branch ‘main’ into dependabot/github_actions/actions/download-artifact-7 (ac9d630 by Ronan Byrne).
Merge branch ‘main’ into dependabot/github_actions/dawidd6/action-download-artifact-11 (4916f67 by Ronan Byrne).
Merge pull request #160 from RonanB96/gss_updates (2cb26b9 by Ronan Byrne).
special value resolver and lots of fixes to validation info (4b3c321 by Ronan Byrne).
New raw extraction and parsing pipeline, initial commit (432274c by Ronan Byrne).
Update gss registry to align with repo (23aac26 by Ronan Byrne).
Merge pull request #159 from RonanB96/more-chars (e068de2 by Ronan Byrne).
Add types-requests to dev dependencies for mypy (8ff566c by Ronan Byrne).
Fix: Use uri_data instead of uri in CoreAdvertisingData (bcf3fd0 by Ronan Byrne).
Clean up reexports (4550b2a by Ronan Byrne).
Doc updates (16df2c2 by Ronan Byrne).
Merge pull request #157 from RonanB96/format_types (76f19da by Ronan Byrne).
Fix coverage and split html and playwright tests (3d28ad6 by Ronan Byrne).
Merge pull request #154 from RonanB96/fix/benchmark-history-github-pages (9af77b1 by Ronan Byrne).
Dynamic workers and ports for playwright tests (f1ddbda by Ronan Byrne).
Proper versioning (c44fba3 by Ronan Byrne).
0.0.1 - 2025-12-07¶
Chore¶
Add AI agent files to .gitignore (41adf62 by ronan).
save WIP fixes for battery_power_state and tests (877e34b by Ronan Byrne).
apply final WIP stash (settings + examples/ble_utils edits, remove inspect script) (6e45637 by Ronan Byrne).
merge restored WIP into copilot/fix-41 (prefer WIP) (4ff4086 by Ronan Byrne).
resolve merge conflicts using stashed edits (cf11cd4 by Ronan Byrne).
merge WIP fixes into copilot/fix-41 (87ce80a by Ronan Byrne).
WIP commit of current examples/refactor state before fixes (ab928b6 by Ronan Byrne).
Continuous Integration¶
bump actions/checkout from 5 to 6 (069d011 by dependabot[bot]).
bump actions/download-artifact from 5 to 6 (f77ff54 by dependabot[bot]).
bump actions/upload-artifact from 4 to 5 (71fcbd4 by dependabot[bot]).
bump actions/upload-pages-artifact from 3 to 4 (58b61f2 by dependabot[bot]).
bump actions/download-artifact from 4 to 5 (453582b by dependabot[bot]).
fix apt install line continuation causing empty package name (9d66b15 by Ronan Byrne).
add system build deps in CI; fix pytest-cov version conflict (fbc3918 by Ronan Byrne).
bump actions/checkout from 4 to 5 (1aff50e by dependabot[bot]).
bump peaceiris/actions-gh-pages from 3 to 4 (e18d6ee by dependabot[bot]).
bump actions/setup-python from 4 to 6 (5c78680 by dependabot[bot]).
Add missing shellcheck installation to quality-check job (e12a5c6 by Ronan Byrne).
bump codecov/codecov-action from 3 to 5 (e6c5daa by dependabot[bot]).
Dependencies¶
update pytest-benchmark requirement from ~=4.0 to ~=5.1 (023da42 by dependabot[bot]).
bump pytest-asyncio from 1.1.0 to 1.2.0 in the testing group (ae7eae7 by dependabot[bot]).
bump pytest-cov from 6.3.0 to 7.0.0 (9352e0d by dependabot[bot]).
bump the testing group with 2 updates (2d06072 by dependabot[bot]).
Docs¶
Reorganize documentation structure for MkDocs with Diátaxis framework (9fba097 by Ronan Byrne).
restructure architecture documentation and fix Mermaid rendering (5dcee13 by Ronan Byrne).
Address PR review feedback (f9ab28d by copilot-swe-agent[bot]).
Integrate documentation with coverage workflow (b9d228a by copilot-swe-agent[bot]).
Add comprehensive documentation with MkDocs (007ad17 by copilot-swe-agent[bot]).
Features¶
Add comprehensive GATT characteristics and services (c6ff009 by Ronan Byrne).
Add appearance values registry with human-readable device type decoding (844e7ff by copilot-swe-agent[bot]).
add generic pairing helper and update documentation (27bedaf by ronan).
Add context support for health characteristics with proper enum types (fb69d11 by ronan).
implement Alert Notification and Current Time services + improve test coverage (45d5431 by ronan).
Refactor parse_characteristic to avoid unnecessary CharacteristicData object creation (e1c9904 by ronan).
Implement Declarations Registry (6145cb5 by ronan).
Implement SDO UUIDs Registry (27d6778 by ronan).
Implement Browse Group Identifiers Registry (33ef2f1 by ronan).
implement Service Classes Registry (a609139 by ronan).
implement Object Types Registry (adfbe5c by ronan).
implement Units Registry for Bluetooth SIG unit definitions (5504311 by ronan).
add name-based lookup to MembersRegistry (ec8ecc1 by ronan).
complete granular test reorganization (f1e9220 by Ronan Byrne).
Complete unit property cleanup and value type system improvements (473c935 by Ronan Byrne).
Implement CharacteristicContext for enhanced BLE parsing (5353a67 by Ronan Byrne).
implement automatic unit parsing from Bluetooth SIG YAML specifications (ffaf761 by copilot-swe-agent[bot]).
Bug Fixes¶
correct pytest-xdist worker detection in docs server fixture (c8365b9 by Ronan Byrne).
resolve benchmark history JSON file paths for GitHub Pages (d51a37e by Ronan Byrne).
Add future annotations import to all Python files for Python 3.9 compatibility (54a5b0a by Ronan Byrne).
Address additional PR feedback - add helper, improve tests, restore config (67aeb83 by copilot-swe-agent[bot]).
Set _manual_value_type to ‘dict’ for validation (78a8877 by copilot-swe-agent[bot]).
Address all PR review feedback (5039f5a by copilot-swe-agent[bot]).
Replace hardcoded UUID strings with BluetoothUUID in tests (1f5cd30 by ronan).
resolve all mypy type errors across production, examples, and test code (ebfc719 by Ronan Byrne).
resolve merge conflicts in get_service_info_by_name method (956f29c by Ronan Byrne).
Code Refactoring¶
consolidate registry types with common base patterns (38f1bf5 by Ronan Byrne).
restructure CharacteristicData and separate custom/unknown classes (6f1b06d by Ronan Byrne).
eliminate magic numbers and consolidate blood pressure characteristics (15dc510 by ronan).
Extract registry modules and device classes (1963b7b by Ronan Byrne).
Style¶
format project and add TypeMismatchError attribute annotations\n\n- Run ruff formatting fixes\n- Add class-level type annotations to to help static analysis\n- Apply formatting updates across examples, tests, and scripts (13bcec5 by Ronan Byrne).
Tests¶
use PEP 604 unions for optional ctx in test helpers; remove unused Optional import (592a785 by Ronan Byrne).
Misc¶
Merge pull request #153 from RonanB96/fix/benchmark-history-github-pages (18516b3 by Ronan Byrne).
Merge pull request #152 from RonanB96/copilot/sub-pr-150 (4613ce4 by Ronan Byrne).
Add conditional tests for playwright ci tests (9163164 by Ronan Byrne).
Merge pull request #151 from RonanB96/copilot/sub-pr-150 (0271a32 by Ronan Byrne).
Asyncio n pytest fixes (307328e by Ronan Byrne).
More updates and fixes to sphinx docs : (2913e34 by Ronan Byrne).
More sphinx updates and add playwright tests (bab0834 by Ronan Byrne).
Fix Chart.js SRI hash with verified integrity value (1f7f88a by copilot-swe-agent[bot]).
Fix security issues in benchmarks.md - add SRI and input validation (8e60f2d by copilot-swe-agent[bot]).
Implement Sphinx documentation migration with parallel builds (ec66ea1 by copilot-swe-agent[bot]).
Initial plan (d128c85 by copilot-swe-agent[bot]).
Add Sphinx migration task specification for Copilot agent (f52be14 by Ronan Byrne).
Merge pull request #149 from RonanB96/reg-update-char-extend (e44d877 by Ronan Byrne).
Merge pull request #148 from RonanB96/dependabot/github_actions/actions/checkout-6 (c452b80 by Ronan Byrne).
Merge pull request #147 from RonanB96/dependabot/github_actions/actions/download-artifact-6 (0758fa9 by Ronan Byrne).
More chars and generalise registry (c7cce94 by Ronan Byrne).
Merge pull request #146 from RonanB96/docs/architecture-restructure-and-mermaid-fix (00d2770 by Ronan Byrne).
Merge branch ‘main’ into docs/architecture-restructure-and-mermaid-fix (945e928 by Ronan Byrne).
Merge pull request #145 from RonanB96/more-char-services (7b0d8a2 by Ronan Byrne).
Merge pull request #144 from RonanB96/device_extensions (c4fe7f6 by Ronan Byrne).
docs,tests: update all documentation examples to use explicit SIMULATED_* variables and UUIDs; add code block tests for docs; improve enum-based workflows and test coverage; clarify standards compliance in examples (d2d50eb by Ronan Byrne).
Merge pull request #143 from RonanB96/copilot/add-performance-benchmarking-suite (acc99dd by Ronan Byrne).
More test job fixes (7450c9b by Ronan Byrne).
Doc fixes (d5db236 by Ronan Byrne).
Merge pull request #142 from RonanB96/copilot/add-performance-benchmarking-suite (f54d95a by Ronan Byrne).
Merge branch ‘main’ into copilot/add-performance-benchmarking-suite (7e0f169 by Ronan Byrne).
Fix benchmark test (9b25bc9 by Ronan Byrne).
Merge pull request #141 from RonanB96/copilot/add-performance-benchmarking-suite (b125ffb by Ronan Byrne).
Add performance benchmarking suite (e207234 by Ronan Byrne).
Address PR feedback: fix workflow, improve docs, reorganize README (2d42bb5 by copilot-swe-agent[bot]).
Fix critical lazy loading bug in all registries (b41ffa5 by copilot-swe-agent[bot]).
Add benchmark suite README and finalize implementation (a6ef34f by copilot-swe-agent[bot]).
Phase 3 & 4: Add performance documentation and CI integration (9b95aa2 by copilot-swe-agent[bot]).
Phase 1 & 2: Add core benchmarking infrastructure and comparison tests (385fc54 by copilot-swe-agent[bot]).
Phase 0: Convert all registries to lazy loading pattern (cae787a by copilot-swe-agent[bot]).
Merge pull request #139 from RonanB96/copilot/add-protocol-identifiers-registry (826db79 by Ronan Byrne).
Extend advertising tests (9635984 by Ronan Byrne).
Merge pull request #137 from RonanB96/copilot/implement-company-identifiers-registry (cbaae3f by Ronan Byrne).
Merge pull request #138 from RonanB96/copilot/add-class-of-device-registry (aa81f4b by Ronan Byrne).
Address PR review comments for Company Identifiers Registry (e1e77f5 by copilot-swe-agent[bot]).
Fix examples file to use parsed_structures for all AD fields (f6f081a by copilot-swe-agent[bot]).
Address PR review feedback (e60d9b5 by copilot-swe-agent[bot]).
Address PR feedback: Use IntFlags for bit masks, refactor DeviceAdvertiserData structure (a6e9f24 by copilot-swe-agent[bot]).
Add integration tests for CoD parsing in advertising data (ab7d43b by copilot-swe-agent[bot]).
Implement Class of Device Registry - Core implementation and tests (c477542 by copilot-swe-agent[bot]).
Implement Company Identifiers Registry with advertising parser integration (34a90a7 by copilot-swe-agent[bot]).
Implement Protocol Identifiers Registry with comprehensive tests (75c3c7c by copilot-swe-agent[bot]).
Merge pull request #135 from RonanB96/copilot/add-appearance-values-registry (c9b1786 by Ronan Byrne).
Merge pull request #136 from RonanB96/copilot/implement-ad-types-registry (60c4ed9 by Ronan Byrne).
Fix cyclic import issue by restructuring appearance types (e7ff6c3 by ronan).
Fix lazy loading implementation and replace magic numbers with constants (e7d45d3 by copilot-swe-agent[bot]).
Remove hardcoded BLEAdvertisementTypes enum, use direct integer comparisons (a956d86 by copilot-swe-agent[bot]).
Address review comments: improve error handling, refactor utils, fix logging (94cec9c by copilot-swe-agent[bot]).
Implement AD Types Registry with YAML loading (4379136 by copilot-swe-agent[bot]).
Merge pull request #129 from RonanB96/copilot/refactor-registry-module-structure (6993525 by Ronan Byrne).
Remove test_registry_import_paths.py test file (cf70360 by copilot-swe-agent[bot]).
Final verification: All tests and linting pass (9b28679 by copilot-swe-agent[bot]).
Restructure registry module to mirror SIG YAML structure (e8bba1f by copilot-swe-agent[bot]).
Complete rewrite: Use templates, DataParser, proper exceptions, msgspec.Struct, reusable BluePy adapter (8ba3558 by copilot-swe-agent[bot]).
Complete rewrite: Proper library extension with CustomBaseCharacteristic (d9dfabe by copilot-swe-agent[bot]).
Add BluePy connection manager for real Thingy:52 devices (f2f5b34 by copilot-swe-agent[bot]).
Add comprehensive documentation for Thingy:52 example (0e5a273 by copilot-swe-agent[bot]).
Add Thingy:52 vendor characteristics and example port (1da43ae by copilot-swe-agent[bot]).
Merge pull request #124 from RonanB96/copilot/add-async-translator-api (acc6baf by Ronan Byrne).
Fix documentation and typing issues in async API (0c7687d by copilot-swe-agent[bot]).
Merge pull request #118 from RonanB96/dependabot/github_actions/actions/download-artifact-6 (cfe7e98 by Ronan Byrne).
Merge pull request #117 from RonanB96/dependabot/github_actions/actions/upload-artifact-5 (7023fe3 by Ronan Byrne).
Merge pull request #125 from RonanB96/feature/health-characteristics-context-support (3ad5c2e by Ronan Byrne).
Fix misleading docstrings and remove unnecessary async methods (775bae6 by copilot-swe-agent[bot]).
Merge branch ‘main’ into feature/health-characteristics-context-support (0f20a4b by Ronan Byrne).
Address PR review feedback - improve type safety and code quality (8cf4f2a by copilot-swe-agent[bot]).
Add async usage documentation and integration example (c89951a by copilot-swe-agent[bot]).
Add async API variants for non-blocking operation (c4e4d21 by copilot-swe-agent[bot]).
Merge pull request #116 from RonanB96/dependabot/pip/pytest-benchmark-approx-eq-5.1 (19fe8bd by Ronan Byrne).
Merge branch ‘main’ into dependabot/pip/pytest-benchmark-approx-eq-5.1 (7c5bc82 by Ronan Byrne).
Merge branch ‘main’ into dependabot/github_actions/actions/download-artifact-6 (8cc6edf by Ronan Byrne).
Merge branch ‘main’ into dependabot/github_actions/actions/upload-artifact-5 (5f041bf by Ronan Byrne).
Merge pull request #122 from RonanB96/new_chars_and_test_updates (935fe81 by Ronan Byrne).
Merge pull request #121 from RonanB96/pr-114 (6bdc83d by Ronan Byrne).
Merge pull request #120 from RonanB96/pr-114 (2c75d62 by Ronan Byrne).
Merge branch ‘main’ into pr-114 (8e71f21 by Ronan Byrne).
More ahrd types and redo the scaledtemplates (727afa2 by ronan).
Merge pull request #119 from RonanB96/pr-114 (bdc7bbe by Ronan Byrne).
Fix encode_value implementations and eliminate magic numbers (891fe71 by ronan).
Merge pull request #115 from RonanB96/ble-descriptors (fcdb182 by Ronan Byrne).
Merge branch ‘main’ into ble-descriptors (4dd2369 by Ronan Byrne).
Replace zero-value round trip test data with realistic Bluetooth SIG values (ccdb503 by ronan).
Merge pull request #113 from RonanB96/ble-descriptors (2bc20a1 by Ronan Byrne).
move dataclasses to msgstruct (f4b33eb by ronan).
Merge pull request #112 from RonanB96/ble-descriptors (65b7ba1 by Ronan Byrne).
Added descriptors (c56018d by ronan).
Update the tests folder to follow the source code dirs and split the chars into individual test files (fca6776 by Ronan Byrne).
Use intflags for all flags (24c3163 by Ronan Byrne).
Rework advertising example (598fe0f by ronan).
Refactor examples (20fc2c6 by ronan).
updates to examples (1c9f086 by ronan).
Split char tests into individual files WIP (df0f215 by Ronan Byrne).
Merge pull request #110 from RonanB96/doc_cleanup (3f6c357 by Ronan Byrne).
Merge branch ‘main’ into doc_cleanup (7d2ea86 by Ronan Byrne).
Autogenerate package arch into docs (9aa7d4e by ronan).
Merge pull request #109 from RonanB96/doc_cleanup (5cd2b2e by Ronan Byrne).
Update docs guidelines and use pydocstyle (968e1a6 by Ronan Byrne).
Merge pull request #108 from RonanB96/doc_cleanup (bbe9ed3 by Ronan Byrne).
Clean up the api and docs (e19791c by Ronan Byrne).
Fix mistakes in docs and clear up internal links (d4bd960 by Ronan Byrne).
Merge pull request #107 from RonanB96/copilot/add-general-documentation (c6c1774 by Ronan Byrne).
Greatly clean up docs and update jobs (85fb804 by ronan).
Merge pull request #106 from RonanB96/yaml_loading (23245ee by Ronan Byrne).
Use msgspec for yaml loading (60577b5 by Ronan Byrne).
Merge pull request #105 from RonanB96/copilot-feat (675e114 by Ronan Byrne).
Merge pull request #103 from RonanB96/dependabot/github_actions/actions/download-artifact-5 (37d82c2 by Ronan Byrne).
Merge pull request #104 from RonanB96/dependabot/github_actions/actions/upload-pages-artifact-4 (bd317b2 by Ronan Byrne).
Merge branch ‘main’ into dependabot/github_actions/actions/upload-pages-artifact-4 (2a7e630 by Ronan Byrne).
Fix pytest collection errors (8cfa41b by Ronan Byrne).
Merge pull request #102 from RonanB96/copilot/migrate-to-msgspec-parsing (3139c56 by Ronan Byrne).
Fix mypy issues (a078125 by Ronan Byrne).
Enable typehints checking in linter and make fixes (9b26c4e by Ronan Byrne).
Refactor to use strongly-typed tuples instead of dicts (219b010 by copilot-swe-agent[bot]).
Add bytes properties to bluetooth uuid (ebfea1e by Ronan Byrne).
Complete migration - all 26 characteristic dataclasses migrated to msgspec.Struct (0c4b7a3 by copilot-swe-agent[bot]).
Complete remaining characteristic migrations to msgspec.Struct (0c23c3d by copilot-swe-agent[bot]).
Address PR feedback: Remove verbose docs and complete migration (f3d620a by copilot-swe-agent[bot]).
Add comprehensive migration status documentation (9ac1178 by copilot-swe-agent[bot]).
Migrate simple 2-field characteristics to msgspec.Struct (cc369a8 by copilot-swe-agent[bot]).
Add msgspec dependency and migrate HeartRateData to msgspec.Struct (6274c88 by copilot-swe-agent[bot]).
Merge pull request #100 from RonanB96/alert-autofix-3 (31acf7d by Ronan Byrne).
Merge branch ‘main’ into alert-autofix-3 (f1b631b by Ronan Byrne).
Fix test and examplelinter issues (29b3960 by ronan).
Merge pull request #99 from RonanB96/copilot/improve-parsing-error-reporting (f880b07 by Ronan Byrne).
Add parse error class (6242e7a by Ronan Byrne).
Fix code review issues: Remove TYPE_CHECKING, fix imports, add trace control (c1ead12 by copilot-swe-agent[bot]).
Add logging integration tests for field-level diagnostics (eaee74e by copilot-swe-agent[bot]).
Add field-level error reporting and parse traces (fdbeb77 by copilot-swe-agent[bot]).
Merge pull request #98 from RonanB96/alert-autofix-3 (c0ac826 by Ronan Byrne).
Fix coverage upload (96d02d0 by ronan).
Merge pull request #97 from RonanB96/alert-autofix-3 (e3f8de4 by Ronan Byrne).
Potential fix for code scanning alert no. 3: Workflow does not contain permissions (55bc355 by Ronan Byrne).
Merge pull request #95 from RonanB96/copilot/add-multi-characteristic-parser (ba2b301 by Ronan Byrne).
lint fixes after rebase (d094ed8 by Ronan Byrne).
Extend required and optional dependencies (5997c00 by Ronan Byrne).
Merge pull request #96 from RonanB96/code_dup_cleanup (eda6722 by Ronan Byrne).
Use hard typing for dependencies (e2df29a by Ronan Byrne).
Clean up some disabled checks and use dynamic mapping for registry classes (54a3ac4 by ronan).
Split the instructions files (aed8ee2 by ronan).
Enable code dup check and clean up resolver classes (ba48ec0 by ronan).
Fix Python 3.9 compatibility for TopologicalSorter (6ba8b5d by copilot-swe-agent[bot]).
Fix hardcoded UUIDs and use registry-based resolution (5570b70 by copilot-swe-agent[bot]).
Implement multi-characteristic parsing for Glucose and Blood Pressure services (218af26 by copilot-swe-agent[bot]).
Refactor multi-characteristic parsing based on code review feedback (e096ca8 by copilot-swe-agent[bot]).
Fix formatting issues in multi-characteristic example (66b0b06 by copilot-swe-agent[bot]).
Add multi-characteristic parsing with dependency support (ea7e216 by copilot-swe-agent[bot]).
Merge pull request #94 from RonanB96/copilot/fix-07a7a865-4acf-4700-8b09-8c2dc47d37dc (cb33f56 by Ronan Byrne).
Skip timing tests until better implementation is done (ae97544 by Ronan Byrne).
Add custom services tests (b92f1e2 by Ronan Byrne).
Address code review feedback (430dcf4 by copilot-swe-agent[bot]).
Refactor service classes to match characteristic architecture (0bfee4c by copilot-swe-agent[bot]).
Merge branch ‘main’ into copilot/fix-07a7a865-4acf-4700-8b09-8c2dc47d37dc (02a9b24 by Ronan Byrne).
Merge pull request #88 from RonanB96/dependabot/pip/testing-9283575848 (5fd2c96 by Ronan Byrne).
Merge branch ‘main’ into dependabot/pip/testing-9283575848 (49e46de by Ronan Byrne).
Merge pull request #91 from RonanB96/copilot/fix-776c8108-587b-478e-b0b9-014725c02b10 (4daa30f by Ronan Byrne).
Make performance tests system-independent with generous thresholds (5dacec5 by Ronan Byrne).
md cleanup (633ff4e by Ronan Byrne).
Address review comments and fix test failures (754cbcc by Ronan Byrne).
Add performance tracking tests and improve timing accuracy (47f6c3a by copilot-swe-agent[bot]).
Merge pull request #92 from RonanB96/custom_char_services (b8ba079 by Ronan Byrne).
Linting fixes (d7b453e by Ronan Byrne).
Update instructions (13def23 by Ronan Byrne).
[200~feat: Complete custom characteristic architecture implementation (df7e405 by Ronan Byrne).
Add benchmark results documentation (27902d2 by copilot-swe-agent[bot]).
Add profiling, benchmarking and toggleable logging (579119b by copilot-swe-agent[bot]).
Update formatting (185c7ba by Ronan Byrne).
speed up linter (c49dd43 by Ronan Byrne).
More hard typing for the classes (4c54383 by Ronan Byrne).
Add bitfield class and cleanup chars (007c347 by Ronan Byrne).
Fail on all lint issues and make all examples use connection manager (f04b439 by Ronan Byrne).
cleanup examples (c4a6f17 by Ronan Byrne).
Merge pull request #90 from RonanB96/classvar-typevar-fix (2ef27fb by Ronan Byrne).
Fix mypy errors (a72938e by Ronan Byrne).
Remove EnumKeyedCharacteristicCollection compatibility wrapper; enforce enum-keyed expected-characteristics dicts; update tests to use enum .value where needed (c9de9ac by Ronan Byrne).
Add paths for format script and more cleanup (243fb61 by Ronan Byrne).
Merge pull request #89 from RonanB96/fix/type-mismatch-annotations (32a91e4 by Ronan Byrne).
CI: include test and examples extras in copilot-setup-steps workflow (907b4ce by Ronan Byrne).
Fix: type-mismatch annotations, add future annotations and update pyproject test deps; ensure Python 3.9 compatibility (d7b5d50 by Ronan Byrne).
more cleanup (af7333d by Ronan Byrne).
Some clean up (de147ba by Ronan Byrne).
split adverising and device (c3f8c33 by Ronan Byrne).
Remove unneeded getattr (fac2f05 by Ronan Byrne).
Clean up types and add enum to class mapping for chars and services (0139d9a by Ronan Byrne).
Merge pull request #87 from RonanB96/dependabot/github_actions/actions/checkout-5 (36731be by Ronan Byrne).
Merge pull request #86 from RonanB96/dependabot/pip/pytest-cov-7.0.0 (2128f30 by Ronan Byrne).
Merge pull request #85 from RonanB96/device_class (ffae8d9 by Ronan Byrne).
Add advertising info (2b58d3f by Ronan Byrne).
extend data types and tests (2186043 by Ronan Byrne).
Merge pull request #84 from RonanB96/char_context (364c641 by Ronan Byrne).
Fix magic numbers and add context to all decode values (e571aea by Ronan Byrne).
Add blood_pressure_feature char (118fea3 by Ronan Byrne).
Merge pull request #70 from RonanB96/copilot/fix-69 (5de0d11 by Ronan Byrne).
Merge pull request #72 from RonanB96/copilot/fix-71 (1cd3a35 by Ronan Byrne).
Remove constants test (e3988aa by Ronan Byrne).
Strict mypy changes (7bb87df by Ronan Byrne).
Fix mypy errors and add comprehensive tests for new modules (296d403 by copilot-swe-agent[bot]).
Address feedback: Move mypy to pyproject.toml, integrate with lint script, fix pylint issues and test failures (f47054b by copilot-swe-agent[bot]).
Complete comprehensive refactoring: constants consolidation, enhanced exceptions, and type safety improvements (f99487a by copilot-swe-agent[bot]).
Remove redundant alias methods and address feedback (4881652 by copilot-swe-agent[bot]).
Fix formatting and linting issues in examples (b07105d by copilot-swe-agent[bot]).
Fix service name-based lookups and update examples with correct service names (f14b859 by copilot-swe-agent[bot]).
Implement comprehensive enhanced integration examples showcase (310f120 by copilot-swe-agent[bot]).
Merge pull request #68 from RonanB96/copilot/fix-67 (616ea12 by Ronan Byrne).
Fix remaining chars and add the non methane voc (ea305d6 by Ronan Byrne).
Fix formatting issues and add VoltageFrequencyCharacteristic template conversion (e94cd06 by copilot-swe-agent[bot]).
Add EnumCharacteristic and Vector2DCharacteristic templates, convert 7 more characteristics (6bc6cc7 by copilot-swe-agent[bot]).
Add 8 new templates and convert 11 characteristics to template inheritance (aad3352 by copilot-swe-agent[bot]).
Add SimpleSint8Characteristic template and convert tx_power, uv_index, humidity, magnetic_declination (595c50f by copilot-swe-agent[bot]).
Add new templates (Pressure, Vector, ScaledUint16) and convert voltage/current characteristics (6c32334 by copilot-swe-agent[bot]).
Convert concentration characteristics and battery/temperature to template inheritance (d58628f by copilot-swe-agent[bot]).
Merge pull request #66 from RonanB96/use-ranges (47f166f by Ronan Byrne).
Reduce overlap in tests (57154cb by Ronan Byrne).
Merge pull request #65 from RonanB96/dependabot/github_actions/peaceiris/actions-gh-pages-4 (c7a4088 by Ronan Byrne).
Merge pull request #64 from RonanB96/dependabot/github_actions/actions/setup-python-6 (415f2ff by Ronan Byrne).
Merge pull request #63 from RonanB96/dependabot/pip/testing-fc52a003cd (0f55b83 by Ronan Byrne).
Merge pull request #62 from RonanB96/copilot/fix-61 (35b2008 by Ronan Byrne).
Fix DataParser method calls in template characteristics to resolve linting errors (d83c1ef by copilot-swe-agent[bot]).
Merge branch ‘main’ into copilot/fix-61 (8e4a9a6 by Ronan Byrne).
Complete constants coverage by adding PERCENTAGE_MAX and ABSOLUTE_ZERO_CELSIUS (9b80c9d by copilot-swe-agent[bot]).
Merge pull request #60 from RonanB96/copilot/fix-59 (d0489fd by Ronan Byrne).
Fix unresolved linting comments: add pylint disable for import-outside-toplevel and remove struct reimport (8ee5c8d by copilot-swe-agent[bot]).
Replace hardcoded values with constants and fix test exclusion for templates (52a8d3f by copilot-swe-agent[bot]).
Complete refactoring to remove all legacy code compatibility (3dfdbd9 by copilot-swe-agent[bot]).
Add template classes to characteristics module exports (211670e by copilot-swe-agent[bot]).
Implement complete template characteristic classes with comprehensive validation (03ea11f by copilot-swe-agent[bot]).
Fix IEEE11073Parser.parse_sfloat backward compatibility for failing tests (2d8e7db by copilot-swe-agent[bot]).
Merge branch ‘main’ into copilot/fix-59 (3ef930b by Ronan Byrne).
Expand utils classes with enhanced parsing and validation functionality (88776c5 by copilot-swe-agent[bot]).
Merge pull request #58 from RonanB96/copilot/fix-57 (5f34819 by Ronan Byrne).
Address review comments: extract display_name property and fix test imports (0640592 by copilot-swe-agent[bot]).
Fix pre-existing bug in test and finalize validation implementation (773cf81 by copilot-swe-agent[bot]).
Implement BaseCharacteristic validation attributes and parse_value method (6c72528 by copilot-swe-agent[bot]).
Make utils class for parsing and encoding data (423f27d by Ronan Byrne).
Merge pull request #56 from RonanB96/copilot/fix-55 (cd34046 by Ronan Byrne).
Address all 24 PR review comments and fix failing tests - complete strict type safety implementation (8958a05 by copilot-swe-agent[bot]).
Address all 24 PR review comments: eliminate dict usage, enforce strict type safety (82444c0 by copilot-swe-agent[bot]).
Complete conversion of final 3 characteristics - eliminate all dict usage from encode_value methods (e5967b6 by copilot-swe-agent[bot]).
Convert RSC measurement and weight scale feature to dataclasses, eliminate remaining dict usage (187ef7f by copilot-swe-agent[bot]).
Convert CSC measurement to dataclass and remove dict support from 6 more characteristics (6e92441 by copilot-swe-agent[bot]).
Remove dict usage from encode_value methods and eliminate string support from enums (1336870 by copilot-swe-agent[bot]).
Convert remaining dict-returning characteristics to type-safe dataclasses (8318be3 by copilot-swe-agent[bot]).
Complete implementation of all 54 encode_value methods - task fully complete (d4ccb15 by copilot-swe-agent[bot]).
Implement encode_value for 10 more characteristics (41 total complete) (c9f360b by copilot-swe-agent[bot]).
Implement encode_value for 13 more characteristics (29 total complete) (8856977 by copilot-swe-agent[bot]).
Remove summary guide file and implement encode_value for 16 characteristics (a69e62c by copilot-swe-agent[bot]).
Continue dataclass conversion using hybrid approach: simple types remain as primitives, complex types use dataclasses (34daf86 by copilot-swe-agent[bot]).
Implement comprehensive type safety with enums and dataclasses, maintain backward compatibility (befd648 by copilot-swe-agent[bot]).
Add abstract encode_value method and convert BatteryPowerState to use type-safe enums (a2327e2 by copilot-swe-agent[bot]).
Fix linting issues and achieve 10.00/10 pylint score (300322e by copilot-swe-agent[bot]).
Add comprehensive dataclass conversion guide and finalize initial implementation (3456c98 by copilot-swe-agent[bot]).
Add dataclass and write support for LocalTimeInformation and BodyCompositionFeature characteristics (93f6fc0 by copilot-swe-agent[bot]).
Add dataclass and write support for GlucoseFeatureCharacteristic (d87c76b by copilot-swe-agent[bot]).
Implement dataclass return type and write support for BatteryPowerStateCharacteristic (65de084 by copilot-swe-agent[bot]).
Merge pull request #54 from RonanB96/copilot/fix-53 (877a636 by Ronan Byrne).
Merge branch ‘main’ into copilot/fix-53 (8e1e38f by Ronan Byrne).
Remove unnecessary unit property overrides, use automatic resolution (27b861b by copilot-swe-agent[bot]).
Remove unnecessary manual unit overrides, rely on automatic parsing (26a2355 by copilot-swe-agent[bot]).
Merge pull request #52 from RonanB96/copilot/fix-51 (653cee6 by Ronan Byrne).
Move inline Python script to separate file for coverage badge generation (b95475b by copilot-swe-agent[bot]).
Implement GitHub Pages-based coverage reporting (f72e0eb by copilot-swe-agent[bot]).
Fix unit property implementation to preserve manual override capability (db8d5aa by copilot-swe-agent[bot]).
Fix critical SIG compliance issues for core characteristics (63de129 by copilot-swe-agent[bot]).
Replace codecov with Coveralls and add coverage badge (9888b96 by copilot-swe-agent[bot]).
Merge pull request #48 from RonanB96/copilot/fix-42 (e01078b by Ronan Byrne).
Merge branch ‘main’ into copilot/fix-42 (04165ed by Ronan Byrne).
Merge pull request #49 from RonanB96/copilot/fix-41 (4768962 by Ronan Byrne).
Remove unneeded files (1e19f04 by Ronan Byrne).
Update src/bluetooth_sig/registry/yaml_cross_reference.py (e80e961 by Roboro).
Checkpoint from VS Code for coding agent session (64d9bca by Ronan Byrne).
Slimmed down the examples (fab937d by ronan).
Update examples (5b47913 by ronan).
Address unresolved PR review comments: improve path resolution, implement lazy loading, refactor dataclass structure (6917811 by copilot-swe-agent[bot]).
Address code review feedback: fix imports, improve signed type detection, add comprehensive tests (4454e82 by copilot-swe-agent[bot]).
Add examples dependencies to pyproject.toml with [examples] optional dependency group (c7478a8 by copilot-swe-agent[bot]).
Address review feedback: remove demo files and Enhanced terminology (6a15888 by copilot-swe-agent[bot]).
Complete Phase 1.3: Add framework-agnostic integration section to main README (de70b8d by copilot-swe-agent[bot]).
Create comprehensive examples directory with framework-agnostic BLE library integration (7f7b6b3 by copilot-swe-agent[bot]).
Complete Phase 1.2 enhanced YAML automation implementation (6c8cf9f by copilot-swe-agent[bot]).
Merge pull request #46 from RonanB96/copilot/fix-45 (df18d53 by Roboro).
Address review comments: fix value type mismatches and syntax error (6a1f998 by copilot-swe-agent[bot]).
Add value_type parsing (ffd573b by ronan).
Remove redundant manual units that match YAML units (92beca3 by copilot-swe-agent[bot]).
Address review comments: add UTF-8 encoding, logging, and fix test assertions (9637bb4 by copilot-swe-agent[bot]).
Replace manual unit mappings with YAML data and prioritize manual overrides (d5953a0 by copilot-swe-agent[bot]).
Remove manual unit definitions for characteristics with YAML units (b4b03ff by copilot-swe-agent[bot]).
Updates docs (ca591c7 by ronan).
Remove ty (ba75189 by ronan).
Replace blakc, isort, flake8 with ruff (7b93258 by ronan).
Clean up HA code and fixes (f9b3850 by ronan).
Fix formatting issues: remove trailing whitespace, fix long lines, add missing newlines (a07cc04 by copilot-swe-agent[bot]).
Remove hardcoded fallback UUIDs - library should rely purely on Bluetooth SIG YAML files (eb33ed7 by copilot-swe-agent[bot]).
Fix tests by implementing fallback UUID registry for essential Bluetooth SIG characteristics (531144b by copilot-swe-agent[bot]).
Phase 1.1: Complete transformation - tests updated, demo included (2e626a8 by copilot-swe-agent[bot]).
Phase 1.1: Core transformation complete - BluetoothSIGTranslator implemented (29e3bc2 by copilot-swe-agent[bot]).
Align with cookecutter structure (add570f by ronan).
Adding initial cookiecutter template (b486e41 by ronan).
Merge pull request #37 from RonanB96/copilot/fix-31 (85d359e by Roboro).
Update docs (e56ebe7 by Ronan Byrne).
Remove migration documentation as requested (c491422 by copilot-swe-agent[bot]).
Merge pull request #36 from RonanB96/copilot/fix-32 (2dace9e by Roboro).
Complete script consolidation with dependency handling and migration guide (390787a by copilot-swe-agent[bot]).
Create comprehensive ble_debug.py script and update path configuration (a7153e8 by copilot-swe-agent[bot]).
Fix Battery Power State characteristic to use correct UUID and streamline README (b2d12b7 by copilot-swe-agent[bot]).
Merge branch ‘main’ into copilot/fix-32 (f4ea1f5 by Roboro).
Merge pull request #35 from RonanB96/copilot/fix-33 (85cd6d3 by Roboro).
Remove redundent ci check (91cdf72 by Ronan Byrne).
Merge pull request #34 from RonanB96/copilot/fix-30 (157d377 by Roboro).
Fix test assertion for Environmental Sensing Service characteristic count (5ff1531 by copilot-swe-agent[bot]).
Implement Battery Power State characteristic with comprehensive parsing and tests (5e4dc5e by copilot-swe-agent[bot]).
Fix docstring style consistency to match existing framework patterns (896a9a8 by copilot-swe-agent[bot]).
Fix formatting and linting issues to pass CI checks (202517c by copilot-swe-agent[bot]).
Implement 9 missing Bluetooth SIG sensor characteristics with full test coverage (cc06f34 by copilot-swe-agent[bot]).
Convert unit-test-like scripts to proper pytest tests (1fb619b by copilot-swe-agent[bot]).
Merge pull request #29 from RonanB96/copilot/fix-27 (c082a7c by Roboro).
Merge branch ‘main’ into copilot/fix-27 (3d93c72 by Roboro).
bleak device interface and connecting to thingy52 (a19e06a by Ronan Byrne).
Merge pull request #28 from RonanB96/copilot/fix-27 (6f5541c by Roboro).
Merge pull request #18 from RonanB96/copilot/fix-13 (44b3e54 by Roboro).
Fix README corruption and remove merge conflict potential (f5ad15b by Ronan Byrne).
Fix formatting and linting issues after glucose implementation rebase (3658a03 by Ronan Byrne).
Merge pull request #19 from RonanB96/copilot/fix-17 (a3cedc7 by Roboro).
Fix formatting after rebase and merge electrical + environmental characteristics (e84a734 by Ronan Byrne).
Add comprehensive documentation and demo for gas sensor implementation (9116f8a by copilot-swe-agent[bot]).
Complete gas sensor characteristics implementation with all extended sensors (bdd5205 by copilot-swe-agent[bot]).
Implement core gas sensor characteristics (CO2, TVOC, NH3, NO2, PM2.5) (51c2e1a by copilot-swe-agent[bot]).
Merge pull request #21 from RonanB96/copilot/fix-20 (cedb71f by Roboro).
Clean up README merge conflict markers (9970815 by Ronan Byrne).
Fix PR #21 rebase and test failures (aec2e81 by Ronan Byrne).
Merge pull request #23 from RonanB96/copilot/fix-15 (4a921cc by Roboro).
Fix CI failures: format code and fix shellcheck issues (b2564a5 by Ronan Byrne).
Fix format.sh script and refactor control point characteristic (0b4e38c by Ronan Byrne).
Merge pull request #24 from RonanB96/copilot/fix-14 (38c59e0 by Roboro).
Add formating and linting scripts (f42e24e by Ronan Byrne).
Fix formatting and linting errors in Weight Scale and Body Composition services (d10f139 by copilot-swe-agent[bot]).
Rebase against latest main: update copilot instructions and workflow (391375a by copilot-swe-agent[bot]).
Changes before error encountered (1b4f981 by copilot-swe-agent[bot]).
Add comprehensive tests for Weight Scale and Body Composition services (b475452 by copilot-swe-agent[bot]).
Fix Black formatting issues - 14 files reformatted (3fad1be by copilot-swe-agent[bot]).
General issue template (8044f8b by Ronan Byrne).
Merge pull request #22 from RonanB96/copilot/fix-16 (2649423 by Roboro).
Update README.md to reflect new Cycling Power Service and correct characteristic count (63f0bd0 by copilot-swe-agent[bot]).
Implement 7 new environmental sensing characteristics with full integration (d86ee01 by copilot-swe-agent[bot]).
Implement complete Cycling Power Service (0x1818) with all four characteristics (af353d5 by copilot-swe-agent[bot]).
Complete v0.3.0 release preparation with updated documentation and changelog (ddbe3e0 by copilot-swe-agent[bot]).
Complete Glucose Monitoring Service implementation with comprehensive testing (efc7995 by copilot-swe-agent[bot]).
Merge pull request #12 from RonanB96/dependabot/github_actions/codecov/codecov-action-5 (82e98c6 by Roboro).
Merge pull request #11 from RonanB96/dependabot/github_actions/actions/checkout-5 (177d2fe by Roboro).
Merge pull request #10 from RonanB96/copilot/fix-9 (616b1d4 by Roboro).
Add Dependabot configuration and security documentation (aba3148 by copilot-swe-agent[bot]).
Merge pull request #2 from RonanB96/copilot/fix-1706f97d-54ba-4535-abe4-c37a8286b300 (d769e77 by Roboro).
Update src/ble_gatt_device/gatt/characteristics/illuminance.py (5bb3dd7 by Roboro).
More fixes (280717e by Ronan Byrne).
Fixes and formating script (73d18e6 by Ronan Byrne).
Merge pull request #8 from RonanB96/copilot/fix-7 (4410068 by Roboro).
Merge branch ‘main’ into copilot/fix-7 (291543e by Roboro).
Streamline Copilot setup steps for efficiency (b4eec62 by copilot-swe-agent[bot]).
Add Copilot Coding Agent environment setup configuration (2e718c8 by copilot-swe-agent[bot]).
Fix flake8 configuration conflicts and update GitHub Actions (c45b6b0 by copilot-swe-agent[bot]).
Merge pull request #4 from RonanB96/copilot/fix-3 (347026d by Roboro).
Reduce Python version matrix to match Home Assistant support (3.11-3.12) (3274761 by copilot-swe-agent[bot]).
Address Copilot PR review feedback - improve instruction tone and fix command formatting (40484e9 by copilot-swe-agent[bot]).
Merge pull request #6 from RonanB96/copilot/fix-5 (34c8cc5 by Roboro).
Add documentation for GitHub Actions workflows (72faf7c by copilot-swe-agent[bot]).
Add GitHub Actions workflows for testing and code quality (aae893c by copilot-swe-agent[bot]).
Create comprehensive GitHub Copilot instructions with validated commands (3512565 by copilot-swe-agent[bot]).
Add comprehensive copilot code review instructions (3277dd2 by copilot-swe-agent[bot]).
Fix invalid PyPI classifier in pyproject.toml (fd4994d by copilot-swe-agent[bot]).
Task 4: Complete HA integration architecture with clean separation and translation layer (0eedd0e by copilot-swe-agent[bot]).
Task 3: Convert script tests to pytest framework with 16 new test cases (8b065a2 by copilot-swe-agent[bot]).
Task 2: Implement 4 new sensor services and 2 additional characteristics (f045d26 by copilot-swe-agent[bot]).
Task 1: Implement 6 new sensor characteristics with Home Assistant metadata (8746506 by copilot-swe-agent[bot]).
Working parsing of thingy52 (e08c5cd by root).
Initial chars, services and tests (ee285f0 by root).
Initial commit (2c1a0de by Roboro).