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

Compare with v0.2.1

Bug Fixes

  • type correctness audit and lint cleanup (a709166 by Ronan Byrne).

Misc

  • Merge pull request #180 from RonanB96/fix/upstream-consumer-improvements (dcf8b8e by Ronan Byrne).

  • Prewarm methods and returns char objects for service char methods (5ae7746 by Ronan Byrne).

v0.2.1 - 2026-02-27

Compare with v0.1.0

Docs

  • Change git-cliff to git-changelog (6c6a3f7 by Ronan Byrne).

  • update rework.md with 3.1 and 3.5 completion status (1252b66 by Ronan Byrne).

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

  • deduplicate optional deps with layered extras (7b7edc9 by Ronan Byrne).

  • code quality, docs, and examples cleanup (WS2/4/5) (016441e by Ronan Byrne).

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

Compare with 0.0.1

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

  • add build timestamp to conf.py for cache busting (03ab357 by Ronan Byrne).

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

Compare with first commit

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).