* test(workflows): share Memory/EF store conformance scenarios
Add a shared management/runtime store matrix that runs the same uniqueness
and tenant-isolation assertions against Memory and EF Core (SQLite). Memory
now rejects a second version row for the same (DefinitionId, Version, TenantId)
so that DefinitionId+Version uniqueness can fail closed on both paths.
Closes#8088
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
* test(workflows): lock bookmark and log Find semantics
Add the remaining #8088 store-contract row: bookmark, activity-execution,
and execution-log Find/FindMany filters, paging, and same-Id upsert, run
against both Memory and EF/SQLite.
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
* test(workflows): correct execution-log ExcludeActivityType assertion
Exclude WriteLine only when another activity type is present, so the
shared Find row asserts a real filter match on both providers.
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
* fix(management): reject duplicate definition version keys in SaveMany
MemoryWorkflowDefinitionStore.SaveManyAsync now throws when a batch
contains distinct Ids that share (DefinitionId, Version, TenantId),
matching EF unique-index failure instead of silently dropping rows.
Give the label-filter list fixture distinct versions so two red
definition rows no longer collide on the default Version=1 key.
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>