Commit graph

3 commits

Author SHA1 Message Date
Sipke Schoorstra ed94f88b01
test(runtime): lock InternalState and activity-execution store conformance (#8153)
Unskip WorkflowAsActivityInternal by scoping lookups to the instance.
Add Memory/EF cases for journal ordered vs default FindMany paging and
activity-execution FindMany/FindManySummaries filter and projection parity.
Honor StartedAt order on EF FindManySummaries so Studio list summaries
cannot drift from Memory.

Fixes #8121

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-09-14 15:10:18 +02:00
Sipke Schoorstra 9ee53abdaa
fix(runtime): execution log default order Timestamp+Sequence; GetLastEntry Sequence-aware (#8152)
* fix(runtime): order execution log Find by Timestamp then Sequence

Align Memory and EF default Find/FindMany with Timestamp then Sequence
so same-ms batches are stable across stores. Make Journal/GetLastEntry
order by Sequence descending so the last event is not arbitrary.

Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>

* fix(runtime): tie default execution-log order with Id

Sequence is per execution context, so distinct instances can share
Timestamp+Sequence. Add Id as the unique default sort key so Memory and
EF offset pages stay deterministic.

Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-09-14 14:00:20 +02:00
Sipke Schoorstra f3e77fe3e7
test(workflows): share Memory/EF store conformance scenarios (#8115)
* 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>
2026-09-13 18:07:09 +02:00