Request for uinput installation and auto-connection for aiche-desktop

name: aiche-desktop

description: Desktop AI voice-to-text application that records speech, transcribes it, and can insert the resulting text into the currently focused application.

snapcraft: PRIVATE

upstream: PRIVATE

upstream-relation: Official publisher and upstream developer

interfaces:

uinput: request-type: installation reasoning: The snap uses uinput for an optional user-initiated Smart Insert workflow on Linux, where transcribed text is inserted into the currently focused application. The snap is strictly confined otherwise, but this feature requires synthetic input support that is not available through standard unprivileged interfaces.

uinput: request-type: auto-connection reasoning: Smart Insert is an advertised workflow of the application. Without automatic connection, users must perform a manual interface connection step before the feature works. We are requesting auto-connection to provide a functional default install experience for the user-initiated insertion workflow.

This request has been added to the queue for review by the @reviewers team.

The uinput interface provides the ability to inject synthetic input events (keyboard/mouse) system-wide, which is considered a high-risk capability from a confinement and security perspective.

The feature appears to be optional and convenience-oriented, rather than essential for the core functionality of the application. so I would be aligned towards manual-connection

Also a follow-up question

  • Have you considered a clipboard-based approach for your use-case, where user pastes the content manually?

(#askForInfo)

Thanks for the follow-up.

We do support a clipboard fallback for manual paste. However, Smart Insert is a primary workflow on Linux, not just a convenience feature. The application is designed to transcribe speech and insert the result into the currently focused application as part of the same user action.

This also has an accessibility aspect for us: we support a hands-free mode for users who have difficulty typing on a keyboard and want to write messages, enter text in any application, or work entirely by voice. Requiring copy and paste breaks that flow.

Our use of uinput is limited to that user-initiated text insertion path. If auto-connection is not acceptable, we can proceed with manual connection and keep clipboard paste as the fallback, but our preferred outcome remains installation permission plus auto-connection for uinput.

Thanks for more context. We understand that Smart Insert is positioned as a primary workflow and that it has accessibility implications, particularly for hands-free usage. That is a valid consideration for this snap for allowing use of uinput as an optional capability.

However, from a confinement and platform security standpoint, uinput remains a super-privileged high-risk interface due to its ability to inject arbitrary input events system-wide. This will require the process to go through publisher-vetting process. So +1 for manual-connection to uinput the interface to this subject to the successful completion of publisher-veeting process. (#voteFor)

Other @reviewers , feel free to raise concerns.

Hello @aiche!

I believe the described functionality is reasonable for granting use of the uinput interface. Based on the optional nature of this feature, I agree with @0xnishit that manual-connection makes the most sense from the security perspective. This is a +1 (#voteFor) from me as well for manual connection upon successful publisher vetting.

Given that this is a private snap, please follow the instructions in this forum post to begin the vetting process and let us know here once it is complete. Thank you!

Voting period has ended. This request is approved with 2 votes for and 0 votes against.