From 1436ffd7e094c91fb27f643ca7bb4347bff08e05 Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Mon, 23 Mar 2026 13:31:34 +0100 Subject: [PATCH] Made event registration resilient against double registrations --- app/MindWork AI Studio/Components/MSGComponentBase.cs | 2 +- app/MindWork AI Studio/Tools/MessageBus.cs | 4 ++-- app/MindWork AI Studio/Tools/MessageBusExtensions.cs | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/MindWork AI Studio/Components/MSGComponentBase.cs b/app/MindWork AI Studio/Components/MSGComponentBase.cs index 3e1462a1..d2ff9d84 100644 --- a/app/MindWork AI Studio/Components/MSGComponentBase.cs +++ b/app/MindWork AI Studio/Components/MSGComponentBase.cs @@ -100,7 +100,7 @@ public abstract class MSGComponentBase : ComponentBase, IDisposable, IMessageBus Event.PLUGINS_RELOADED, }; - this.MessageBus.ApplyFilters(this, filterComponents, eventsList.ToArray()); + this.MessageBus.ApplyFilters(this, filterComponents, eventsList.ToHashSet()); } protected virtual void DisposeResources() diff --git a/app/MindWork AI Studio/Tools/MessageBus.cs b/app/MindWork AI Studio/Tools/MessageBus.cs index 6f27da87..f7feb24a 100644 --- a/app/MindWork AI Studio/Tools/MessageBus.cs +++ b/app/MindWork AI Studio/Tools/MessageBus.cs @@ -33,10 +33,10 @@ public sealed class MessageBus /// That's you, the receiver. /// A list of components for which you want to receive messages. Use an empty list to receive messages from all components. /// A list of events for which you want to receive messages. - public void ApplyFilters(IMessageBusReceiver receiver, ComponentBase[] filterComponents, Event[] events) + public void ApplyFilters(IMessageBusReceiver receiver, ComponentBase[] filterComponents, HashSet events) { this.componentFilters[receiver] = filterComponents; - this.componentEvents[receiver] = events; + this.componentEvents[receiver] = events.ToArray(); } public void RegisterComponent(IMessageBusReceiver receiver) diff --git a/app/MindWork AI Studio/Tools/MessageBusExtensions.cs b/app/MindWork AI Studio/Tools/MessageBusExtensions.cs index 7956c27e..36d8b71e 100644 --- a/app/MindWork AI Studio/Tools/MessageBusExtensions.cs +++ b/app/MindWork AI Studio/Tools/MessageBusExtensions.cs @@ -11,6 +11,6 @@ public static class MessageBusExtensions public static void ApplyFilters(this IMessageBusReceiver component, ComponentBase[] components, Event[] events) { - MessageBus.INSTANCE.ApplyFilters(component, components, events); + MessageBus.INSTANCE.ApplyFilters(component, components, events.ToHashSet()); } } \ No newline at end of file