Commit graph

7096 commits

Author SHA1 Message Date
Sipke Schoorstra b5f2036e95
Merge pull request #7751 from elsa-workflows/sfmskywalker-fix-publishevent-payload-assertion
Fix PublishEvent payload assertion casing
2026-06-23 02:41:36 +02:00
Sipke Schoorstra 66911bb77f
Address PublishEvent payload review feedback
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-23 02:22:15 +02:00
Sipke Schoorstra 883a184c2e
Merge pull request #7752 from elsa-workflows/sfmskywalker-fix-flaky-payload-test
Fix flaky PublishEvent payload assertion
2026-06-23 01:28:50 +02:00
Sipke Schoorstra 635c3ea42f
Address PR review feedback
Use LINQ for the case-insensitive payload property lookup and keep CShells package source mapping deterministic by mapping CShells packages only to nuget.org.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-22 00:44:36 +02:00
Sipke Schoorstra 2a5b716ba0
Allow NuGet.org for CShells packages
Map CShells package IDs to NuGet.org as well as the CShells Feedz source so solution restore can resolve published CShells packages when the Feedz source has no matching package.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-21 23:56:47 +02:00
Sipke Schoorstra b05eb3096b
Fix flaky publish event payload test
Make the PublishEvent payload assertion case-insensitive so it tolerates JsonPayloadSerializer camelCase output after a JSON round trip.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-21 23:18:33 +02:00
Sipke Schoorstra 571c1c7b2c 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 29d43dadbb
Update CShells and Elsa.PackageManifest.Generator to latest versions 2026-06-20 00:58:40 +02:00
Sipke Schoorstra 4d867a2941
Merge pull request #7744 from elsa-workflows/sfmskywalker-port-asb-stable-instance-main
Forward-port stable ASB application instance names to main
2026-06-20 00:30:52 +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 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 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 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 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 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 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 c16995014c
Add Persistence vNext provider-neutral POC
Adds the Persistence vNext proof of concept, including provider-neutral schema/document abstractions, relational and document provider POCs, Elsa integration, runtime-defined entities, physicalization planning, workflow runtime evaluation, and focused tests.
2026-06-02 21:05:21 +02:00
Sipke Schoorstra 39e22bea31
Add operational dashboard API
* Add dashboard API foundation

Merge dashboard API foundation into dashboard-v2

* Harden dashboard API provider

Documents the dashboard API contract, adds provider behavior tests, and degrades diagnostics capability states independently.
2026-06-02 02:33:11 +02:00
Sipke Schoorstra 87ee19f5b3
Implement secret update functionality, add related tests, and update project references. 2026-06-01 23:47:05 +02:00
Sipke Schoorstra aa55274bcf
Auto stash before checking out "origin/main" 2026-06-01 22:42:16 +02:00
Sipke Schoorstra 85e6cd57bf
Merge pull request #7572 from elsa-workflows/codex/secrets-efcore-persistence
[codex] Add EF Core secrets persistence
2026-06-01 22:41:09 +02:00
Sipke Schoorstra 69d9661fc0
Use shared secret name normalization 2026-06-01 22:28:38 +02:00
Sipke Schoorstra e293a99aba
Remove duplicate secrets solution nesting 2026-06-01 22:12:13 +02:00
Sipke Schoorstra 863a43d318
Validate secrets SQLite migrations in repository tests 2026-06-01 21:56:36 +02:00
Sipke Schoorstra 7a5569819b
Merge remote-tracking branch 'origin/codex/secrets-efcore-persistence' into codex/secrets-efcore-persistence 2026-06-01 21:48:49 +02:00
Sipke Schoorstra b001a28ace
Merge remote-tracking branch 'origin/main' into codex/secrets-efcore-persistence 2026-06-01 21:48:42 +02:00
Sipke Schoorstra 7becbd3146
Share EF secret shadow property names 2026-06-01 21:45:53 +02:00
Sipke Schoorstra d3c80a8167
Honor configured schema in secrets SQLite migration 2026-06-01 21:27:27 +02:00
Sipke Schoorstra da96c10678
Reuse shared EF provider wiring for secrets 2026-06-01 21:11:22 +02:00
Sipke Schoorstra 9fac0c83c0
Harden EF Core secret name uniqueness 2026-06-01 20:57:11 +02:00
Sipke Schoorstra 729f46a0f3
Merge pull request #7534 from elsa-workflows/codex/update-wiki
[codex] Refresh codebase wiki
2026-06-01 20:49:49 +02:00
Sipke Schoorstra a7b6722719
Merge pull request #7576 from elsa-workflows/codex/workflow-secret-references-s5
[codex] Validate workflow secret references adoption
2026-06-01 20:48:19 +02:00
Sipke Schoorstra 0113f858dc
Merge pull request #7573 from elsa-workflows/codex/workflow-secret-references-s1
[codex] Protect sensitive workflow input descriptors and state
2026-06-01 20:14:06 +02:00
Sipke Schoorstra 8c0a720056
Rename PostgreSQL secrets shell feature 2026-06-01 11:35:53 +02:00
Sipke Schoorstra e85a40b620
Validate workflow secret reference adoption 2026-06-01 09:49:32 +02:00
Sipke Schoorstra 4a6db8aa98
Merge remote-tracking branch 'origin/codex/workflow-secret-references-s4' into codex/workflow-secret-references-s5 2026-06-01 09:38:00 +02:00
Sipke Schoorstra e446b1090c
Merge remote-tracking branch 'origin/codex/workflow-secret-references-s2' into codex/workflow-secret-references-s5 2026-06-01 09:37:54 +02:00
Sipke Schoorstra 556e931662
Add JavaScript secret functions 2026-06-01 09:26:05 +02:00
Sipke Schoorstra b438551c78
Add Secret expression runtime 2026-06-01 09:20:55 +02:00
Sipke Schoorstra c8ffcb2a8a
Protect sensitive workflow inputs 2026-06-01 09:15:34 +02:00