Skip to content

Gate native text-input dependencies behind the voice feature #5197

Description

@senamakel

Problem

The root crate declares arboard, enigo, and rdev as unconditional dependencies, but their only production users are voice modules:

  • src/openhuman/voice/text_input.rs: arboard, enigo
  • src/openhuman/voice/hotkey.rs: rdev

Those modules are already compiled only with feature = "voice". Consequently, cargo tree -e normal --no-default-features still retains the native clipboard/input stack. The unconditional arboard dependency also keeps image in slim builds.

Proposed change

  • Mark arboard, enigo, and rdev optional.
  • Add their dep: entries to the existing voice feature.
  • Confirm no always-compiled facade/re-export names their concrete types.
  • Validate default, no-default, and desktop-forwarded feature builds on Linux, macOS, and Windows.

Definition of done

  • A no-default build contains none of arboard, enigo, or rdev.
  • image is absent from a no-voice/no-documents graph unless another real consumer requires it.
  • Voice text injection and global hotkey behavior remain covered on supported desktop targets.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions