feat: AI based permission checks

This commit is contained in:
Georg Bauer
2026-07-30 09:47:54 +02:00
parent c101ca1380
commit 73d7c8af27
14 changed files with 413 additions and 28 deletions

View File

@@ -4,6 +4,7 @@ use std::sync::RwLock;
#[derive(Clone)]
pub(super) struct PreferenceDraft {
pub(super) model: ModelChoice,
pub(super) default_permission_mode: PermissionMode,
pub(super) legacy_mtp_enabled: bool,
pub(super) dspark_enabled: bool,
pub(super) idle_timeout_minutes: String,
@@ -63,6 +64,7 @@ impl PreferenceDraft {
let speculative = &runtime.speculative;
Self {
model: config.model,
default_permission_mode: config.default_permission_mode,
legacy_mtp_enabled: speculative.legacy_mtp_enabled,
dspark_enabled: speculative.dspark_enabled,
idle_timeout_minutes: config.idle_timeout_minutes.to_string(),
@@ -407,6 +409,7 @@ impl App {
};
let config = Config {
model: self.preference_draft.model,
default_permission_mode: self.preference_draft.default_permission_mode,
idle_timeout_minutes,
a2ui_enabled: self.preference_draft.a2ui_enabled,
endpoint: EndpointConfig {
@@ -524,6 +527,10 @@ impl App {
}
self.preference_error = None;
}
Message::PreferencePermissionModeChanged(mode) => {
self.preference_draft.default_permission_mode = mode;
self.preference_error = None;
}
Message::PreferenceLegacyMtpChanged(enabled) => {
self.preference_draft.legacy_mtp_enabled =
self.preference_draft.model.supports_dspark() && enabled;