Add bounded zara-desktop integration #506

Open
nsaspy wants to merge 1 commit from rage/3-desktop into main
Owner

Implements #3.

Adds a Zara service plugin for structured Linux desktop operations without exposing arbitrary command execution or synthetic input.

Initial surface:

  • desktop.status
  • desktop.launch(application) using operator-configured argv aliases only
  • bounded Wayland clipboard read/write when wl-paste/wl-copy are available
  • bounded PNG screenshot capture when grim is available
  • explicit desktop.windows / desktop.workspaces unavailable states until a structured compositor adapter is configured

Security/reliability:

  • no shell=True, command strings, model-supplied argv, arbitrary eval, or synthetic keyboard/mouse surface
  • bounded application map/argv, clipboard payloads, screenshot payloads, and command timeout
  • unsupported platform features fail/degrade honestly
  • mutable configuration remains outside Git/Nix store
  • deterministic fake-backend tests require no GUI/network/credentials

The generated repository compatibility gate and Nix checks automatically cover the new plugins.json entry.

Exact candidate head: 126825e9a1b37ea81fe0907d165c5b2e37d987ba. Merge only after exact-head checks are green.

Implements #3. Adds a Zara service plugin for structured Linux desktop operations without exposing arbitrary command execution or synthetic input. Initial surface: - `desktop.status` - `desktop.launch(application)` using operator-configured argv aliases only - bounded Wayland clipboard read/write when `wl-paste`/`wl-copy` are available - bounded PNG screenshot capture when `grim` is available - explicit `desktop.windows` / `desktop.workspaces` unavailable states until a structured compositor adapter is configured Security/reliability: - no `shell=True`, command strings, model-supplied argv, arbitrary eval, or synthetic keyboard/mouse surface - bounded application map/argv, clipboard payloads, screenshot payloads, and command timeout - unsupported platform features fail/degrade honestly - mutable configuration remains outside Git/Nix store - deterministic fake-backend tests require no GUI/network/credentials The generated repository compatibility gate and Nix checks automatically cover the new `plugins.json` entry. Exact candidate head: `126825e9a1b37ea81fe0907d165c5b2e37d987ba`. Merge only after exact-head checks are green.
feat(desktop): add bounded desktop integration
Some checks failed
CI / test (pull_request) Failing after 17s
126825e9a1
Some checks failed
CI / test (pull_request) Failing after 17s
This pull request has changes conflicting with the target branch.
  • plugins.json
View command line instructions

Manual merge helper

Use this merge commit message when completing the merge manually.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin rage/3-desktop:rage/3-desktop
git switch rage/3-desktop

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff rage/3-desktop
git switch rage/3-desktop
git rebase main
git switch main
git merge --ff-only rage/3-desktop
git switch rage/3-desktop
git rebase main
git switch main
git merge --no-ff rage/3-desktop
git switch main
git merge --squash rage/3-desktop
git switch main
git merge --ff-only rage/3-desktop
git switch main
git merge rage/3-desktop
git push origin main
Sign in to join this conversation.
No description provided.