From 79b744d260222238c60d407f0369a9f26d6b3cf2 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Fri, 6 Jun 2025 18:47:39 +0200 Subject: [PATCH 01/18] Update packages.yml --- .github/workflows/packages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/packages.yml b/.github/workflows/packages.yml index 853e39fd2..56dca574d 100644 --- a/.github/workflows/packages.yml +++ b/.github/workflows/packages.yml @@ -15,7 +15,7 @@ on: release: types: [ prereleased, published ] env: - base_version: '3.6.0' + base_version: '3.7.0' feedz_feed_source: 'https://f.feedz.io/elsa-workflows/elsa-3/nuget/index.json' nuget_feed_source: 'https://api.nuget.org/v3/index.json' From 61250d8d88314ec86197460d9dc26289905ac7fc Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Fri, 6 Jun 2025 18:48:36 +0200 Subject: [PATCH 02/18] Update elsa-server-and-studio.yml --- .github/workflows/elsa-server-and-studio.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/elsa-server-and-studio.yml b/.github/workflows/elsa-server-and-studio.yml index 9c23cc7c9..d3f420b59 100644 --- a/.github/workflows/elsa-server-and-studio.yml +++ b/.github/workflows/elsa-server-and-studio.yml @@ -29,7 +29,7 @@ jobs: with: # list of Docker images to use as base name for tags images: | - elsaworkflows/elsa-server-and-studio-v3-4-0-preview + elsaworkflows/elsa-server-and-studio-v3-7-0-preview flavor: | latest=true # generate Docker tags based on the following events/attributes From 8e92d5c39e1c5e2e7cd2619b95249f7b82375abe Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Fri, 6 Jun 2025 18:48:56 +0200 Subject: [PATCH 03/18] Update elsa-server.yml --- .github/workflows/elsa-server.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/elsa-server.yml b/.github/workflows/elsa-server.yml index 289332ba4..04a15abf4 100644 --- a/.github/workflows/elsa-server.yml +++ b/.github/workflows/elsa-server.yml @@ -29,7 +29,7 @@ jobs: with: # list of Docker images to use as base name for tags images: | - elsaworkflows/elsa-server-v3-4-0-preview + elsaworkflows/elsa-server-v3-7-0-preview flavor: | latest=true # generate Docker tags based on the following events/attributes From 5fbe2775681e916e22b13b254d7a063802437783 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Fri, 6 Jun 2025 18:49:30 +0200 Subject: [PATCH 04/18] Update elsa-studio.yml (#6715) --- .github/workflows/elsa-studio.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/elsa-studio.yml b/.github/workflows/elsa-studio.yml index f2fe2bff2..e974b5a26 100644 --- a/.github/workflows/elsa-studio.yml +++ b/.github/workflows/elsa-studio.yml @@ -29,7 +29,7 @@ jobs: with: # list of Docker images to use as base name for tags images: | - elsaworkflows/elsa-studio-v3-4-0-preview + elsaworkflows/elsa-studio-v3-7-0-preview flavor: | latest=true # generate Docker tags based on the following events/attributes From e5416b01bb8265b0fe30bd695b3c041b69b027f7 Mon Sep 17 00:00:00 2001 From: Ender <37611092+zengande@users.noreply.github.com> Date: Thu, 3 Jul 2025 20:25:10 +0800 Subject: [PATCH 05/18] Update ListWorkflowDefinitionsRequest.cs (#6761) Remove unnecessary line breaks --- .../Requests/ListWorkflowDefinitionsRequest.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Requests/ListWorkflowDefinitionsRequest.cs b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Requests/ListWorkflowDefinitionsRequest.cs index 46bf0403b..6c44cc588 100644 --- a/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Requests/ListWorkflowDefinitionsRequest.cs +++ b/src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Requests/ListWorkflowDefinitionsRequest.cs @@ -2,8 +2,7 @@ using Elsa.Api.Client.Resources.WorkflowDefinitions.Enums; using Elsa.Api.Client.Shared.Models; using Refit; -namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Requests -; +namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Requests; /// /// Represents a request to list workflow definitions. @@ -63,4 +62,4 @@ public class ListWorkflowDefinitionsRequest /// The order direction. /// public OrderDirection? OrderDirection { get; set; } -} \ No newline at end of file +} From 1464bdccc4986beaea07549cef4cbb6f7e986841 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Fri, 4 Jul 2025 21:22:20 +0200 Subject: [PATCH 06/18] Correct namespace and import for `ConfigureEngineWithVariableTypes`. --- .../Handlers/ConfigureEngineWithVariableTypes.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/Elsa.Expressions.JavaScript/Handlers/ConfigureEngineWithVariableTypes.cs b/src/modules/Elsa.Expressions.JavaScript/Handlers/ConfigureEngineWithVariableTypes.cs index c98efc49e..74b30d221 100644 --- a/src/modules/Elsa.Expressions.JavaScript/Handlers/ConfigureEngineWithVariableTypes.cs +++ b/src/modules/Elsa.Expressions.JavaScript/Handlers/ConfigureEngineWithVariableTypes.cs @@ -1,11 +1,11 @@ +using Elsa.Expressions.JavaScript.Notifications; using Elsa.Extensions; -using Elsa.JavaScript.Notifications; using Elsa.Mediator.Contracts; using Elsa.Workflows.Management.Options; using JetBrains.Annotations; using Microsoft.Extensions.Options; -namespace Elsa.JavaScript.Handlers; +namespace Elsa.Expressions.JavaScript.Handlers; [UsedImplicitly] public class ConfigureEngineWithWorkflowVariableTypes(IOptions options) From b3d8e753a716bfe074e8421d82e92793d7f26279 Mon Sep 17 00:00:00 2001 From: Matt Date: Sun, 6 Jul 2025 00:29:55 +0100 Subject: [PATCH 07/18] Resolves build issues, update package versions and restructure project references - Updated multiple package versions in `Directory.Packages.props` for better dependency management, including `BenchmarkDotNet`, `FastEndpoints`, and `Microsoft.Extensions.Http.Resilience`. - Minor version upgrade for `System.Formats.Asn1` in `_build.csproj`. - Replaced project reference to `Elsa.csproj` with `Elsa.IO.Http.csproj` in `Elsa.ServerAndStudio.Web.csproj`, enhancing modularity. - Added new using directive for `Elsa.IO.Http.Features` in `Program.cs` to support new HTTP functionalities. --- Directory.Packages.props | 499 ++++++------------ build/_build.csproj | 2 +- .../Elsa.ServerAndStudio.Web.csproj | 11 +- src/apps/Elsa.ServerAndStudio.Web/Program.cs | 1 + 4 files changed, 172 insertions(+), 341 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 5be43b161..24290e02f 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -9,340 +9,169 @@ 9.6.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - true - true - - - 3.5.0-preview.1092 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/build/_build.csproj b/build/_build.csproj index 0e27141ab..1ba5f8a5b 100644 --- a/build/_build.csproj +++ b/build/_build.csproj @@ -24,7 +24,7 @@ - + diff --git a/src/apps/Elsa.ServerAndStudio.Web/Elsa.ServerAndStudio.Web.csproj b/src/apps/Elsa.ServerAndStudio.Web/Elsa.ServerAndStudio.Web.csproj index 1b29a1ad7..0cd93fc14 100644 --- a/src/apps/Elsa.ServerAndStudio.Web/Elsa.ServerAndStudio.Web.csproj +++ b/src/apps/Elsa.ServerAndStudio.Web/Elsa.ServerAndStudio.Web.csproj @@ -10,15 +10,16 @@ - + + - - - - + + + + \ No newline at end of file diff --git a/src/apps/Elsa.ServerAndStudio.Web/Program.cs b/src/apps/Elsa.ServerAndStudio.Web/Program.cs index 63ea982e3..a07398557 100644 --- a/src/apps/Elsa.ServerAndStudio.Web/Program.cs +++ b/src/apps/Elsa.ServerAndStudio.Web/Program.cs @@ -1,4 +1,5 @@ using Elsa.Extensions; +using Elsa.IO.Http.Features; using Elsa.ServerAndStudio.Web.Enums; using Elsa.ServerAndStudio.Web.Extensions; using Medallion.Threading.FileSystem; From a47adea710f014470bb9b664d433bafbc390d538 Mon Sep 17 00:00:00 2001 From: Matt Date: Sun, 6 Jul 2025 00:44:30 +0100 Subject: [PATCH 08/18] Remove unused project references from Elsa.sln These changes indicate that the associated projects or dependencies are no longer needed or have been replaced by other components in the solution. --- Elsa.sln | 3 --- 1 file changed, 3 deletions(-) diff --git a/Elsa.sln b/Elsa.sln index 0f2c195a9..c75f22b9f 100644 --- a/Elsa.sln +++ b/Elsa.sln @@ -596,9 +596,6 @@ Global {66E2E2CF-967F-4564-89E8-F46FA973C99B} = {986E5482-0482-448C-B9E4-EC67A9474B85} {0A04B1FD-06C0-4271-A910-A08C263DBC44} = {0354F050-3992-4DD4-B0EE-5FBA04AC72B6} {9B80A705-2E31-4012-964A-83963DCDB384} = {0354F050-3992-4DD4-B0EE-5FBA04AC72B6} - {CD7DC0D1-FFDC-417A-89BE-7F32408F583E} = {5BA4A8FA-F7F4-45B3-AEC8-8886D35AAC79} - {70593549-8B26-4D63-9857-6BA8BB3E31DB} = {CD7DC0D1-FFDC-417A-89BE-7F32408F583E} - {E7137FB0-1988-4562-AD8D-D0D9D2EE85F6} = {CD7DC0D1-FFDC-417A-89BE-7F32408F583E} {7FD1FD1E-5778-4065-AAA5-1F878129EF77} = {5BA4A8FA-F7F4-45B3-AEC8-8886D35AAC79} {EB24F9FE-D7BD-4FCC-907E-AE400288C2A5} = {7FD1FD1E-5778-4065-AAA5-1F878129EF77} {9CA02818-F7EB-4A0B-B27B-BC74ACD499C9} = {7FD1FD1E-5778-4065-AAA5-1F878129EF77} From 66a493592df931c0031afd3ef707d8ba9e1b0be9 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Sun, 6 Jul 2025 21:21:38 +0200 Subject: [PATCH 09/18] Rename copilot-setup-steps.yml.yml to copilot-setup-steps.yml --- .../{copilot-setup-steps.yml.yml => copilot-setup-steps.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{copilot-setup-steps.yml.yml => copilot-setup-steps.yml} (100%) diff --git a/.github/workflows/copilot-setup-steps.yml.yml b/.github/workflows/copilot-setup-steps.yml similarity index 100% rename from .github/workflows/copilot-setup-steps.yml.yml rename to .github/workflows/copilot-setup-steps.yml From a919c00e8c27907522b8148b3eb4ed2b99b8d3c4 Mon Sep 17 00:00:00 2001 From: Max Brooks <45081361+MaxBrooks114@users.noreply.github.com> Date: Fri, 11 Jul 2025 02:55:41 -0400 Subject: [PATCH 10/18] Update RawStringContent encoding in JsonContentFactory (#6786) * Update RawStringContent encoding in JsonContentFactory Modified the instantiation of `RawStringContent` to use a new `UTF8Encoding` instance with `encoderShouldEmitUTF8Identifier` set to `false`, affecting the handling of the UTF-8 byte order mark (BOM) in serialized JSON content. Fixes a bug with content length being different than expected. * Refactor JsonContentFactory to reuse UTF8Encoding Introduced a private static readonly field `_utf8Encoding` in the `JsonContentFactory` class to improve code readability and performance. This change replaces the instantiation of `UTF8Encoding` in the `CreateHttpContent` method, allowing for the reuse of the same encoding instance. --------- Co-authored-by: Max Brooks --- src/modules/Elsa.Http/ContentWriters/JsonContentFactory.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/modules/Elsa.Http/ContentWriters/JsonContentFactory.cs b/src/modules/Elsa.Http/ContentWriters/JsonContentFactory.cs index d3c45da4e..9cd02fa67 100644 --- a/src/modules/Elsa.Http/ContentWriters/JsonContentFactory.cs +++ b/src/modules/Elsa.Http/ContentWriters/JsonContentFactory.cs @@ -13,6 +13,8 @@ public class JsonContentFactory : IHttpContentFactory /// public IEnumerable SupportedContentTypes => new[] { MediaTypeNames.Application.Json, "text/json" }; + private static readonly UTF8Encoding _utf8Encoding = new UTF8Encoding(encoderShouldEmitUTF8Identifier: false); + /// [RequiresUnreferencedCode("The JsonSerializer type is not trim-compatible.")] public HttpContent CreateHttpContent(object content, string contentType) @@ -22,6 +24,6 @@ public class JsonContentFactory : IHttpContentFactory if (string.IsNullOrWhiteSpace(contentType)) contentType = MediaTypeNames.Application.Json; - return new RawStringContent(text, Encoding.UTF8, contentType); + return new RawStringContent(text, _utf8Encoding, contentType); } } \ No newline at end of file From 50a3dc7921210f25a5a7b1edcc21cf4ccf34f232 Mon Sep 17 00:00:00 2001 From: Max Brooks <45081361+MaxBrooks114@users.noreply.github.com> Date: Tue, 15 Jul 2025 08:01:38 -0400 Subject: [PATCH 11/18] Enhance thread safety with ConcurrentDictionary usage (#6760) * Enhance thread safety with ConcurrentDictionary usage Replaced `IDictionary` with `ConcurrentDictionary` for both `_scheduledTasks` and `_scheduledTaskKeys` to improve thread safety in a multi-threaded environment. Updated methods `RegisterScheduledTask`, `RemoveScheduledTask`, and `RemoveScheduledTasks` to utilize the `Remove` method of `ConcurrentDictionary`, ensuring safe and efficient removal of scheduled tasks. * Refactor task registration and removal logic Updated `RegisterScheduledTask` to use `AddOrUpdate` for streamlined task management. This change simplifies the addition and updating of scheduled tasks by consolidating logic into a single operation. Introduced `RemoveScheduledTask` method to handle task removal by name, improving code organization and clarity. * Improve task removal handling in LocalScheduler Modified the `LocalScheduler` class to enhance the removal process of scheduled tasks from the `_scheduledTaskKeys` collection. The removal operation now captures the result in a variable and includes a conditional check to log a warning if the task was not found, improving error handling and debugging capabilities. * Refactor task removal in LocalScheduler Updated the removal process for scheduled tasks in `_scheduledTasks`. The new implementation collects all corresponding keys and attempts to remove them individually, logging warnings for any failures. This enhances error handling and provides better debugging information. --------- Co-authored-by: Max Brooks --- .../Services/LocalScheduler.cs | 42 +++++++++++++------ 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/src/modules/Elsa.Scheduling/Services/LocalScheduler.cs b/src/modules/Elsa.Scheduling/Services/LocalScheduler.cs index 779b1ac46..32f792418 100644 --- a/src/modules/Elsa.Scheduling/Services/LocalScheduler.cs +++ b/src/modules/Elsa.Scheduling/Services/LocalScheduler.cs @@ -1,3 +1,5 @@ +using System.Collections.Concurrent; +using System.Collections.Generic; using Elsa.Extensions; namespace Elsa.Scheduling.Services; @@ -8,8 +10,8 @@ namespace Elsa.Scheduling.Services; public class LocalScheduler : IScheduler { private readonly IServiceProvider _serviceProvider; - private readonly IDictionary _scheduledTasks = new Dictionary(); - private readonly IDictionary> _scheduledTaskKeys = new Dictionary>(); + private readonly ConcurrentDictionary _scheduledTasks = new ConcurrentDictionary(); + private readonly ConcurrentDictionary> _scheduledTaskKeys = new ConcurrentDictionary>(); /// /// Initializes a new instance of the class. @@ -50,26 +52,32 @@ public class LocalScheduler : IScheduler return ValueTask.CompletedTask; } + private void RegisterScheduledTask(string name, IScheduledTask scheduledTask, IEnumerable? keys = null) { - if (_scheduledTasks.TryGetValue(name, out var existingScheduledTask)) - { - existingScheduledTask.Cancel(); - _scheduledTaskKeys.Remove(existingScheduledTask); - } - - _scheduledTasks[name] = scheduledTask; + _scheduledTasks.AddOrUpdate( + name, + addValueFactory: _ => scheduledTask, + updateValueFactory: (_, existingScheduledTask) => + { + existingScheduledTask.Cancel(); + var removed = _scheduledTaskKeys.TryRemove(existingScheduledTask, out ICollection? _); + if (!removed) + System.Diagnostics.Debug.WriteLine($"[LocalScheduler] Warning: Tried to remove scheduled task keys for an existing scheduled task, but it was not present in _scheduledTaskKeys."); + return scheduledTask; + }); if (keys != null) _scheduledTaskKeys[scheduledTask] = keys.ToList(); } + private void RemoveScheduledTask(string name) { if (_scheduledTasks.TryGetValue(name, out var existingScheduledTask)) { - _scheduledTaskKeys.Remove(existingScheduledTask); - _scheduledTasks.Remove(name); + _scheduledTaskKeys.Remove(existingScheduledTask, out _); + _scheduledTasks.Remove(name, out _); existingScheduledTask.Cancel(); } } @@ -82,8 +90,16 @@ public class LocalScheduler : IScheduler foreach (var scheduledTask in scheduledTasks) { - _scheduledTasks.RemoveWhere(x => x.Value == scheduledTask); - _scheduledTaskKeys.Remove(scheduledTask); + // Collect all keys in _scheduledTasks that map to this scheduledTask + var matchingTaskKeys = _scheduledTasks.Where(x => x.Value == scheduledTask).Select(x => x.Key).ToList(); + foreach (var taskKey in matchingTaskKeys) + { + var removed = _scheduledTasks.TryRemove(taskKey, out _); + if (!removed) + System.Diagnostics.Debug.WriteLine($"[LocalScheduler] Warning: Failed to remove scheduled task with key '{taskKey}' for '{key}' from _scheduledTasks."); + } + + _scheduledTaskKeys.Remove(scheduledTask, out _); scheduledTask.Cancel(); } } From 86e983532400f110b06d99f452a7b79405a61913 Mon Sep 17 00:00:00 2001 From: FuJa0815 <30809803+FuJa0815@users.noreply.github.com> Date: Sat, 13 Sep 2025 19:14:02 +0200 Subject: [PATCH 12/18] Add IAsyncEnumerable check to ItemSourceActivityExecutionContextExtensions.GetItemSource (#6897) --- .../ItemSourceActivityExecutionContextExtensions.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/modules/Elsa.Workflows.Core/Extensions/ItemSourceActivityExecutionContextExtensions.cs b/src/modules/Elsa.Workflows.Core/Extensions/ItemSourceActivityExecutionContextExtensions.cs index 66fd31869..a2e7e9421 100644 --- a/src/modules/Elsa.Workflows.Core/Extensions/ItemSourceActivityExecutionContextExtensions.cs +++ b/src/modules/Elsa.Workflows.Core/Extensions/ItemSourceActivityExecutionContextExtensions.cs @@ -36,8 +36,12 @@ public static class ItemSourceActivityExecutionContextExtensions yield return item; } } - - if (items is IEnumerable enumerable) + else if (items is IAsyncEnumerable asyncEnumerable) + { + await foreach (T item in asyncEnumerable) + yield return item; + } + else if (items is IEnumerable enumerable) { foreach (T item in enumerable) yield return item; From 9004daf2a15c03cb144cb67e25308e401809a7a7 Mon Sep 17 00:00:00 2001 From: FuJa0815 <30809803+FuJa0815@users.noreply.github.com> Date: Tue, 23 Sep 2025 13:19:44 +0200 Subject: [PATCH 13/18] Use FullName in WorkflowDictionary (#6923) --- .../Extensions/WorkflowDictionaryExtensions.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/modules/Elsa.Workflows.Runtime/Extensions/WorkflowDictionaryExtensions.cs b/src/modules/Elsa.Workflows.Runtime/Extensions/WorkflowDictionaryExtensions.cs index ebf87b9b3..dfb6ed889 100644 --- a/src/modules/Elsa.Workflows.Runtime/Extensions/WorkflowDictionaryExtensions.cs +++ b/src/modules/Elsa.Workflows.Runtime/Extensions/WorkflowDictionaryExtensions.cs @@ -14,7 +14,8 @@ public static class WorkflowDictionaryExtensions /// public static void Add(this IDictionary>> dictionary) where TWorkflow : IWorkflow { - dictionary.Add(typeof(TWorkflow).Name, sp => + // FullName should never be null here, as we filter out generic types + dictionary.Add(typeof(TWorkflow).FullName!, sp => { var workflow = ActivatorUtilities.GetServiceOrCreateInstance(sp); return new ValueTask(workflow); @@ -26,7 +27,8 @@ public static class WorkflowDictionaryExtensions /// public static void Add(this IDictionary>> dictionary, Type workflowType) { - dictionary.Add(workflowType.Name, sp => + // FullName should never be null here, as we filter out generic types + dictionary.Add(workflowType.FullName!, sp => { var workflow = (IWorkflow)ActivatorUtilities.GetServiceOrCreateInstance(sp, workflowType); return new ValueTask(workflow); From 6637be296f4fbfec219c19820adda9e1bfb70616 Mon Sep 17 00:00:00 2001 From: Peter Klooster Date: Tue, 11 Nov 2025 19:07:29 +0100 Subject: [PATCH 14/18] Fixed ParentWorkflowInstanceId not being set (#7029) Co-authored-by: Peter Klooster --- .../Services/BackgroundWorkflowDispatcher.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/modules/Elsa.Workflows.Runtime/Services/BackgroundWorkflowDispatcher.cs b/src/modules/Elsa.Workflows.Runtime/Services/BackgroundWorkflowDispatcher.cs index d0279afcb..0af4a9278 100644 --- a/src/modules/Elsa.Workflows.Runtime/Services/BackgroundWorkflowDispatcher.cs +++ b/src/modules/Elsa.Workflows.Runtime/Services/BackgroundWorkflowDispatcher.cs @@ -22,7 +22,8 @@ public class BackgroundWorkflowDispatcher(ICommandSender commandSender, ITenantA Properties = request.Properties, CorrelationId = request.CorrelationId, InstanceId = request.InstanceId, - TriggerActivityId = request.TriggerActivityId + TriggerActivityId = request.TriggerActivityId, + ParentWorkflowInstanceId = request.ParentWorkflowInstanceId, }; await commandSender.SendAsync(command, CommandStrategy.Background, CreateHeaders(), cancellationToken); From d0d3ab6426b5097dcea632deb614b7e32b85970c Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Wed, 12 Nov 2025 09:15:29 +0100 Subject: [PATCH 15/18] Remove unused solution projects and update package references - Deleted several project references from `Elsa.sln` to clean up the solution. - Updated `Directory.Packages.props` for consistency and alignment with the latest package versions. --- Directory.Packages.props | 360 +++++++++++++++++++-------------------- Elsa.sln | 72 -------- 2 files changed, 180 insertions(+), 252 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 702935817..94364485b 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -1,182 +1,182 @@ - - true - false - - - 9.0.10 - 9.10.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + true + false + + + 9.0.10 + 9.10.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Elsa.sln b/Elsa.sln index babd76c36..3ef9f27c8 100644 --- a/Elsa.sln +++ b/Elsa.sln @@ -435,74 +435,6 @@ Global {D5720DBC-8C2B-42D5-9D9F-2FF6EAD4001C}.Debug|Any CPU.Build.0 = Debug|Any CPU {D5720DBC-8C2B-42D5-9D9F-2FF6EAD4001C}.Release|Any CPU.ActiveCfg = Release|Any CPU {D5720DBC-8C2B-42D5-9D9F-2FF6EAD4001C}.Release|Any CPU.Build.0 = Release|Any CPU - {BF934627-F531-44FB-BEC2-ECA801FF31E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BF934627-F531-44FB-BEC2-ECA801FF31E7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BF934627-F531-44FB-BEC2-ECA801FF31E7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BF934627-F531-44FB-BEC2-ECA801FF31E7}.Release|Any CPU.Build.0 = Release|Any CPU - {FD3CD5A8-E9B3-467F-90EB-2B7D5B83F348}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FD3CD5A8-E9B3-467F-90EB-2B7D5B83F348}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FD3CD5A8-E9B3-467F-90EB-2B7D5B83F348}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FD3CD5A8-E9B3-467F-90EB-2B7D5B83F348}.Release|Any CPU.Build.0 = Release|Any CPU - {3BED411B-79B5-4CCC-BD46-9549A427B908}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3BED411B-79B5-4CCC-BD46-9549A427B908}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3BED411B-79B5-4CCC-BD46-9549A427B908}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3BED411B-79B5-4CCC-BD46-9549A427B908}.Release|Any CPU.Build.0 = Release|Any CPU - {6CC5FBC7-D3D7-4FE3-AD08-C67939BDB24D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6CC5FBC7-D3D7-4FE3-AD08-C67939BDB24D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6CC5FBC7-D3D7-4FE3-AD08-C67939BDB24D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6CC5FBC7-D3D7-4FE3-AD08-C67939BDB24D}.Release|Any CPU.Build.0 = Release|Any CPU - {FA5E857F-B173-4B5D-8049-B817A210DEF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FA5E857F-B173-4B5D-8049-B817A210DEF5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FA5E857F-B173-4B5D-8049-B817A210DEF5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FA5E857F-B173-4B5D-8049-B817A210DEF5}.Release|Any CPU.Build.0 = Release|Any CPU - {A51F9683-DA9F-45E7-82DE-1E261ACD6D68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A51F9683-DA9F-45E7-82DE-1E261ACD6D68}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A51F9683-DA9F-45E7-82DE-1E261ACD6D68}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A51F9683-DA9F-45E7-82DE-1E261ACD6D68}.Release|Any CPU.Build.0 = Release|Any CPU - {75E08B0E-A41A-425C-9DCA-155505CE41CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {75E08B0E-A41A-425C-9DCA-155505CE41CD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {75E08B0E-A41A-425C-9DCA-155505CE41CD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {75E08B0E-A41A-425C-9DCA-155505CE41CD}.Release|Any CPU.Build.0 = Release|Any CPU - {BD120D97-4862-469E-B2CF-4109F7F21C20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BD120D97-4862-469E-B2CF-4109F7F21C20}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BD120D97-4862-469E-B2CF-4109F7F21C20}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BD120D97-4862-469E-B2CF-4109F7F21C20}.Release|Any CPU.Build.0 = Release|Any CPU - {8A3443F3-D40E-44B9-9805-B4CB7A3F022C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8A3443F3-D40E-44B9-9805-B4CB7A3F022C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8A3443F3-D40E-44B9-9805-B4CB7A3F022C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8A3443F3-D40E-44B9-9805-B4CB7A3F022C}.Release|Any CPU.Build.0 = Release|Any CPU - {FA2B2B44-7E3E-444B-A157-7526B376E9CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FA2B2B44-7E3E-444B-A157-7526B376E9CA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FA2B2B44-7E3E-444B-A157-7526B376E9CA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FA2B2B44-7E3E-444B-A157-7526B376E9CA}.Release|Any CPU.Build.0 = Release|Any CPU - {DF0CA7E2-F5DF-40ED-91B6-748767084FC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DF0CA7E2-F5DF-40ED-91B6-748767084FC7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DF0CA7E2-F5DF-40ED-91B6-748767084FC7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DF0CA7E2-F5DF-40ED-91B6-748767084FC7}.Release|Any CPU.Build.0 = Release|Any CPU - {DB20B168-CD90-41F2-BE08-3D8C6F142459}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DB20B168-CD90-41F2-BE08-3D8C6F142459}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DB20B168-CD90-41F2-BE08-3D8C6F142459}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DB20B168-CD90-41F2-BE08-3D8C6F142459}.Release|Any CPU.Build.0 = Release|Any CPU - {70593549-8B26-4D63-9857-6BA8BB3E31DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {70593549-8B26-4D63-9857-6BA8BB3E31DB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {70593549-8B26-4D63-9857-6BA8BB3E31DB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {70593549-8B26-4D63-9857-6BA8BB3E31DB}.Release|Any CPU.Build.0 = Release|Any CPU - {E7137FB0-1988-4562-AD8D-D0D9D2EE85F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E7137FB0-1988-4562-AD8D-D0D9D2EE85F6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E7137FB0-1988-4562-AD8D-D0D9D2EE85F6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E7137FB0-1988-4562-AD8D-D0D9D2EE85F6}.Release|Any CPU.Build.0 = Release|Any CPU - {EB24F9FE-D7BD-4FCC-907E-AE400288C2A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EB24F9FE-D7BD-4FCC-907E-AE400288C2A5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EB24F9FE-D7BD-4FCC-907E-AE400288C2A5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EB24F9FE-D7BD-4FCC-907E-AE400288C2A5}.Release|Any CPU.Build.0 = Release|Any CPU - {9CA02818-F7EB-4A0B-B27B-BC74ACD499C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9CA02818-F7EB-4A0B-B27B-BC74ACD499C9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9CA02818-F7EB-4A0B-B27B-BC74ACD499C9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9CA02818-F7EB-4A0B-B27B-BC74ACD499C9}.Release|Any CPU.Build.0 = Release|Any CPU - {C583AF05-D517-4B7F-8955-6B61500ED3D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C583AF05-D517-4B7F-8955-6B61500ED3D8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C583AF05-D517-4B7F-8955-6B61500ED3D8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C583AF05-D517-4B7F-8955-6B61500ED3D8}.Release|Any CPU.Build.0 = Release|Any CPU {6F14B066-DF7B-2409-59D8-CCCA90A4974C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6F14B066-DF7B-2409-59D8-CCCA90A4974C}.Debug|Any CPU.Build.0 = Debug|Any CPU {6F14B066-DF7B-2409-59D8-CCCA90A4974C}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -676,10 +608,6 @@ Global {66E2E2CF-967F-4564-89E8-F46FA973C99B} = {986E5482-0482-448C-B9E4-EC67A9474B85} {0A04B1FD-06C0-4271-A910-A08C263DBC44} = {0354F050-3992-4DD4-B0EE-5FBA04AC72B6} {9B80A705-2E31-4012-964A-83963DCDB384} = {0354F050-3992-4DD4-B0EE-5FBA04AC72B6} - {7FD1FD1E-5778-4065-AAA5-1F878129EF77} = {5BA4A8FA-F7F4-45B3-AEC8-8886D35AAC79} - {EB24F9FE-D7BD-4FCC-907E-AE400288C2A5} = {7FD1FD1E-5778-4065-AAA5-1F878129EF77} - {9CA02818-F7EB-4A0B-B27B-BC74ACD499C9} = {7FD1FD1E-5778-4065-AAA5-1F878129EF77} - {C583AF05-D517-4B7F-8955-6B61500ED3D8} = {7FD1FD1E-5778-4065-AAA5-1F878129EF77} {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} = {5BA4A8FA-F7F4-45B3-AEC8-8886D35AAC79} {6F14B066-DF7B-2409-59D8-CCCA90A4974C} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} {C55015F0-E9DF-4BF9-8131-D7539E938220} = {5BA4A8FA-F7F4-45B3-AEC8-8886D35AAC79} From 865722775713473facf776a3005b168936db772d Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Wed, 12 Nov 2025 09:29:03 +0100 Subject: [PATCH 16/18] Simplify CI pipeline by removing `Test` step from `Compile+Test+Pack` process. --- .github/workflows/packages.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/packages.yml b/.github/workflows/packages.yml index 27e1847b7..fa93c6e21 100644 --- a/.github/workflows/packages.yml +++ b/.github/workflows/packages.yml @@ -139,8 +139,8 @@ jobs: with: dotnet-version: 9.x - - name: Compile+Test+Pack - run: ./build.sh Compile+Test+Pack --version ${VERSION} --analyseCode true + - name: Compile+Pack + run: ./build.sh Compile+Pack --version ${VERSION} --analyseCode true - name: Upload artifact uses: actions/upload-artifact@v4 From f0049be001e6de46a66e9b0d293d4189e7217fad Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Sat, 15 Nov 2025 10:51:18 +0100 Subject: [PATCH 17/18] Configure Copilot coding agent instructions (#7060) * Initial plan * Complete Copilot setup steps workflow with build, test, and pack steps Co-authored-by: sfmskywalker <938393+sfmskywalker@users.noreply.github.com> * Update .github/workflows/copilot-setup-steps.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update .github/workflows/copilot-setup-steps.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: sfmskywalker <938393+sfmskywalker@users.noreply.github.com> Co-authored-by: Sipke Schoorstra Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .github/workflows/copilot-setup-steps.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index f5f80a5d3..e5e0f9205 100644 --- a/.github/workflows/copilot-setup-steps.yml +++ b/.github/workflows/copilot-setup-steps.yml @@ -17,3 +17,6 @@ jobs: uses: actions/setup-dotnet@v4 with: dotnet-version: "9.0.x" + + - name: Build, test, and pack + run: ./build.cmd Compile Test Pack From b3ad57191aeb4b8b96f37087c0b99a1b47815fbe Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Sat, 15 Nov 2025 19:44:16 +0100 Subject: [PATCH 18/18] Add DeepWiki badge to README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 575564ab5..590027250 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,8 @@ [![Discord](https://img.shields.io/discord/814605913783795763?label=discord&logo=discord)](https://discord.gg/hhChk5H472) [![Stack Overflow questions](https://img.shields.io/badge/stackoverflow-elsa_workflows-orange.svg)]( http://stackoverflow.com/questions/tagged/elsa-workflows ) [![Gurubase](https://img.shields.io/badge/Gurubase-Ask%20Elsa%20Guru-006BFF)](https://gurubase.io/g/elsa) +[![DeepWiki](https://img.shields.io/badge/DeepWiki-elsa--workflows%2Felsa--core-blue.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAyCAYAAAAnWDnqAAAAAXNSR0IArs4c6QAAA05JREFUaEPtmUtyEzEQhtWTQyQLHNak2AB7ZnyXZMEjXMGeK/AIi+QuHrMnbChYY7MIh8g01fJoopFb0uhhEqqcbWTp06/uv1saEDv4O3n3dV60RfP947Mm9/SQc0ICFQgzfc4CYZoTPAswgSJCCUJUnAAoRHOAUOcATwbmVLWdGoH//PB8mnKqScAhsD0kYP3j/Yt5LPQe2KvcXmGvRHcDnpxfL2zOYJ1mFwrryWTz0advv1Ut4CJgf5uhDuDj5eUcAUoahrdY/56ebRWeraTjMt/00Sh3UDtjgHtQNHwcRGOC98BJEAEymycmYcWwOprTgcB6VZ5JK5TAJ+fXGLBm3FDAmn6oPPjR4rKCAoJCal2eAiQp2x0vxTPB3ALO2CRkwmDy5WohzBDwSEFKRwPbknEggCPB/imwrycgxX2NzoMCHhPkDwqYMr9tRcP5qNrMZHkVnOjRMWwLCcr8ohBVb1OMjxLwGCvjTikrsBOiA6fNyCrm8V1rP93iVPpwaE+gO0SsWmPiXB+jikdf6SizrT5qKasx5j8ABbHpFTx+vFXp9EnYQmLx02h1QTTrl6eDqxLnGjporxl3NL3agEvXdT0WmEost648sQOYAeJS9Q7bfUVoMGnjo4AZdUMQku50McDcMWcBPvr0SzbTAFDfvJqwLzgxwATnCgnp4wDl6Aa+Ax283gghmj+vj7feE2KBBRMW3FzOpLOADl0Isb5587h/U4gGvkt5v60Z1VLG8BhYjbzRwyQZemwAd6cCR5/XFWLYZRIMpX39AR0tjaGGiGzLVyhse5C9RKC6ai42ppWPKiBagOvaYk8lO7DajerabOZP46Lby5wKjw1HCRx7p9sVMOWGzb/vA1hwiWc6jm3MvQDTogQkiqIhJV0nBQBTU+3okKCFDy9WwferkHjtxib7t3xIUQtHxnIwtx4mpg26/HfwVNVDb4oI9RHmx5WGelRVlrtiw43zboCLaxv46AZeB3IlTkwouebTr1y2NjSpHz68WNFjHvupy3q8TFn3Hos2IAk4Ju5dCo8B3wP7VPr/FGaKiG+T+v+TQqIrOqMTL1VdWV1DdmcbO8KXBz6esmYWYKPwDL5b5FA1a0hwapHiom0r/cKaoqr+27/XcrS5UwSMbQAAAABJRU5ErkJggg==)](https://deepwiki.com/elsa-workflows/elsa-core) + ### [For Elsa 2, Click Here](https://github.com/elsa-workflows/elsa-core/tree/2.x)