P1 — add explicit desktop context attachments and permission UI #88

Open
opened 2026-08-12 14:42:57 +00:00 by lost-rob0t · 0 comments
lost-rob0t commented 2026-08-12 14:42:57 +00:00 (Migrated from github.com)

Motivation

A desktop Copilot becomes useful when the user can deliberately attach local context, but desktop convenience must not silently grant Zara broad filesystem, clipboard or screen access.

Scope

  • Define the desktop-facing ContextAttachment model and context-chip UI.
  • Integrate with the existing context-management roadmap (#51) instead of creating a competing context backend.
  • Support initial explicit attachment flows for files and clipboard; add directories/screenshots/window/shell/Git/URL adapters as the underlying capability boundaries become available.
  • Model permission lifetime/scope such as one turn, conversation, or persistent grant where appropriate.
  • Make active context visible and removable in Quick Copilot and Full Chat.
  • Use desktop portals/permission flows for screenshot/window capture where practical on Wayland.
  • Coordinate Local Recall integration through #56 rather than duplicating its client/intent adapter.

Acceptance criteria

  • Every attached context item is visible in the composer before/while it is used.
  • Removing context prevents it from being included in future turns.
  • Clipboard is read only as a result of an explicit user action/context command.
  • A single file attachment does not silently imply directory/root access.
  • Directory/screen/window grants have explicit scope and status.
  • Context travels through the runtime boundary, not direct widget-to-tool calls.
  • Existing file-tool security roots/policies are not weakened.
  • #51/#56 are reused as backend integration points rather than reimplemented.

Testing requirements

  • Unit tests for attachment identity, scope, removal and serialization.
  • Permission-state and denied/unavailable tests.
  • Qt drag/drop and clipboard-attach tests.
  • Tests proving no implicit clipboard/file read occurs on ordinary chat submission.
  • Runtime integration tests with deterministic context providers.
  • Full repository/Nix suite.

Dependencies

  • #83 RuntimeHost.
  • #85 conversation models.
  • #86 Quick Copilot for quick-surface integration.
  • Existing #51 context-management roadmap.
  • Existing #56 Local Recall adapter where applicable.
  • Design: #81.

Explicit non-goals

  • No silent full-screen capture.
  • No unrestricted filesystem grant.
  • No replacement for #51 or #56.
  • No arbitrary desktop automation permission bundled with context access.
## Motivation A desktop Copilot becomes useful when the user can deliberately attach local context, but desktop convenience must not silently grant Zara broad filesystem, clipboard or screen access. ## Scope - Define the desktop-facing `ContextAttachment` model and context-chip UI. - Integrate with the existing context-management roadmap (#51) instead of creating a competing context backend. - Support initial explicit attachment flows for files and clipboard; add directories/screenshots/window/shell/Git/URL adapters as the underlying capability boundaries become available. - Model permission lifetime/scope such as one turn, conversation, or persistent grant where appropriate. - Make active context visible and removable in Quick Copilot and Full Chat. - Use desktop portals/permission flows for screenshot/window capture where practical on Wayland. - Coordinate Local Recall integration through #56 rather than duplicating its client/intent adapter. ## Acceptance criteria - [ ] Every attached context item is visible in the composer before/while it is used. - [ ] Removing context prevents it from being included in future turns. - [ ] Clipboard is read only as a result of an explicit user action/context command. - [ ] A single file attachment does not silently imply directory/root access. - [ ] Directory/screen/window grants have explicit scope and status. - [ ] Context travels through the runtime boundary, not direct widget-to-tool calls. - [ ] Existing file-tool security roots/policies are not weakened. - [ ] #51/#56 are reused as backend integration points rather than reimplemented. ## Testing requirements - Unit tests for attachment identity, scope, removal and serialization. - Permission-state and denied/unavailable tests. - Qt drag/drop and clipboard-attach tests. - Tests proving no implicit clipboard/file read occurs on ordinary chat submission. - Runtime integration tests with deterministic context providers. - Full repository/Nix suite. ## Dependencies - #83 RuntimeHost. - #85 conversation models. - #86 Quick Copilot for quick-surface integration. - Existing #51 context-management roadmap. - Existing #56 Local Recall adapter where applicable. - Design: #81. ## Explicit non-goals - No silent full-screen capture. - No unrestricted filesystem grant. - No replacement for #51 or #56. - No arbitrary desktop automation permission bundled with context access.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
nsaspy/zara#88
No description provided.