1.19.0 (2026-06-19)
Added
- config: add ble.bind_key and adapter configure() hook (#232) (b319e69)
- scales: add declarative MatchDescriptor and matchesDescriptor helper (#245) (7e63799)
- scales: add Xiaomi Mijia S800 broadcast adapter (#232) (5ee2c2e)
- scales: central resolveAdapter with priority-based precedence and startup overlap detection (#245) (dcc2bdd)
- scales: register Xiaomi S800 and inject bind key at startup (#232) (d3fdb65)
Fixed
- ble: advertise lazy_notify capability to ESP32 proxy (#231) (9004d31)
- ble: command host-ordered proxy notify enable after subscribe (#231) (d33e3aa)
- ble: correct Robi S9 weight scaling to 3-byte grams (#248) (21b3afa)
- firmware: add per-board IDF-heap guard tunables defaulting to 0 (#139) (59bd65f)
- firmware: drain aioble services before characteristic discovery (#231) (c584098)
- firmware: drive aioble GATT discovery with async for (#231) (c943e11)
- firmware: enable proxy notify lazily on per-char subscribe command (#231) (f4a4492)
- firmware: parse lazy_notify capability flag from config (#231) (b24292a)
- firmware: refuse GATT connect on near-empty IDF heap instead of crashing (#139) (1beac82)
- firmware: retry opposite BLE address type on any connect failure (#231) (7a958ab)
- firmware: trust controller-reported BLE address type on autonomous connect (#231) (4ae2662)
- scales: preserve exact/startsWith claim semantics in generic-adapter exclusion (#245) (99a5a10)
Docs
- align scale-type vs board support table cells for #139 (e301da7)
- document no-PSRAM broadcast-only vs PSRAM GATT support for #139 (fa63930)
- document Xiaomi S800 support and ble.bind_key (#232) (6ccccb0)
- firmware: correct gc-vs-IDF-heap comment around the connect guard (#139) (e576e8e)
- fix stale counts, logo easter egg, and consolidate changelog menu (cf85243)
- unify historical changelog entries to release-please format (6d29c7e)