* Initial plan
* Fix memory leak: Dispose IronCompressResult in Zstd codec and add tests
Co-authored-by: sfmskywalker <938393+sfmskywalker@users.noreply.github.com>
* Refactor tests to be more DRY using Theory and InlineData
Co-authored-by: sfmskywalker <938393+sfmskywalker@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>
* Consolidate tenant task lifecycle logic into `TenantTaskManager` and remove obsolete task event handlers (`RunStartupTasks`, `RunBackgroundTasks`, `StartRecurringTasks`). Introduce `TopologicalTaskSorter` for dependency-based task execution.
* Handles multiple tasks of the same type
Updates the topological task sorter to handle multiple tasks of the same type.
Previously, the sorter assumed a one-to-one mapping between task types and task instances, which caused issues when multiple tasks of the same type were present.
Now, it groups tasks by type and adds them to the result in the correct order.
* Add unit tests for `TopologicalTaskSorter`
Introduce `Elsa.Common.UnitTests` project with comprehensive test coverage for `TopologicalTaskSorter`, including dependency resolution, circular dependency handling, and task ordering scenarios. Update `Elsa.sln` to include the new test project.
* Update src/modules/Elsa.Common/Multitenancy/EventHandlers/TenantTaskManager.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Unwrap background task continuation in `TenantTaskManager` to ensure proper task execution tracking.
* Update src/modules/Elsa.Common/Helpers/TopologicalTaskSorter.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Refactor `TryGet` method to prioritize memory register lookup and update `Output` constructor to use `MemoryBlockReference`.
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>