Commit graph

7323 commits

Author SHA1 Message Date
Sipke Schoorstra ef6237c4eb
Merge pull request #7743 from elsa-workflows/sfmskywalker-port-asb-stable-instance-380
Port ASB stable application instance name to 3.8
2026-06-20 00:22:53 +02:00
Sipke Schoorstra 0028604caf
Merge pull request #7742 from elsa-workflows/sfmskywalker-port-asb-stable-instance-371
Port ASB stable application instance name fix to 3.7.1
2026-06-20 00:22:30 +02:00
Sipke Schoorstra c442c5f543
Address Greptile review feedback
- Promote boundary constants to internal in ConfiguredApplicationInstanceNameProvider
- Add InternalsVisibleTo for test assembly to eliminate constant duplication
- Update tests to reference service constants directly
- Replace probabilistic NotEqual assertions with deterministic hex-format assertions

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-20 00:13:34 +02:00
Sipke Schoorstra b08b10132c
address greptile review feedback (greploop iteration 1)
- Make validation constants internal and expose via InternalsVisibleTo so tests reference single source of truth
- Add empty-string guard to IsValidConfiguredInstanceName to prevent IndexOutOfRangeException
- Add ClusteringFeature_UsesConfiguredInstanceNameProvider test for Features.ClusteringFeature to match existing ShellFeatures coverage

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-20 00:13:33 +02:00
Sipke Schoorstra 1aef083815
fix: address greptile stable instance feedback
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-20 00:08:52 +02:00
Sipke Schoorstra 55284aa1c1
Add stable application instance name configuration
Forward-port the opt-in stable application instance name support from PR #7734 so clustered deployments can reuse per-instance transport entities across restarts while preserving random names by default.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-20 00:04:15 +02:00
Sipke Schoorstra b78649a366
Port ASB stable application instance name
Backports the opt-in configured application instance name provider from #7734 to release/3.8.0, including 3.8 shell-feature wiring and tests.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-20 00:03:43 +02:00
Sipke Schoorstra fc48af062c
fix: add stable application instance name option
Cherry-picked-from: e1096c714772a8a776c209fef45983538b81a3a1

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-20 00:03:16 +02:00
Sipke Schoorstra 1417e797ec
Merge pull request #7741 from elsa-workflows/sfmskywalker-fix-optout-publish-validation
Add opt-out for publish-on-validation-error failure
2026-06-19 23:58:23 +02:00
Sipke Schoorstra 6b08988edd
Fix CShells package restore in CI
CI failed during restore because the centrally pinned CShells preview version
was no longer available from the mapped cshells Feedz source. Local builds did
not reproduce while the preview packages existed in the developer NuGet cache.

Pin the CShells packages to the public 0.0.28 release and allow CShells package
IDs to resolve from NuGet.org in package source mapping, so clean CI restores no
longer depend on unavailable private/feed preview packages.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-19 23:31:54 +02:00
Sipke Schoorstra 2863c980f3
Surface publish validation warnings on API responses
In lenient mode (FailOnValidationErrors = false), PublishAsync returns
Succeeded = true while ValidationErrors may still be non-empty. Previously the
publish API endpoints discarded those warnings, so lenient-mode callers got a
200 OK with no indication of the validation issues.

- Publish and Post (save-and-publish) responses now include a ValidationErrors
  collection populated with the publish result's validation messages.
- BulkPublish response now includes a Warnings dictionary mapping each
  successfully-published definition id to its validation warning messages.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-19 23:31:39 +02:00
Sipke Schoorstra 354d59942c
Honor publish result in Publish/BulkPublish endpoints
The Publish and BulkPublish API endpoints invoked PublishAsync but ignored
the returned result.Succeeded, so publications that failed due to validation
errors were silently reported as successful. On main, strict publishing is the
default, making this a high-impact correctness issue.

- Publish endpoint: when the publish result indicates failure, surface the
  validation errors via AddError and return a 400, mirroring the existing
  save-and-publish (Post) endpoint pattern.
