- Eliminate 450ms BLE_SILENCE_WATCHDOG_MS to prevent prematurely cutting off voice while held
- Restore clean ADPCM audio pipeline state machine to eliminate decode desync / white noise
- Update GitHub Actions release workflow: trigger on git push instead of daily cron
- Update prebuilt firmware binaries and RemoteMapper-Flasher packages
- Remove boot-time forced MIC_OPEN in setup_services_and_handshake()
- Remove automatic cmd_open response in on_ctl_notify() when audio stops/mic closes
- Guard voice release event distribution so it only triggers during active speech (BLE_STATE_TALKING)
- Only open microphone on demand when MI_KEY_VOICE is physically pressed
- Update all prebuilt firmware binaries and RemoteMapper-Flasher packaging
- Fix cross-core deadlock in WebServer (Core 1) vs ble_remote_task (Core 0) via asynchronous request flags
- Fix BLE SMP connection drops by purging stale NimBLE bonds with deleteAllBonds() and correcting AuthReq to Just Works
- Remove periodic 5-second MIC_OPEN ping to allow BLE deep sleep and restore remote battery life
- Add strict exclusivity filter in is_target_remote() to prevent hijacking by neighbor devices
- Add Bluetooth pairing & unpair management card in WebUI
- Add GitHub Actions daily release workflow to package and update Flasher assets
- Update pre-built firmware binaries and RemoteMapper-Flasher archives