desktop: Fix with AI on scan findings that need a code change (aiFix: true, AI_FIX_RULES). The host (src-tauri/src/ai_fix.rs) runs the owner's local Claude Code headless in the app folder with Read / Edit / Write / Grep / Glob only (Bash, web tools, sub-agents disallowed) and a prompt it builds from the finding's fields; it refuses while the folder has uncommitted files, streams progress, times out after 10 min with a heartbeat, kills the process group on Cancel or exit, and records the run's changed files so Undo restores exactly those; the window shows the diff with Keep / Undo and rescans. Without claude the button copies the prompt (Copy for AI). Only the claude binary, git and kill / taskkill are started there (tests/security.rs); tests/ai_fix.rs covers the prompt, dirty-tree refusal, undo scope, timeout and cancel
This commit is contained in:
parent
992f5bcc0e
commit
c95f2af8ff
24 changed files with 1023 additions and 10 deletions
|
|
@ -2,6 +2,11 @@
|
|||
|
||||
## Unreleased
|
||||
|
||||
- **Desktop: Fix with AI** on scan findings that need a code change (NSAllowsArbitraryLoads in Info.plist, a missing
|
||||
foregroundServiceType, purpose strings, target SDK, ...). The app runs your local Claude Code headless in the app
|
||||
folder with file tools only (no commands, no network, no git push), streams its progress, stops after 10 minutes or
|
||||
on Cancel, and shows the diff with Keep and Undo (exactly the files it changed), then rescans. It refuses while the
|
||||
folder has uncommitted files. Without Claude Code installed the button copies the prompt instead (Copy for AI).
|
||||
- **Desktop: a Fix button on findings** that storebound can fix itself. Scan and validate findings carry a
|
||||
machine-readable `action` (`--json`); the Checks tab runs it as a write with its dry run in the native dialog
|
||||
before anything changes. privacy-labels writes the detected answers into the config (`scan --write-only`, the
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue