Commit graph

7121 commits

Author SHA1 Message Date
Sipke Schoorstra b402d4da8f
Merge pull request #7889 from elsa-workflows/codex/012-external-authentication
Add extensible external authentication and SSO broker
2026-07-25 11:00:33 +02:00
Sipke Schoorstra 939a89c9e8
Fix external authentication host composition 2026-07-25 10:51:36 +02:00
Sipke Schoorstra 128569f6c0
Harden external authentication contracts and flows 2026-07-25 03:48:50 +02:00
Sipke Schoorstra 95b2ce8d84
Revise external authentication architecture 2026-07-25 02:35:56 +02:00
Sipke Schoorstra ef83541edd
Add external authentication broker 2026-07-24 19:04:26 +02:00
Sipke Schoorstra e96c8f23c9
Merge pull request #7748 from elsa-workflows/sfmskywalker-fix-commit-state-atomicity
Fix workflow commit atomicity and bookmark queue retries
2026-06-23 03:10:36 +02:00
Sipke Schoorstra 97c62a718c
Address PR review comments
Document why activity execution context taint is cleared after commit instead of in the log sink, and refactor commit handler tests to share repeated fixture setup.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-23 03:07:50 +02:00
Sipke Schoorstra c6a3366463
Fix commit notification flush edge cases
Preserve cooperative cancellation during buffered notification flushes and still publish WorkflowStateCommitted after a successful database commit when buffered notification handlers fail.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-23 02:44:06 +02:00
Sipke Schoorstra 98f931ae35
Address workflow commit review feedback
Keep buffered commit notification flushes from dropping remaining entries after a handler failure, use the maximum configured transaction timeout for SQL Server commit transactions, and back off distributed bookmark queue retries after lock misses.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-23 02:27:06 +02:00
Sipke Schoorstra 0658037275
Resolve vulnerable transitive persistence packages 2026-06-22 00:45:06 +02:00
Sipke Schoorstra 2074384ff9
Update safe dependency patch versions 2026-06-22 00:03:50 +02:00
Sipke Schoorstra 8474b3fedb
Merge pull request #7746 from elsa-workflows/sfmskywalker-fix-scheduling-startup-backlog
Fix scheduling startup backlog catch-up
2026-06-21 23:48:26 +02:00
Sipke Schoorstra e77da02d52
Fix workflow commit atomicity
Wrap SQL Server EF Core workflow commits in a provider-safe transaction and buffer commit notifications until persistence succeeds. Also preserve dirty activity context state until commit success and make bookmark queue retries resilient to processed-row deletion and transient distributed lock misses.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-21 19:58:09 +02:00
Sipke Schoorstra 7449d2e703 address greptile review feedback (greploop iteration 1)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-21 19:43:09 +02:00
Sipke Schoorstra c7912fd2c8 Fix scheduling startup backlog catch-up
Rebuild local schedules in bounded pages and stagger past-due specific-instant catch-up so orphaned scheduling bookmarks do not flood dispatch during startup.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-21 19:43:09 +02:00
Sipke Schoorstra 6a4c141ce1 Shorten configured application instance names
Configured stable application instance names that exceed the Azure Service Bus transport entity limit are now shortened deterministically instead of failing startup. The same configured value resolves to the same shortened name across restarts, preserving stable per-instance transport identity while supporting normal Kubernetes pod names.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-20 12:50:02 +02:00
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 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 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 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 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 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 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
Sipke Schoorstra 3936258146
Implement Weaver AI Copilot core (#7523)
* Implement Weaver AI Copilot core

* Address Greptile review feedback

* Address Greptile persistence feedback

* Address Greptile orchestration feedback

* Address Greptile tool isolation feedback

* Wire chat audit events

* Stream chat events over SSE

* Use server identity for AI endpoints

* Validate AI proposal persistence

* Isolate AI audit failures

* Enforce AI tool lookup scope

* Support AI tool result continuations

* Handle AI chat reconnects safely

* Tighten AI context and reconnect behavior

* Guard AI conversation and persistence setup

* Persist AI tool-loop progress

* Tighten AI tool registry and reconnect cleanup

* Handle AI preparation failures cleanly

* Order AI tool messages after assistant turns

* Initialize AI provider sessions

* Align AI context capabilities

* Prevent completed AI reconnect replay

* Enforce AI conversation ownership

* Default AI proposal creation time

* Persist AI session and retention defaults

* Allow AI context provider overrides

* Scope AI tool results per turn

* Apply AI provider configuration

* Scope AI proposal reads

* Avoid duplicate AI tool continuations

* Resolve AI tool registry scopes

* Tighten AI reconnect cleanup

* Honor default AI proposal tools

* Pass AI provider session to turns

* Close AI observability gaps

* Fix AI capabilities options alias

* Harden AI orchestration lifetimes

* Track actual AI reconnect conversation

* Address AI audit and context review findings

* Fix AI reconnect and persistence capabilities

* Handle AI session startup failures

* Tighten AI orchestration review gaps

* Warn on placeholder AI context

* Filter disabled AI provider tools

* Add durable AI conversation persistence

* Fix AI orchestrator persistence lifetime

* Handle failed AI reconnect edge cases

* Harden AI reconnect failure handling

* Address AI reconnect and cleanup review gaps

* Tighten AI audit and cleanup persistence

* Keep expired AI cleanup best effort

* Tighten AI tool lookup and cleanup fallback

* Handle AI provider and tenant edge cases

* Tighten AI proposal and agent authorization

* Address AI tool scope cleanup review

* Close remaining AI greptile findings

* Harden AI stores and tool defaults

* Harden AI conversation persistence edge cases

* Cover AI proposal and tool visibility guards

* Fix AI capabilities and audit batch resilience

* Fix AI conversation truncation for unicode

* Resolve remaining AI persistence review nits

* Wire AI conversation persistence option

* Address AI audit and proposal style review

* Fix AI stream truncation surrogate handling

* Address AI context and cleanup review

* Preserve AI titles and tenant tool defaults

* Guard AI conversation user ownership

* Align in-memory AI conversation ownership

* Fix expired AI conversation cleanup tracking

* Harden AI proposal persistence retry

* Tighten AI proposal reads and cleanup SQL

* Harden AI reconnect and provider defaults

* Optimize AI tool listing and message trimming

* Preserve AI conversation timestamps

* Address final AI persistence review nits

* Normalize AI acronym casing

* Address Copilot AI review comments

* Normalize default tenant handling for AI stores

* Harden AI registry and message truncation

* Make AI tool filtering explicit

* Align AI contracts with implementation

* Align remaining AI review contracts

* address greptile ai persistence feedback

* Address Copilot AI persistence feedback

* Address Copilot AI host feedback

* Order persisted AI conversation messages

* Address Copilot chat and cleanup feedback

* Release unused AI reconnect reservations

* Address Copilot AI review feedback

* Address Copilot tool and conversation feedback

* Address Copilot governance feedback

* Address Copilot tool test feedback

* Address AI review follow-ups

* Address Copilot AI follow-ups

* Clean up AI persistence tests

* Address IAITool disposal review

* Address AI integration review follow-ups

* Address AI chat persistence review

* Address AI registry and truncation review

* Enable read-only AI tools by default

* Potential fix for pull request finding

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

* 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-04 11:35:44 +02:00
Sipke Schoorstra 577275bfce
Refactor dashboard API contributors (#7690) 2026-06-02 22:25:25 +02:00