P2 — add desktop settings and sanitized diagnostics #92

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

Motivation

Desktop Zara needs a real settings surface tied to its existing TOML configuration and a diagnostics surface that can explain runtime failures without exposing secrets.

Scope

  • Add desktop settings sections for General, Appearance, Copilot, Models, Voice, Tools, Privacy/Context, Plugins, Pet, Notifications, Shortcuts and Advanced as capabilities become available.
  • Read/write through Zara's existing configuration system; add a narrow validated config-update API if necessary rather than creating a second config database.
  • Add runtime/provider/voice/Prolog/plugin/tool status diagnostics.
  • Add a copy/export diagnostics action with central redaction.
  • Surface recent bounded structured errors and platform capabilities such as Qt platform, tray and shortcut backend.
  • Clearly identify settings that require runtime restart versus live reload.

Acceptance criteria

  • Desktop settings use the existing XDG TOML configuration as the source of truth.
  • Invalid settings are rejected with actionable validation errors.
  • Secrets/API keys are never included in diagnostics export or ordinary status rendering.
  • Runtime/provider/voice/Prolog/plugin/tray/shortcut state can be inspected.
  • Settings live reload/restart requirements are explicit.
  • Diagnostics can be copied in a bug-report-friendly bounded format.
  • Failure to load one settings section does not crash the desktop shell.

Testing requirements

  • Config round-trip/validation tests with isolated XDG directories.
  • Redaction tests including API keys, auth headers and secret-looking environment/config values.
  • Qt tests for settings changes, validation errors and diagnostics copy.
  • Component unavailable/error state tests.
  • Full repository/Nix suite.

Dependencies

  • #84 desktop shell.
  • #83 RuntimeHost/status.
  • #87 shortcut settings when available.
  • #88 context/privacy settings when available.
  • #91 extension registry for plugin-contributed settings descriptors.
  • Design: #81.

Explicit non-goals

  • No second settings database.
  • No raw environment dump.
  • No display of API keys or authorization headers.
  • No arbitrary plugin-owned Qt settings widget injection without a controlled descriptor boundary.
## Motivation Desktop Zara needs a real settings surface tied to its existing TOML configuration and a diagnostics surface that can explain runtime failures without exposing secrets. ## Scope - Add desktop settings sections for General, Appearance, Copilot, Models, Voice, Tools, Privacy/Context, Plugins, Pet, Notifications, Shortcuts and Advanced as capabilities become available. - Read/write through Zara's existing configuration system; add a narrow validated config-update API if necessary rather than creating a second config database. - Add runtime/provider/voice/Prolog/plugin/tool status diagnostics. - Add a copy/export diagnostics action with central redaction. - Surface recent bounded structured errors and platform capabilities such as Qt platform, tray and shortcut backend. - Clearly identify settings that require runtime restart versus live reload. ## Acceptance criteria - [ ] Desktop settings use the existing XDG TOML configuration as the source of truth. - [ ] Invalid settings are rejected with actionable validation errors. - [ ] Secrets/API keys are never included in diagnostics export or ordinary status rendering. - [ ] Runtime/provider/voice/Prolog/plugin/tray/shortcut state can be inspected. - [ ] Settings live reload/restart requirements are explicit. - [ ] Diagnostics can be copied in a bug-report-friendly bounded format. - [ ] Failure to load one settings section does not crash the desktop shell. ## Testing requirements - Config round-trip/validation tests with isolated XDG directories. - Redaction tests including API keys, auth headers and secret-looking environment/config values. - Qt tests for settings changes, validation errors and diagnostics copy. - Component unavailable/error state tests. - Full repository/Nix suite. ## Dependencies - #84 desktop shell. - #83 RuntimeHost/status. - #87 shortcut settings when available. - #88 context/privacy settings when available. - #91 extension registry for plugin-contributed settings descriptors. - Design: #81. ## Explicit non-goals - No second settings database. - No raw environment dump. - No display of API keys or authorization headers. - No arbitrary plugin-owned Qt settings widget injection without a controlled descriptor boundary.
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#92
No description provided.