What's New
Robust Scan Recovery (#40)
Production-hardened Bluetooth scanning for single-adapter devices (e.g. Raspberry Pi 3B):
- InProgress detection — immediately stops scanning when BlueZ gets stuck, preventing D-Bus FD leaks from repeated retries
- Sysfs rfkill recovery — resets the Bluetooth adapter via
/sys/class/rfkill(works even when file descriptors are nearly exhausted) - Process exit after recovery —
os._exit(0)gives a fresh process with clean FDs and new D-Bus connections - Crash-loop prevention — if uptime < 3 min, sleeps 5 min instead of restarting again
- SQLite WAL mode — enables concurrent readers during writes, eliminating
database is lockederrors
Docker compose additions
ulimits:
nofile:
soft: 65536
hard: 65536
volumes:
- /sys/class/rfkill:/sys/class/rfkill # for sysfs recoveryDocker
docker pull ghcr.io/dannymcc/bluehood:v0.4.1