Repository navigation
Breaking
- Refactored core device APIs to be target-aware and fallible: getters/setters now use
Result-based return values and explicit device selection. - Removed implicit fan-out writes when multiple dongles are connected; commands now require
-s/--device BB:DDin multi-device scenarios.
Added
- Added typed core error model (
MdropError) and result alias (MdropResult) for transport, selection, and payload failures. - Added
DeviceSelectorto support explicit bus-targeted operations. - Added payload validation and strict enum parsing (
TryFrom<u8>) for filter/gain/indicator state. - Added optional
clapfeature in the core crate to enableValueEnumderives when used by CLI consumers. - Added JSON output mode for
getanddevicescommands.
Changed
- Updated CLI and GUI to use the new result-based core API.
- Restored CLI
setargument value hints by enabling core enums as clapValueEnumbehind feature flag. - Improved GUI update loop to avoid synthetic disconnect flicker and handle watch/update failures without panics.
- Updated Nix and workspace dependencies, including migration to newer Iced.
Fixed
- Fixed overflow when setting volume to
100. - Improved USB/watch failure handling by replacing panic-prone control flow with surfaced errors.
Docs
- Updated
README.mdto document deterministic device selection behavior and multi-device usage requirements.
Full Changelog: 0.3.0...0.4.0