github elsa-workflows/elsa-core 3.6.0-rc2
3.6.0 RC2

pre-release4 days ago

Compare: 3.6.0-rc1...3.6.0-rc2

⚠️ Breaking changes / upgrade notes

  • CI / SDK: GitHub workflow now uses .NET SDK 10.x (was 9.x). (b22956c) (fa2254f) (72597f7)
  • Bookmarks model change: Bookmark moved from a positional record to a mutable class (serialization/back-compat oriented). (ca268c1) (#7161)
  • DistributedLock package: Elsa.Common now references DistributedLock.Core instead of DistributedLock. (#7169)

✨ New features

Activity hosts / host-method activities

  • Introduced host-method activities: expose public methods on configured CLR types as workflow activities. (#7172)
    • Parameter binding extensibility (e.g. DI-backed parameters using [FromServices]). (#7172)
  • Added a sample activity host (Penguin) and registered it in Elsa.Server.Web. (#7172)

Commit strategies (defaults)

  • Added support for global default commit strategies (fallback when no explicit strategy is configured). (#7148)

Resilience / transient exception detection

  • Added transient exception detection infrastructure and registration. (ca268c1) (#7161)

Workflow dispatch notifications

  • Added new notifications emitted by the background dispatcher. (#7157)

Tenant task lifecycle & dependencies

  • Introduced TenantTaskManager and dependency ordering support ([TaskDependency], TopologicalTaskSorter). (#7174)

🔧 Improvements

  • Distributed runtime lock resilience: Polly retry around distributed lock acquisition (with transient exception detection), and safer lock release behavior. (#7161)
  • Mediator background services: improved cancellation handling to avoid noisy failures. (ca268c1) (#7161)
  • Xunit logging: suppress “no currently active test” errors from late background log writes. (ca268c1) (#7161)
  • Small cleanups:
    • Make correlationId parameter non-optional in WorkflowExecutionContext constructor. (fa798b0)
    • Remove unused ClearCompletionCallbacks from WorkflowExecutionContext. (79a64e9)

🐛 Fixes

  • Literal inputs: ActivityExecutionContext.TryGet(...) correctly handles Literal references by returning the literal’s value directly. (#7075)

🧩 Developer-facing changes

  • Attribute usage expanded:
    • ActivityAttribute: now valid on classes, interfaces, and methods. (3778a14)
    • InputAttribute: now valid on properties and parameters. (3778a14)
    • OutputAttribute: now valid on properties, classes, methods, and return values. (3778a14)

🧪 Tests

  • Added/expanded coverage for:
    • Host method activity registration & descriptor behavior. (#7172)
    • Distributed lock resilience (acquisition retries + release failure behavior). (#7161)
    • Literal input handling. (#7075)
    • Default workflow/activity commit strategy behavior. (#7148)
    • Workflow dispatch notifications. (#7157)
    • Tenant task dependency ordering / topological sorting. (#7174)
    • Transient exception strategy & detector behavior. (ca268c1) (#7161)
  • Replace flaky Task.Delay with TaskCompletionSource for deterministic test synchronization. (2ff1693)

🔁 CI / Build

📦 Full changelog (short)

  • Improves tenant task management with dependencies (#7174)
  • Make correlationId parameter non-optional in WorkflowExecutionContext constructor. (fa798b0)
  • Remove unused ClearCompletionCallbacks method from WorkflowExecutionContext. (79a64e9)
  • Merge remote-tracking branch origin/patch/3.5.4 into release/3.6.0. (4e9b6d0)
  • Update base_version to 3.6.0 in GitHub workflow configuration. (72597f7)
  • Merge remote-tracking branch origin/main into release/3.6.0. (8f6ce7e)
  • Enhances distributed lock handling with resilience (#7161)
  • Restore Literal handling in ActivityExecutionContext.TryGet (#7075)
  • Update branch check in release workflow to include release/* branches. (b22956c)
  • Update GitHub workflows to include release/* branch targeting. (fa2254f)
  • Adds activity host registration support (#7172)
  • Update AttributeUsage targets for InputAttribute, OutputAttribute, and ActivityAttribute. (3778a14)
  • Merge pull request #7157 from elsa-workflows/copilot/add-workflow-dispatch-notification (#7157)
  • Replace flaky Task.Delay with TaskCompletionSource for deterministic test synchronization. (2ff1693)
  • Merge branch release/3.6.0. (3ed1833)
  • Replace DistributedLock meta-package with DistributedLock.Core in Elsa.Common (#7169)
  • Merge pull request #7148 from dwoldo/dwoldo/add-commit-strategy-defaults (#7148)

Don't miss a new elsa-core release

NewReleases is sending notifications on new releases.