v0.7.0

AprilNEA/OpenLogiv0.7.0Aug 15, 2026by github-actions[bot]

AI Summary

This release focuses on architectural refactoring, including the centralization of HID++ logic, the introduction of a generic macro for hardware features, and improved macOS permission handling.

Key Highlights

  • Refactored macOS permissions using typed objc2 bindings
  • Generic HID++ feature handling via a derive macro
  • Centralized device identities and collapsed inject backends
  • Improved build system and CI with Nix integration

New Features

  • Improved macOS bundle identity verification
  • Generic and derive macro for HID++ features
  • Platform-neutral Effect IR for inject backends
  • Refactored Action label/category/icon/catalog
  • Improved IPC contract extraction

Full Release Notes

## What's Changed
* fix(xtask): stamp and verify the macOS bundle identity per channel by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/593
* refactor(macos): read TCC permissions through typed objc2 bindings by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/595
* fix(hid): four defects from the Actions Ring review by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/596
* fix(hid): never cache a haptic feature for a retired channel by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/597
* fix(agent): bound the Actions Ring haptic worker to the session it serves by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/598
* fix: keep the ring session alive as long as the ring is clickable by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/599
* build(nix): build dependencies once with crane, and stop gating source-only PRs on it by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/600
* ci(nix): run the Linux build weekly, and revert crane by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/603
* chore(lints): adopt the shared clippy lint set, and fix what it surfaced by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/609
* refactor(core,inject): collapse inject backends onto a platform-neutral Effect IR by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/610
* refactor(agent): collapse hardware.rs's duplicated write skeletons into DeviceOp by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/612
* refactor(gui): fold AppState's per-device side tables and dpi/smartshift twins by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/613
* refactor(core): move pure HID++ wire types into openlogi-core, drop openlogi-hid from the GUI by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/611
* chore(agent): drop three dead hardware.rs entry points by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/616
* refactor(ipc): extract the IPC contract into a leaf crate so the GUI stops building the HID stack by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/617
* fix(release): put openlogi-camera in the workspace version group by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/618
* refactor(camera): fold per-control UVC attributes into one spec table by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/622
* refactor(core): drive Action label/category/icon/catalog from one table by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/623
* chore(deps): bump tarpc to 0.38 and drop the vendored patch by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/624
* refactor(hidpp): replace the per-feature boilerplate with a generic and a derive macro by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/625
* docs(ci): add rustdoc to the local gate and cover the derive crate by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/626
* chore(hidpp): inherit the workspace lint table by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/627
* refactor(hidpp): test the receiver decoders, split channel.rs, finish the hard-fork cleanup by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/628
* fix(hid): drive the DPI and lighting features whose predecessors we hardcoded by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/629
* fix(config): harden schema and persistence by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/604
* chore: release v0.7.0 by @aprilnea[bot] in https://github.com/AprilNEA/OpenLogi/pull/594


**Full Changelog**: https://github.com/AprilNEA/OpenLogi/compare/v0.6.27...v0.7.0