Classic confinement request: Sunday

Hello,

I am developing a virtual assistant for developers named Sunday (https://snapcraft.io/sunday). My app has a feature to run terminal command via user’s speech command - which is the main feature people use in my app at the moment. Per my research from https://ubuntu.com/blog/how-to-snap-introducing-classic-confinement I found out I need the classic confinement to make it work properly.

Please consider my request! Thanks!

Hey @duyanhvu,

What’s the issue your snap is facing that you consider you need classic confinement?

I see you are plugging audio-record, and from your snap description it seems to work (providing the user manually connects it). Maybe you just need to request this interface to be auto-connected?

Hi @emitorino, thanks for your reply! The audio-record interface has been granted for my app and it works fine with the audio record feature (to record user’s speech command).
This request for classic confinement does not relate to the previous request for audio-record because the classic confinement is required for terminal command feature of my app. My app sunday acts as a virtual assitant (like Siri and Alexa) and has multiple features to support developer/programmer. One of the feature is running terminal command by using speech command (saying “list files in home folder” instead of the command ls -la for example). That is why the app need the classic confinement.

The guidline in Process for reviewing classic confinement snaps clearly states that one of the supported categories is terminal emulators, multiplexers and shells, my app sunday has this feature thus in need of the classic confinement.

It has been 7 days since the last response. Somebody review my case please!

Hey @duyanhvu, apologize for the delay.

Oh nice, I missed that. Sorry.

I do have a further question to make sure this request indeed falls inside the terminal emulators category: based on my research it seems sunday has a predefined set of integrations, and then the user can define a speech command to run any of those. But the user does not have the capability of specifying an arbitrary command to be run. Is that correct? If it is, then it is my understanding that we could explore the possibility of working on each of those integrations (i.e. adding stage-packages, build from source, plugging some extra interfaces etc) so then sunday can remain under strict confinement and enjoy the benefits of an stable runtime environment.

Hey @emitorino, thanks for the reply!

Users have the ability to connect to each integration and then automate each of integration’s actions using speech command. Allow me to give an example with the ‘Terminal Command’ integration. User can define an arbitrary command (e.g sudo apt-get install snap) then assign the command to a speech command install snap. When user say the speech command install snap the app will run the sudo apt-get install snap command. Another use case that I personally use a lot, I assign the command to commit my code git add . && git commit -am "$message" to commit my code then when I say commit my code and fill in the value of $message like first commit then the terminal will run the command git add . && git commit -am "first commit". Furthermore, user also can interact with the terminal window that pops up when user use speech command to arbitrary run any terminal command exactly like a terminal emulator.

I attached a screenshot (I used the same one for as one of the snap store images)

You can see in the screenshot the terminal emulator pop up when user say push my code.

Hey @duyanhvu thanks for the further explanation, the requirements to grant classic confinement are understood.

@advocacy could you please perform publisher vetting?

Thanks!