Summary
Make governance lifecycle transitions atomic so concurrent request updates cannot both succeed against the same stale request snapshot.
Goal
Ensure governed mutation requests move through lifecycle transitions with explicit concurrency protection instead of Get + validate + Store race windows.
Scope
What should be implemented?
Acceptance Criteria
Notes
Implemented through:
MutationRequest.Revision
IMutationRequestStore.TryStore(...)
MutationRequestConcurrencyException
- guarded transitions in
MutationRequestLifecycleManager
- regression coverage in
MutationRequestLifecycleAtomicityTests
The characterization test was inverted from reproducing the race to asserting that stale transitions are rejected.
Summary
Make governance lifecycle transitions atomic so concurrent request updates cannot both succeed against the same stale request snapshot.
Goal
Ensure governed mutation requests move through lifecycle transitions with explicit concurrency protection instead of
Get+ validate +Storerace windows.Scope
What should be implemented?
MutationRequestwith a revision, version, or equivalent transition guardApproveandCancelfrom both succeeding against the same prior stateAcceptance Criteria
Get+StoresequencesModularityKit.Mutator.GovernanceNotes
Implemented through:
MutationRequest.RevisionIMutationRequestStore.TryStore(...)MutationRequestConcurrencyExceptionMutationRequestLifecycleManagerMutationRequestLifecycleAtomicityTestsThe characterization test was inverted from reproducing the race to asserting that stale transitions are rejected.