-
Notifications
You must be signed in to change notification settings - Fork 0
Add an in-memory optimistic-concurrency contract fixture #21
Copy link
Copy link
Open
Labels
ai-readyPortable work packet ready for human-and-AI implementationPortable work packet ready for human-and-AI implementationarea:persistencePersistence, transactions, history, and concurrencyPersistence, transactions, history, and concurrencyhelp wantedExtra attention is neededExtra attention is neededkind:fixtureSynthetic truth fixture or minimized failure caseSynthetic truth fixture or minimized failure casereview:rustRust API or implementation review requestedRust API or implementation review requestedsize:sOne narrow crate sliceOne narrow crate slicestate:readyReady for a contributor to claimReady for a contributor to claim
Description
Metadata
Metadata
Assignees
Labels
ai-readyPortable work packet ready for human-and-AI implementationPortable work packet ready for human-and-AI implementationarea:persistencePersistence, transactions, history, and concurrencyPersistence, transactions, history, and concurrencyhelp wantedExtra attention is neededExtra attention is neededkind:fixtureSynthetic truth fixture or minimized failure caseSynthetic truth fixture or minimized failure casereview:rustRust API or implementation review requestedRust API or implementation review requestedsize:sOne narrow crate sliceOne narrow crate slicestate:readyReady for a contributor to claimReady for a contributor to claim
Outcome
Provide a test-only in-memory
ProjectRepositoryproving the current optimistic-version contract before a PostgreSQL driver or schema is chosen.Truth source
Synthetic sequence: initial save with no expected version returns version 1; save with expected version 1 returns version 2; a second save expecting version 1 returns
VersionConflictand does not change stored content.Invariants
Expected scope
Add a persistence truth fixture or focused test support under
rustit-fixturesand exercise the asynchronous port deterministically.Non-goals
PostgreSQL, PostGIS, migrations, multi-project transactions, offline storage, and production locking.
Acceptance and evidence
cargo xtask verifypassesDependencies: #10 and the existing
ProjectRepositorycontract.