Skip to content

feat: reconcile reserved create operations atomically - #139

Merged
rrrodzilla merged 12 commits into
mainfrom
feat/create-reconciliation
Sep 7, 2026
Merged

feat: reconcile reserved create operations atomically#139
rrrodzilla merged 12 commits into
mainfrom
feat/create-reconciliation

Conversation

@rrrodzilla

Copy link
Copy Markdown
Contributor

Adds an opt-in create-intent protocol for recovering a lost create response without inserting a replacement entity. PostgreSQL commits the entity, initial revision and receipt atomically. Repeated submission returns the currently authorized original result; deletion does not permit resurrection.

Reservation, commitment and receipt lookup reuse current principal/tenant/schema authorization. First commitment has a 15-minute admission window; receipt recovery lasts24 hours from reservation. Unknown, expired or differently scoped intents refuse commitment. Hooked schemas and enabled global webhooks reject new reservations/pending commitments explicitly. Business-name uniqueness remains separate from operation identity.

The public contract is documented in docs/create-reconciliation.md. Tests cover concurrent commitment, rollback on uniqueness, changed payload/schema, expiry/pruning, current owner denial, deleted results and selected two-membership tenant isolation.

Validation:1198 nextest tests passed with10 infrastructure-dependent skips; the disposable live PostgreSQL backend and two HTTP cases also passed. CLI/runtime/PostgreSQL/backend all-target Clippy passed without warnings. The merged tree is byte-identical to the tested tree, with current conditional-read and uniqueness fixes included.

Stacked on conditional mutations PR #138. No registry release or production deployment is implied.

@rrrodzilla
rrrodzilla changed the base branch from feat/conditional-entity-mutations to main September 7, 2026 21:23
@rrrodzilla
rrrodzilla marked this pull request as ready for review September 7, 2026 21:23
@rrrodzilla
rrrodzilla merged commit ff7d65f into main Sep 7, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant