Skip to content

v0.4.0

Latest

Choose a tag to compare

@frahz frahz released this 12 Feb 03:30

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:DD in multi-device scenarios.

Added

  • Added typed core error model (MdropError) and result alias (MdropResult) for transport, selection, and payload failures.
  • Added DeviceSelector to support explicit bus-targeted operations.
  • Added payload validation and strict enum parsing (TryFrom<u8>) for filter/gain/indicator state.
  • Added optional clap feature in the core crate to enable ValueEnum derives when used by CLI consumers.
  • Added JSON output mode for get and devices commands.

Changed

  • Updated CLI and GUI to use the new result-based core API.
  • Restored CLI set argument value hints by enabling core enums as clap ValueEnum behind 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.md to document deterministic device selection behavior and multi-device usage requirements.

Full Changelog: 0.3.0...0.4.0