- Fix "cannot convert 'str' object to bytes" error in BLE identity engine
by adding robust _convert_to_bytes() helper that handles bytes, hex
strings, bytearrays, and arrays
- Improve DBus scanner to safely handle various data types for
manufacturer_data and service_data with proper error handling
- Add monitor mode interface detection in WiFi scanner to provide clear
error message when quick scan is attempted on monitor mode interface
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Major changes:
- Add utils/bluetooth/ package with DBus scanner, fallback scanners
(bleak, hcitool, bluetoothctl), device aggregation, and heuristics
- New unified API at /api/bluetooth/ with REST endpoints and SSE streaming
- Device observation aggregation with RSSI statistics and range bands
- Behavioral heuristics: new, persistent, beacon-like, strong+stable
- Frontend components: DeviceCard, MessageCard, RSSISparkline
- TSCM integration via get_tscm_bluetooth_snapshot() helper
- Unit tests for aggregator, heuristics, and API endpoints
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>