Repository navigation
§ 4.1, § 5.6.1 — Commitments carry proposal_id and version (#24) - #73
Draft
Kishore-2572 wants to merge 2 commits into
Draft
Kishore-2572 wants to merge 2 commits into
Kishore-2572 wants to merge 2 commits into
Conversation
A commitment names the proposal and version it was priced against (§ 5.6.1). The seller rejects a new attempt on a stale version, or past valid_until or price_valid_until, and returns the current version. An authenticated replay with the same idempotency_key and terms returns the stored result without re-running those checks; the same key with different terms is a conflict. Keys are opaque and scoped to one buyer and seller pair. § 4.1 states that each revision while published increments version. The display, CTV and audio examples carry proposal_id and version. Refs #24
9 of 12 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this changes
A commitment now names the proposal and version it was priced against (
proposal_id,version, § 5.6.1). The seller rejects a new commitment attempt on a stale version, or pastvalid_untilorpricing[].price_valid_until, and returns the current version so the buyer can fetch it again. A replay of an attempt already processed (sameidempotency_key, same terms) returns the stored result without re-running those checks, and the same key with different terms is an explicit conflict, as @aleksUIX suggested on #24.idempotency_keyvalues are opaque and scoped to one buyer and seller pair, in line withiab-agentic-primitivesFD-12. § 4.1 states that each revision whilepublishedincrementsversion.Related issue
Refs #24. #23 (draft PR #70) relies on these version rules for "same proposal and version".
Type
Checklist
commitment;scripts/check_appendix.pypassesexamples/is updated and still parses — the display, CTV and audio commitments carryproposal_idandversion; § 6.3 points to the CTV exampleselectabledeclaresavailable[]andincluded[]; anythingsettabledeclares bounds (§ 3.1, § 3.2) — no newselectableorsettablefieldsKnock-on effects
proposal_idandversionis rejected.version, so a revision to one line item rejects a commitment on an unchanged one (Postindustria on [Change] § 4.1, § 5.6.1 — Commitments must carry proposal_id and version; stale versions are rejected #24). Not resolved here, for the working group:commitment.offer_digest, which depends on the binding record in [Change] § 4.1 — Define record_digest and assent[]; defer signer identity to the AAMP profile #63;idempotency_keyvalues (Postindustria suggests at least untilvalid_until);idempotency_keyfromcommitmentto the request (Postindustria on [Change] § 4.1, § 5.6.1 — Commitments must carry proposal_id and version; stale versions are rejected #24);statusgates the freeze ([Change] § 3, § 2.2, § 5.6.1 — Name whose status gates seller-set revisions #60), andproposal_idon every line item ([Change] § 2, § 4.1, § 5.1 — Name the line-item container (line_items[]) and carryproposal_idandseller_idon every line item representation #31).version: 1, matchingexamples/proposal.yaml.By opening this pull request I agree my contribution may be published under this
repository's licence, as set out in CONTRIBUTING.md.