- BulkPublish endpoint: add a Failed bucket; definitions whose publication
  fails are recorded in Failed instead of Published, and the new bucket is
  returned on the response.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-19 23:31:39 +02:00
Sipke Schoorstra b266b32ef9
Restore trailing newline in ManagementOptions.cs
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-19 23:31:39 +02:00
Sipke Schoorstra 7981892838
Add opt-out for publish-on-validation-error failure (3.8)
This forward-ports the FailOnValidationErrors publish toggle to the 3.8
mainline. It is purely additive and changes no default behavior: publishing
a workflow definition still fails when validation errors are present
(FailOnValidationErrors defaults to true, i.e. strict = opt-out).

Setting FailOnValidationErrors to false — via
WorkflowManagementFeature.UseFailOnValidationErrors(false) or the
ManagementOptions.FailOnValidationErrors option — allows publication to
succeed while surfacing the validation errors as warnings on the publish
result. This enables publishing workflows that intentionally leave required
properties blank (for example, an empty Cron expression used to disable a
trigger).

This is the 3.8 counterpart to #7740, which introduces the same toggle as
opt-in (default false) on the 3.6.x line. References #7738.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-19 23:31:38 +02:00
Sipke Schoorstra f74087ea8b
Merge remote-tracking branch 'origin/release/3.8.0' into release/3.8.0 2026-06-18 18:27:36 +02:00
Sipke Schoorstra e9d89969b7
Add Platform integration 2026-06-18 18:27:27 +02:00
Sipke Schoorstra 8e20386a28
Merge pull request #7705 from elsa-workflows/codex/7579-tenant-agnostic-api-key
fix: use tenant-agnostic application lookup for API keys
2026-06-17 20:16:22 +02:00
Sipke Schoorstra 116381e543
Merge pull request #7729 from elsa-workflows/codex/runtime-status-read-permission
Add read-only workflow runtime status permission
2026-06-16 23:55:56 +02:00
Sipke Schoorstra 18fc26d891
Clarify runtime status permission summary 2026-06-16 23:34:13 +02:00
Sipke Schoorstra dd47148164
Add read-only workflow runtime status permission 2026-06-16 23:27:59 +02:00
Sipke Schoorstra 04d602fcd2
Merge pull request #7711 from elsa-workflows/codex/7708-notfoundactivity-guard
[codex] Guard missing NotFoundActivity descriptor during deserialization
2026-06-14 22:33:41 +02:00
Sipke Schoorstra 46cf0739e6
Merge remote-tracking branch 'origin/main' into codex/7708-notfoundactivity-guard
# Conflicts:
#	src/modules/Elsa.Workflows.Core/Serialization/Converters/ActivityJsonConverter.cs
2026-06-14 22:26:41 +02:00
Sipke Schoorstra 8f721e1ea2
Guard HTTP fault handling when workflow reload returns null (#7714)
* Guard HTTP fault handling when workflow reload returns null

* Add HTTP fault handler reload guard tests

* Address Greptile review feedback
2026-06-14 22:23:38 +02:00
Sipke Schoorstra 0d7c810688
address greptile review feedback 2026-06-14 19:07:15 +02:00
Sipke Schoorstra 48a087e71e
Restore RequestAborted after timed HTTP workflow failures (#7712)
* Fix RequestAborted restoration for timed HTTP workflows

* Add timeout restoration tests for HttpWorkflowsMiddleware
2026-06-14 19:02:23 +02:00
Sipke Schoorstra 9c24f5efe5
Dispose parsed activity JsonDocuments (#7713)
* Dispose parsed activity JsonDocuments

* Add ActivityJsonConverter disposal regression test

* Fix ActivityJsonConverter disposal regression test file

* address greptile test coverage feedback
2026-06-11 20:33:10 +02:00
Sipke Schoorstra ded765b379
docs: refresh roadmap 2026-06-10 02:05:50 +02:00
Sipke Schoorstra 42ef838323 Add regression test for missing NotFoundActivity descriptor 2026-06-09 21:28:29 +02:00
Sipke Schoorstra a5a3aa77ae Guard missing NotFoundActivity descriptor during deserialization 2026-06-09 21:28:27 +02:00
Sipke Schoorstra 1d1c68282c
fix: use tenant-agnostic application lookup for api keys 2026-06-09 06:09:47 +02:00
Sipke Schoorstra 20c1064ca5
Remove unneeded CliPath prop 2026-06-08 23:35:31 +02:00
Sipke Schoorstra c66f9aed45
Add Weaver grounding tools
Adds Spec Kit-backed Weaver grounding tools for activities, workflow definitions, workflow proposals, runtime instances, incidents, and Studio capability discovery.
2026-06-08 15:40:10 +02:00
Sipke Schoorstra c84891cdac
Merge pull request #7703 from elsa-workflows/codex/ai-provider-specific-efcore-migrations
Move AI EF Core migrations to provider projects
2026-06-08 15:23:44 +02:00
Sipke Schoorstra 5c0d8b0f4e
Move AI EF Core migrations to provider projects 2026-06-08 15:22:59 +02:00
Sipke Schoorstra f3ee587742
[codex] Fix ForEach completion from nested flowchart (#7702)
* Fix ForEach completion from nested flowchart

* Assert ForEach complete output regression

* Use break flag helper consistently

* Cover parent flowchart ForEach completion
2026-06-08 12:04:55 +02:00
Sipke Schoorstra fb4fb63c3a
Add named WithVariable overload (#7701) 2026-06-08 10:42:59 +02:00
Sipke Schoorstra 92f451e655
Add PackageManifest.props and build properties for package manifest generation 2026-06-08 09:49:12 +02:00
Sipke Schoorstra 8c4b6fa115
Merge remote-tracking branch 'origin/release/3.8.0' into release/3.8.0 2026-06-08 09:49:04 +02:00
Sipke Schoorstra c3395fe86b
Remove PackageManifestCategories and update feature categories to inline strings 2026-06-08 09:48:55 +02:00
Sipke Schoorstra b462966544
Use Copilot SDK for Weaver agent loop (#7700) 2026-06-08 00:35:47 +02:00
Sipke Schoorstra 2d920bf528
Add 'dashboard' project to solution and adjust project build dependencies 2026-06-07 23:02:36 +02:00
Sipke Schoorstra dbf1ef507e
Update solution file to add 'weaver' and 'keyvalues' projects and adjust project build dependencies. 2026-06-07 21:11:15 +02:00
Sipke Schoorstra 4c104635ac
Add shell feature manifest categories (#7699) 2026-06-07 02:45:44 +02:00
Sipke Schoorstra eb88e641fe
Use imported shell feature types 2026-06-07 00:07:28 +02:00
Sipke Schoorstra 365af05346
Convert shell feature dependencies to typeof references 2026-06-06 23:30:57 +02:00
Sipke Schoorstra 2f66873811
Add PackageManifestHints.cs to solution and compile include in build props 2026-06-06 19:15:58 +02:00
Sipke Schoorstra 691fca2ac6
Merge remote-tracking branch 'origin/main' into release/3.8.0 2026-06-06 16:29:22 +02:00
Sipke Schoorstra 943b45333e
Update package manifest imports to use Elsa.Platform.PackageManifest.Generator namespace 2026-06-06 16:04:59 +02:00
Sipke Schoorstra 50ef957031
[codex] Add runtime entity validator coverage (#7697)
* Add runtime entity validator coverage

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-06 04:14:12 +02:00
Sipke Schoorstra 33a152790a
[codex] Extract dashboard contributors into companion modules (#7692)
* Extract dashboard contributors into modules

* Install dashboard widgets by default

* Enable dashboard features in modular server config
2026-06-05 14:30:52 +02:00