Model API mutation replay semantics

This commit is contained in:
ms2k 2026-07-13 18:23:03 +09:00
commit e5ab04d49c
2 changed files with 201 additions and 1 deletions

View file

@ -26,6 +26,10 @@ and `operation_id`. Each operation identity retains a request fingerprint. An
exact replay has the original effect; a changed worker, fence, payload, stale,
or non-authoritative tuple returns `precondition_failed` without mutation.
[`RemoraApiMutation`](../../protocol/RemoraApiMutation.tla) models this durable
operation ledger around an abstract successful `JobProtocol` effect. It does
not redefine job phases or attempt-authority transitions.
## Authorization and errors
Public operations apply the authorization rules in the architecture. List is

View file

@ -222,7 +222,7 @@ paths:
content:
application/json:
schema:
$ref: '#/components/schemas/AttemptMutation'
$ref: '#/components/schemas/AttemptRenewRequest'
responses:
'204':
description: Renewed or duplicate operation accepted.
@ -721,6 +721,10 @@ components:
minimum: 1
worker_incarnation:
$ref: '#/components/schemas/OpaqueId'
AttemptRenewRequest:
unevaluatedProperties: false
allOf:
- $ref: '#/components/schemas/AttemptMutation'
AttemptProgressRequest:
unevaluatedProperties: false
allOf: