Files
Rohit Kushwaha b1bf0897f0 fix(client): reliable first-install pipeline and production CSP (#583)
* fix(client): reliable first-install pipeline and production CSP

Rewrites the Tauri installer to handle fresh devices with no Python/uv.
Uses a cascading bootstrap: find Python 3.11+ -> install uv -> uv python
install -> fallback to system package manager -> prompt user. Only passes
--uv-available when uv is actually detected. Reads both stdout and stderr
from the installer subprocess so errors are visible in the UI.

Fixes production-only "Failed to load sessions" by adding localhost to CSP
connect-src (production uses tauri.localhost origin, not 127.0.0.1).

Adds Tauri logging plugin (file + stdout + webview) and a TypeScript logger
wrapper with console fallback for non-Tauri environments.

Embeds Claude Code CLI installation in the bootstrap pipeline. Updates
"CLI not found" messages across all agent backends with platform-specific
install commands and alternative backend suggestions.

* fix(lint): reformat test files flagged by ruff

Reformat tests/test_headless_permissions.py and
tests/test_integration_headless.py to satisfy ruff format.
Fix UP038 lint error: use `dict | str` instead of `(dict, str)`.

Closes #584

* fix(client): add missing Command import in context.rs

The macOS active-context detection uses std::process::Command
but the import was missing, causing a build failure on macOS.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Prakash <prakashd88@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 22:19:44 +05:30

53 lines
1.6 KiB
JSON

{
"$schema": "../gen/schemas/desktop-schema.json",
"identifier": "default",
"description": "Capability for the main and side panel windows (desktop only)",
"platforms": ["linux", "macOS", "windows"],
"windows": ["main", "sidepanel", "quickask"],
"permissions": [
"core:default",
"core:window:default",
"core:window:allow-close",
"core:window:allow-minimize",
"core:window:allow-maximize",
"core:window:allow-unmaximize",
"core:window:allow-toggle-maximize",
"core:window:allow-start-dragging",
"core:window:allow-is-maximized",
"core:window:allow-set-focus",
"core:window:allow-hide",
"core:window:allow-show",
"core:window:allow-is-visible",
"core:window:allow-create",
"core:window:allow-set-size",
"core:window:allow-set-position",
"core:window:allow-inner-size",
"core:window:allow-current-monitor",
"opener:default",
"os:default",
"notification:default",
"notification:allow-notify",
"notification:allow-request-permission",
"notification:allow-is-permission-granted",
"global-shortcut:default",
"global-shortcut:allow-register",
"global-shortcut:allow-unregister",
"global-shortcut:allow-is-registered",
"autostart:default",
"autostart:allow-enable",
"autostart:allow-disable",
"autostart:allow-is-enabled",
"core:event:default",
"core:event:allow-listen",
"core:event:allow-emit",
"dialog:default",
"dialog:allow-open",
"updater:default",
"updater:allow-check",
"updater:allow-download-and-install",
"process:allow-restart",
"process:allow-exit",
"log:default"
]
}