Program: #8194
Parent: #8286
Related: #8292, #8287
Evidence and scope
The actual SQLite-backed BPMN caller proof for #8292 found that EFCoreWorkflowDefinitionStore.TryUpdateLatestAsync loads with AsNoTracking, losing the shadow Data column before OnLoadAsync. An unchanged persisted definition therefore fails the full snapshot precondition. Root reproduced 7 passing / 1 failing caller tests, then 8 passing after tracking the load and detaching before the callback.
This task owns the EF-specific correction separately from the caller contract in #8292. Keep changes bounded to correctness exercised by SQLite-backed document updates.
Acceptance
- Load and compare persisted shadow metadata correctly; detach before executing the mutation callback so a new draft cannot implicitly alter its published predecessor.
- Persist notification-handler name/description and serialized metadata changes on a successful same-row edit.
- Prove concurrent document and metadata winners survive and the stale caller is rejected, using independent scopes and fresh reads of a real SQLite database.
- Cover both editing a draft and creating a draft from a published definition.
- Run the full BPMN integration suite and relevant provider build checks. Do not represent SQLite coverage as proof for other databases or production migrations.
- Deliver a focused reviewed PR. Package publication and cutover are outside this task.
Program: #8194
Parent: #8286
Related: #8292, #8287
Evidence and scope
The actual SQLite-backed BPMN caller proof for #8292 found that EFCoreWorkflowDefinitionStore.TryUpdateLatestAsync loads with AsNoTracking, losing the shadow Data column before OnLoadAsync. An unchanged persisted definition therefore fails the full snapshot precondition. Root reproduced 7 passing / 1 failing caller tests, then 8 passing after tracking the load and detaching before the callback.
This task owns the EF-specific correction separately from the caller contract in #8292. Keep changes bounded to correctness exercised by SQLite-backed document updates.
Acceptance