0074: One commit operation returns its receipt¶
Status: accepted for development C ABI 53.
Decision¶
Keep one commit operation on each surface. Rust removes the redundant
commit_with_receipt method. C removes the status-only commit and renames
the receipt-returning function to pp_transaction_commit. Its receipt
output is required; a missing output rejects before attempting a commit.
C++ removes commitWithReceipt; C++ and Python return CommitReceipt
from commit.
The atomic write path supplies the production and the revision made by that edit. A no-change receipt has no revision. Every actual commit attempt is terminal, including semantic conflict or storage failure; retry requires a new decision and edit. No operation reads a later head to recover a receipt.
Migration and standards impact¶
Use Rust commit() and C pp_transaction_commit(edit, &receipt, &error).
Update all maintained callers; do not retain aliases. The development ABI
has 344 exports and 38 public layouts. Schema 27, protocol major 1, revision
meaning and effect capture are unchanged.
Reviewed against the contributor standards policy: this removes duplicate call shapes and introduces no vocabulary, identifier or standards mapping.