Server mode
- New role to operate as server https://github.com/Jakeler/ble-serial/issues/47, https://github.com/Jakeler/ble-serial/pull/60
- New `-g {server,client}, --role {server,client}` option
- New `-n GAP_NAME, --name GAP_NAME` option
- New `ble-server.py` script in examples
Client mode
- Add Feasycom BT826 characteristics to builtin list https://github.com/Jakeler/ble-serial/pull/107
- Performance fix for bleak 0.21+, add `--write-with-response` option https://github.com/Jakeler/ble-serial/issues/109
- Improved error message on port conflict https://github.com/Jakeler/ble-serial/issues/106
- Updated client example scripts (https://github.com/Jakeler/ble-serial/pull/60)
- Autoconnect with multiple devices in parallel https://github.com/Jakeler/ble-serial/issues/96
Internal
- Rewritten tests with pytest, include cases for server mode and tcp (https://github.com/Jakeler/ble-serial/pull/60)
- Modernized tools: pyproject.toml, hatch, uv and updated github action CI https://github.com/Jakeler/ble-serial/issues/112