Releases: elsa-workflows/elsa-studio
3.6.0
Elsa Studio 3.6.0
Compare: 3.5.3...3.6.0
⚠️ Breaking Changes / Upgrade Notes
-
Elsa.Studio.WorkflowContextsmodule removed: TheWorkflowContextsmodule has been moved to elsa-extensions. (c08392dec1) -
Elsa.Studio.Labelsmodule reconstituted: Labels was removed and re-introduced as a standalone module without an external package reference (previously bundled differently). If you were referencing a dedicated Labels NuGet package, update your setup to use the new module registration. (ad346fc536) (#712) -
IBrandingProviderinterface extended: New properties (AppName,AppVersion,Tagline,LoginBackgrounds,DefaultAppBarIcons) were added toIBrandingProvider. If you have a custom implementation, update it to include the new members or derive fromDefaultBrandingProvider. (e8ebdd2718) (#698) -
Login page now uses Radzen components: The login page was redesigned using Radzen.Blazor (replacing the previous MudBlazor-based layout). Applications that customised the login layout directly may need to revisit their overrides.
MudDialogProviderhas been moved toBasicLayout. (dc1531db32) (#696)
✨ New Features
Workflow Editor
-
Workflow Code View: A JSON/YAML source-code view is now available directly inside the Workflow Editor. Users can edit the raw workflow definition and optionally have changes auto-saved or auto-applied. Adds
WorkflowDefinitionOptionswithAutoSaveChangesByDefaultandAutoApplyCodeViewChangesByDefaultproperties for host-level configuration. (23f828f05d) (#711) -
Monaco Dialog Code Editor: A modal full-screen Monaco editor is now available from
ExpressionInputandCodeinput components via a dedicated edit button, enabling comfortable editing of scripts and expressions in a larger surface. (fa8781a571) (#702) -
Save As: A "Save As" action is available in the Workflow Editor toolbar, letting users clone a workflow into a new definition without leaving the editor. The previous "Duplicate" action has been refactored as "Clone" behind a shared service. (4a11287c14) (#625)
-
Keyboard Shortcut to Save: Workflows can now be saved with Ctrl+S (Windows/Linux) or Cmd+S (macOS) directly from the Workflow Editor. (78a9f11eb3) (#635)
-
Export Dialog with Referencing Workflows: When exporting a workflow definition, users can now opt to include all referencing workflows in the export bundle via a new option in the export dialog. (997a2dcb95) (#762)
Workflow Definition & Instance Lists
- URL Query Parameter State + Instance Polling:
WorkflowDefinitionListandWorkflowInstanceListnow synchronize their pagination and filter state with the browser URL query string, enabling deep linking, bookmarking, and back-navigation. Adds a user-controllable polling toggle, configurable polling interval, a Refresh menu item, and Ctrl/Cmd+R support for manual refresh. (22d6b5dff4) (#700)
Activity & Workflow Descriptions
- Markdown Descriptions: Workflow and activity descriptions now render as Markdown. Introduces reusable
MarkdownEditorandMarkdownTextAreacomponents backed by MudBlazor/Radzen, with support for previewing, read-only mode, and localization. Long descriptions in the definition list are truncated with a "view more" option. (76ca1d8df1) (#659)
Branding & Customisation
- Configurable Branding:
IBrandingProviderhas been significantly extended to allow white-labelling of Elsa Studio — configure the app name, version, tagline, login page background images (with dark mode variants), and app bar icon visibility.DefaultBrandingProvidersupplies sensible defaults and supports file-based logo/background overrides. (e8ebdd2718) (#698)
Platform
- .NET 10 LTS support: All Elsa Studio NuGet packages now multi-target
net8.0,net9.0, andnet10.0. Packages include assemblies for all three frameworks. CI/CD updated accordingly. (3e4ba147b5) (#674)
🔧 Improvements
Performance
- Workflow Designer: Batched Activity Size Calculation: Addresses a severe performance regression (3–5× slower rendering for large workflows) by batching DOM operations and sharing a single
requestAnimationFrameloop across all activities instead of one per activity. Adds accurate cache keying by activity type, display characteristics, and port count. Workflows with duplicate activity types benefit from immediate cache hits (10–100× faster). Saved workflows skip redundant calculations when valid sizes are already stored in metadata. (d66dad0b47) (#686)
Workflow Designer
-
Minimum Node Size Enforcement: Activity nodes now enforce a minimum size based on content (display text and description length, port count). Size changes are cached and updates are skipped when the new size is unchanged, reducing unnecessary reflows. (0b02c67257) (#733)
-
Prevent Autosave on Programmatic Node Resizing: Initial-render resizing of activity nodes no longer triggers an autosave. A per-graph suppression flag (with try/finally cleanup) gates graph-update events during programmatic adjustments. Size changes smaller than 0.5 px are also ignored to reduce redundant events. (663812ca8e) (#766)
-
Unified Workflow Export Service: Introduces
IWorkflowExportDialogServiceandWorkflowExportDialogServiceto centralise export-dialog logic across all workflow views (definition list, editor, version viewer). Exported files now consistently use the backend-provided filename. Bulk-export preserves the current selection when the dialog is cancelled. (aba46df2d4) (#764)
Workflow Instance Viewer
-
Workflow State JSON in Details Tab: The raw workflow state is now exposed as formatted JSON in the Instance Details tab, making it easier to inspect custom state properties. (fb10077fd8) (#603)
-
Variable ID on Hover: The variable ID is now shown as a tooltip when hovering the label/value in the
WorkflowInstanceViewer. (6a38442381)
Activity Properties Panel
-
Fault Exception Messages in Test Tab: The Test tab now surfaces fault exception messages when a workflow test run faults, reducing the need to dig through server logs. (d8f6a4c6fc) (#612)
-
Activity Version in Info Tab: The activity version is now visible in the activity Info tab. (d0f90c99a8)
Resilience / Feature Detection
- Graceful Resilience Feature Handling:
RemoteResilienceStrategyCatalogandRemoteActivityExecutionServicenow checkIRemoteFeatureProviderbefore calling Resilience API endpoints. When the Resilience feature is not enabled on the Elsa Server, API calls are skipped and the UI hides the related tab — no more 404 errors surfacing to users. Results are cached for efficiency. (fd8ce9b3db) (#753) (8564811559)
UI
- Modernised Login Page: The login page has been redesigned with a two-column card layout, background image, and Radzen.Blazor components. Google Fonts imports have been removed from all HTML host files. (dc1531db32) ([#696](h...
3.6.0 RC5
What's Changed
- Refactor to support asynchronous activity selection by @sfmskywalker in #756
- Added export dialog for workflows with option to include referencing workflows. by @sfmskywalker in #762
- Check Resilience feature availability before making API calls by @Copilot in #753
- Fix clipping of Read Only Tooltip in Monaco Editor by @sfmskywalker in #763
- Centralize workflow export dialog and fix filenames by @sfmskywalker in #764
- Prevent autosave on programmatic node resizing by @sfmskywalker in #766
Full Changelog: 3.6.0-rc3...3.6.0-rc5
3.6.0 RC3
Compare: 3.6.0-rc2...3.6.0-rc3
🐛 Fixes
Workflow List Pagination
-
Workflow Definitions list: Fixed pagination reset to first page after selecting a workflow definition from subsequent pages. Preserved current page state during re-renders in
WorkflowDefinitionList. (11d628f) (#735) -
Query parameter handling: Refactored query parameter parsing logic in
QueryTableComponentBasefor better maintainability. Uses properties instead of fields for initial page and page size, improving state management across workflow components. (af84428) (#736)
Workflow Designer
- Node sizing: Added minimum node size enforcement to ensure workflow designer nodes meet minimum size requirements based on activity content. Enhanced activity size caching by incorporating display text and description lengths for improved accuracy. (0b02c67) (#733)
Workflow Instance Viewer
-
Workflow-as-activity instances: Fixed two navigation issues in workflow instance viewer:
- Double-clicking workflow-as-activity instances now correctly navigates to sub-workflow instances by restoring
IsReadOnlyparameter initialization. - Journal item navigation outside current container/flowchart now properly loads activities by implementing fallback node loading when activity is not immediately found. (2fd5728) (#727)
- Double-clicking workflow-as-activity instances now correctly navigates to sub-workflow instances by restoring
-
Auto layout: Made "Auto layout" toolbox item consistently available in
FlowchartDiagramDesignerregardless of read-only state.
📦 Dependencies
- Elsa.Api.Client: Updated to version 3.6.0-rc3. (e36fbdc)
📦 Full changelog
All changes in this release have been documented above.
3.6.0 RC2
Compare: 3.6.0-rc1...3.6.0-rc2
🌟 Highlights
- Introduced Workflow Code View for the editor. (#711)
- Added Monaco dialog-based code editor experience. (#702)
- Added configurable branding options. (#698)
- Improved definitions/instances navigation with URL query params and re-enabled instance polling. (#700)
- Added studio labels for improved workflow/studio organization. (#712)
⚠️ Breaking changes / upgrade notes
- No breaking changes noted in commit subjects for this range.
✨ New features
- Introduced Workflow Code View for the editor. (#711)
- Added Monaco dialog code editor. (#702)
- Added definitions/instances URL query params and re-enabled instance polling. (#700)
- Added more configurable branding options. (#698)
- Added studio labels. (#712)
🔧 Improvements
- Updated tagline (“You’re in Charge Now,”), adjusted documentation link, and upgraded dependencies across multiple projects. (4f0acd5)
- Improved readability/maintainability by removing an incorrect
ExpressionEditorwrapper onActivationStrategyand reformattingSettings.razorand MudBlazor components (no logic changes). (83f9958) - Refactored log persistence expression sync variables. (bd36c9c)
- Refactored log persistence editor sync variable names. (e2a0dd7)
🐛 Fixes
- Corrected resizing issues for the Code and
ExpressionInputcomponents. (090be37) - Added dialog-based script editor to missed
ExpressionEditor. (5fc7955)
🔁 CI / Build
- Added
release/*branch filter to packaging workflow triggers. (c26d60d) - Added
release/*branch filter to packaging workflow conditions. (b1224b7) - Bumped
Elsa.Api.Clientto3.6.0-preview.4162inDirectory.Packages.props. (8af05cb)
📦 Full changelog (short)
- Adds release notes playbook for Elsa Studio (73a4449)
- Update tagline to "You’re in Charge Now," adjust documentation link, and upgrade dependencies across multiple projects. (4f0acd5)
- Add studio labels (#712)
- Merge branch 'main' into release/3.6.0 (5765147)
- Add dialog-based script editor to missed ExpressionEditor. (5fc7955)
- Refactor log persistence expression sync variables (bd36c9c)
- Refactor log persistence editor sync variable names (e2a0dd7)
- Remove incorrect ExpressionEditor wrapper on ActivationStrategy and reformat Settings.razor. Reformatted MudSelect, MudCheckBox, and MudTextField components for improved readability and maintainability. No changes to underlying logic or functionality. (83f9958)
- Feature: Workflow Code View For Editor (#711)
- Correct resizing issues for the Code and ExpressionInput components. (090be37)
- Add Monaco Dialog Code Editor (#702)
- Definitions / Instances URL Query Params & Re-enable Instance Polling (#700)
- Add
release/*branch filter to packaging workflow conditions (b1224b7) - Add
release/*branch filter to packaging workflow triggers (c26d60d) - Bump Elsa.Api.Client to
3.6.0-preview.4162in Directory.Packages.props (8af05cb) - Add more configurable branding options. (#698)
3.6.0 RC1
Elsa Studio 3.6.0 RC1
Highlights
-
Workflow Designer improvements
- Vertices support for more precise connector routing and cleaner diagrams (#480).
- TreeView-based Activity Picker for faster navigation in large catalogs (#544).
- Flowchart handling + performance improvements, including better node handling and editor responsiveness (#499, #669, #670, #686).
- Activity testing support to speed up iteration while designing workflows (#541, #612).
-
Workflow Editor productivity
-
Auth & integration
-
UI/UX polish
-
Localization
- French translations (#532).
What’s Changed
- Fixed bug where clicking on sub workflow incident/journal would not g… by @MariusVuscanNx (#504)
- Added name field to the instances. by @MariusVuscanNx (#505)
- Fixed checkbox deselect bug on page size update by @MariusVuscanNx (#506)
- Add per-activity MergeMode selector by @sfmskywalker (#507)
- Updates all Nuget Packages and Elsa to 3.6.0-preview.2935 by @KnibbsyMan (#510)
- Normalise UI Inconsistencies by @KnibbsyMan (#511)
- Fixes missing closing tag and adds dense setting to new elements. by @KnibbsyMan (#512)
- Implement Vertices by @sfmskywalker (#480)
- Enhance flowchart handling and improve performance by @MaxBrooks114 (#499)
- Remove Agents from Studio. by @KnibbsyMan (#513)
- Remove Secrets, Webhooks and WorkflowContexts by @KnibbsyMan (#517)
- Add JWT support to WorkflowInstanceObserverFactory by @LarsNijholt (#463)
- Add customizable error component and user message service by @lanseth (#490)
- French translations by @agriffard (#532)
- Adds RadioList UI Hint Support by @KnibbsyMan (#537)
- Remove duplicate components from workflow properties tab. by @KnibbsyMan (#539)
- Add PKCE support for OIDC auth code flow by @michael-livingston (#519)
- Enhancment - Allow to override modulloading by @Schneggo (#543)
- Fix module URL for
JsInteropBaseinElsa.Studio.Workflows.Designer. by @Chryssie (#545) - Replace Workflow Editor Activity Picker with TreeView by @KnibbsyMan (#544)
- Activity Testing Support by @sfmskywalker (#541)
- New Content Formatting Viewer by @KnibbsyMan (#549)
- Minor UI improvements by @KnibbsyMan (#555)
- Update README.md to include updated localization setup. by @KnibbsyMan (#556)
- Add CategoryDisplayResolver to AccordionActivityPicker by @KnibbsyMan (#557)
- Re-factor ContentFormatter to ContentVisualizer. by @KnibbsyMan (#559)
- Fix Directory.Packages.props file by @BasJanssenQuadira (#560)
- [FEAT] Make resizing configurable by @BasJanssenQuadira (#561)
- Duplicate Workflow Option From Defintion List by @KnibbsyMan (#569)
- Component refresh on the editor load to show the latest model from server by @lukhipolito (#571)
- Fix/component losing focus when editing by @lukhipolito-nexxbiz (#573)
- Add studio labels by @RalfvandenBurg (#497)
- Bump the npm_and_yarn group across 1 directory with 4 updates by @dependabot[bot] (#567)
- Bump the npm_and_yarn group across 1 directory with 8 updates by @dependabot[bot] (#590)
- Merge 3.5.1 into 3.6.0 by @sfmskywalker (#600)
- Workflow input as activity input by @mberthillot-flowwa (#601)
- Add XML documentation across public API by @sfmskywalker (#609)
- Add fault exception messages to the TestTab component. by @KnibbsyMan (#612)
- Adding workflow state as JSON to details tab by @mcook-dev (#603)
- Add Save As Functionality to Workflow Editor by @KnibbsyMan (#625)
- Update JetBrains.Annotations to also have PrivateAssets="all" by @RalfvandenBurg (#628)
- Add hotkey support for saving workflows with Ctrl+S/Cmd+S by @KnibbsyMan (#635)
- Add Markdown Descriptions Support by @KnibbsyMan (#659)
- Fix: Prevent extra Flowchart node from appearing by correctly detecting Elsa.Flowchart activities by @sfmskywalker (#669)
- Fix “one-interaction-late” UI updates in InputsTab by avoiding debounced rebuilds on value changes by @sfmskywalker (#670)
- Add .github/copilot-instructions.md for repository onboarding by @Copilot (#671)
- Add XML comments for public members to resolve CS1591 warnings by @Copilot (#608)
- Add .NET 10 LTS target support with multi-targeting by @Copilot (#674)
- Redesign and Modernise the Elsa Login page. by @KnibbsyMan (#696)
- Optimize workflow designer activity size calculation with batching and caching by @Copilot (#686)
New Contributors
- @LarsNijholt made their first contribution in #463
- @lanseth made their first contribution in #490
- @agriffard made their first contribution in #532
- @michael-livingston made their first contribution in #519
- @Schneggo made their first contribution in #543
- @BasJanssenQuadira made their first contribution in #560
- @lukhipolito made their first contribution in #571
- @RalfvandenBurg made their first contribution in #497
- @mberthillot-flowwa made their first contribution in #601
- @mcook-dev made their first contribution in #603
Full Changelog: 3.5.1...3.6.0-rc1
3.5.3
Full Changelog: 3.5.2...3.5.3
3.5.2
What's Changed
- Update JetBrains.Annotations to also have PrivateAssets="all" by @RalfvandenBurg in #628
Full Changelog: 3.5.1...3.5.2
3.5.1
What's Changed
- Feature/575 table like dictionary input by @lukhipolito-nexxbiz in #578
- Update Log Activity Color + Icon by @sfmskywalker in #579
- Fix/dictionary attributes expresions by @lukhipolito-nexxbiz in #588
- Add activity tab registry for managing activity editor tabs by @sfmskywalker in #592
- Adding validation for duplicate keys on Dictionary component by @lukhipolito-nexxbiz in #594
- Add pkce support for oidc auth flow (#519) by @mhmoudalaskalany in #596
- Enhances HTTP request activity with failure ports by @sfmskywalker in #604
- Adds HTTP request failure ports by @sfmskywalker in #605
New Contributors
- @mhmoudalaskalany made their first contribution in #596
Full Changelog: 3.5.0...3.5.1
3.5.0
What's Changed
- Bump Microsoft.CodeAnalysis.ResxSourceGenerator from 3.12.0-beta1.25076.4 to 3.12.0-beta1.25081.1 by @dependabot[bot] in #462
- Bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in #458
- Bump the npm_and_yarn group across 1 directory with 4 updates by @dependabot[bot] in #464
- Bump the npm_and_yarn group across 1 directory with 12 updates by @dependabot[bot] in #465
- Bump MudBlazor.Translations from 2.2.0 to 2.3.0 by @dependabot[bot] in #466
- Bump Elsa.Secrets.Models from 3.5.0-preview.2783 to 3.5.0-preview.2795 by @dependabot[bot] in #467
- Bump Microsoft.AspNetCore.Components, Microsoft.AspNetCore.Components.Web, Microsoft.Extensions.DependencyInjection.Abstractions, Microsoft.JSInterop and MudBlazor by @dependabot[bot] in #468
- Bump vite from 6.2.3 to 6.2.4 in /src/wrappers in the npm_and_yarn group across 1 directory by @dependabot[bot] in #469
- Fixed search input margin by @MariusVuscanNx in #477
- Add OpenIdConnect Support by @Suchiman in #479
- Enh/elsa translation (#493) by @mohdali in #495
- Refactor GetSyntaxProvider for clarity and safety by @MaxBrooks114 in #498
- Implement Strategy Picker by @sfmskywalker in #509
- Enhances workflow instance viewer with retry details by @sfmskywalker in #520
- Fix resilience dropdown item text by @sfmskywalker in #526
- Fix per-input refresh debouncing by @sfmskywalker in #527
- Fix Activity Input Refresh by @sfmskywalker in #529
- Update Elsa version and rename Properties to Metadata by @sfmskywalker in #533
- Enables branding customization via component by @sfmskywalker in #534
- Enhances activity designer UI and interaction by @sfmskywalker in #538
- Refactor workflow JSON detectors by @sfmskywalker in #546
New Contributors
Full Changelog: 3.4.0...3.5.0
3.5.0 RC4
Full Changelog: 3.5.0-rc3...3.5.0-rc4