Version 0.3.0, Selbstinstallation nach ~/Applications, Gatekeeper im README

Erster Start aus DMG oder Downloads bietet einmalig an, sich nach
~/Applications zu kopieren und von dort neu zu starten — der Weg dorthin
braucht kein Administrator-Passwort, anders als /Applications. Ein DMG
kann das nicht selbst leisten: der Applications-Alias darin ist ein
absoluter Symlink auf /Applications.

Die Kopie erbt per ditto die Quarantäne des Downloads, deshalb wird sie
am Ziel gelöst — sonst käme beim Neustart erneut die Gatekeeper-Warnung
für dieselbe, gerade laufende App. Ablehnen merkt sich die App
(moveOfferDismissed), im Debug-Build fragt sie nie.

README: ~/Applications als gleichwertiger Installationsort, dazu der
Weg über System-Einstellungen -> Datenschutz & Sicherheit fuer alle, die
kein Terminal aufmachen wollen.

0.8 ist fuer den Windows-Stand reserviert.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
marcusH
2026-07-22 10:47:36 +02:00
parent 0faa1e48fd
commit ea08563411
10 changed files with 162 additions and 6 deletions
+4 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "ai-control"
version = "0.2.0"
version = "0.3.0"
description = "Pool- und Session-Verwaltung für Claude Code"
authors = ["marcus.hinz"]
license = "MIT"
@@ -46,6 +46,9 @@ rfd = { version = "0.15", default-features = false, features = ["gtk3"] }
ksni = "0.1"
[target.'cfg(target_os = "macos")'.dependencies]
# Der Installations-Dialog läuft vor dem Tauri-Setup, also ohne AppHandle und
# damit ohne das Dialog-Plugin. Unter macOS braucht rfd kein Backend-Feature.
rfd = { version = "0.15", default-features = false }
objc2 = "0.6"
objc2-app-kit = { version = "0.3", features = ["NSApplication", "NSImage", "NSResponder", "NSRunningApplication"] }
objc2-foundation = { version = "0.3", features = ["NSString"] }