Add installable agent lifecycle extensions

This commit is contained in:
Georg Bauer
2026-08-30 16:05:09 +02:00
parent 1ac559bbd0
commit 3977261bd3
10 changed files with 2838 additions and 61 deletions
+19
View File
@@ -482,6 +482,8 @@ impl App {
self.preference_draft = PreferenceDraft::from_saved(&self.config);
self.preference_error = None;
self.restore_dev_brain_confirmation = false;
self.pending_extension_trust = None;
self.pending_extension_uninstall = None;
let (id, open) = window::open(window::Settings {
size: Size::new(920.0, 700.0),
min_size: Some(Size::new(720.0, 480.0)),
@@ -639,6 +641,23 @@ impl App {
message: Message,
) -> Result<Message, Task<Message>> {
match message {
Message::PreferenceExtensionSourceChanged(value) => {
self.extension_source = value;
self.extension_error = None;
}
Message::PreferenceExtensionRefChanged(value) => {
self.extension_ref = value;
self.extension_error = None;
}
Message::InstallExtension => self.install_extension(),
Message::UpdateExtension(id) => self.update_extension(id),
Message::ToggleExtension(id, enabled) => self.toggle_extension(id, enabled),
Message::ConfirmExtensionTrust => self.confirm_extension_trust(),
Message::CancelExtensionTrust => self.pending_extension_trust = None,
Message::RequestUninstallExtension(id) => self.pending_extension_uninstall = Some(id),
Message::ConfirmUninstallExtension => self.confirm_uninstall_extension(),
Message::CancelUninstallExtension => self.pending_extension_uninstall = None,
Message::ExtensionOperationTick => self.poll_extension_operation(),
Message::PreferenceModelChanged(model) => {
if let Err(error) = self.preference_draft.store_generation() {
self.preference_error = Some(error);