Fixed
- GATT attribute handles are now assigned from the registration callback so duplicate UUID attributes are identified correctly.
- Dynamic service changes now properly remove characteristics/descriptors and reset the GATT database when advertising starts.
- Missing notification/indication payload data when the value spans multiple mbufs, such as values larger than 255 bytes with small ACL buffers.
NimBLEDevice::createServerwill longer crash when called before the stack is initialized.- Re-pairing after deleting all bonds now works by unpairing each stored bond instead of only deleting NVS data.
- Whitelist bounds checks.
NimBLEDevice::getBondedAddressindex bounds validation.- ESP32 linker error when both central and peripheral roles are disabled.
- Compiler warnings when bonds are disabled.
Added
NimBLEStream,NimBLEStreamClient, andNimBLEStreamServerclasses and examples.NimBLECppVersion.hwith compile-time version macros.NimBLEDevice::getVersionruntime version string helper.- Matching passkey callbacks for both roles:
NimBLEServerCallbacks::onPassKeyEntryandNimBLEClientCallbacks::onPassKeyDisplay. - Bond migration helpers to convert bond storage between v1 and current formats while preserving existing bonds.
NimBLEUUIDconstructor overload forble_uuid_t*.- Optional
indexparameter forNimBLECharacteristic::getDescriptorByUUIDto access multiple descriptors with the same UUID.
Changed
NimBLEService::startis deprecated; services are now added when the server starts.NimBLEHIDDevice::startServices()is deprecated; services are now added when the server starts.