Commit graph

7088 commits

Author SHA1 Message Date
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
Sipke Schoorstra e083d3b307
Add EF Core secrets persistence 2026-05-31 23:23:43 +02:00
Sipke Schoorstra d84d83f828
Remove SecretProviderAdapter and ISecretProvider to streamline secret management; update solution and project references accordingly. 2026-05-31 15:41:12 +02:00
Sipke Schoorstra 48c4259844
Pin test environment to Production in IngressRateLimitingTests to stabilize assertions. 2026-05-31 14:44:34 +02:00
Sipke Schoorstra 37553a9713
Merge branch 'sfmskywalker/optimize-activity-registry-lookup' 2026-05-31 13:56:57 +02:00
Sipke Schoorstra d7141cd03b
Merge pull request #7550 from elsa-workflows/codex/fix-7538-activity-registry-empty-refresh
Preserve activity descriptors on empty refresh
2026-05-31 13:52:48 +02:00
Sipke Schoorstra 209f93bfb5
Preserve activity descriptors on empty refresh 2026-05-31 13:34:30 +02:00
Sipke Schoorstra e34132f0e2
Preserve activity descriptors on empty refresh 2026-05-31 13:32:56 +02:00
Sipke Schoorstra 66af304364
Optimize activity registry descriptor lookup (#7538)
* Optimize activity registry lookup

Add a latest-version descriptor index per tenant registry so ActivityRegistry.Find(type) can avoid scanning every registered descriptor. Keep the index in sync when descriptors are added, removed, refreshed, or cleared.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Handle provider descriptor removal during refresh

Remove descriptors from registries that a refreshed provider no longer contributes to keep descriptor indexes consistent when a provider drops a tenant group entirely.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address activity registry review feedback

* Clear manual activity descriptors

* Integrate ConsoleLogStreaming.Core and ConsoleLogStreaming.SignalR packages; refine activity registry lookup logic.

* Reduce activity registry refresh allocations

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-31 13:15:42 +02:00