StaleAcknowledgement
Interface: StaleAcknowledgement
Defined in: src/atom/types.ts:1456
A PROTOCOL STEP THE CALLER PERFORMED — the append-only row
session.acknowledgeStale() writes, and the only thing a 'require-ack'
fire may cite.
WHAT IT PROVES AND WHAT IT DOES NOT. It proves that a caller, at this state version, named this action (and optionally these keys) through this door. It is NOT evidence that a model read a value, understood a consequence, weighed a risk, or decided well — none of which is visible from here, and none of which this library will ever claim on somebody's behalf. The library never serves a value, so it can never conclude a value was understood. An acknowledgement is an ACT, recorded because acts are all this layer can witness.
INVALIDATED WHEN THE WORLD MOVES AGAIN. The row stamps the state version it
was made at; once session.stateVersion moves past it, it authorizes nothing
and a fire citing it is refused ACKNOWLEDGEMENT_STALE. The row itself is
never deleted or edited — it stays in session.acknowledgements() as what it
always was, a thing somebody did at a moment. (The same stance
HumanApprovalPolicy.refuseWhenWorldMoved takes on a human's yes, and the
same comparison.)
Properties
acknowledgedAtStateVersion
acknowledgedAtStateVersion:
number
Defined in: src/atom/types.ts:1478
The state version this was made at. Moves past it and this row stops authorizing.
acknowledgementId
acknowledgementId:
string
Defined in: src/atom/types.ts:1458
This row's id. Cite it as FireOptions.acknowledgementId.
actionId
actionId:
string
Defined in: src/atom/types.ts:1460
The action it is about.
keys
keys:
string[]
Defined in: src/atom/types.ts:1476
The keys the caller NAMED. Empty means they named none, which this door
reads as "everything outstanding for this control" — so an empty list covers
whatever a later fire is refused over, and a named list covers exactly its
own names. What the caller said, not what happened to be on the ledger:
cleared is the bookkeeping answer and it is reported separately.
offerId?
optionalofferId?:string
Defined in: src/atom/types.ts:1462
The offer it answers, when the caller named one — a join, never a requirement.
principal
principal:
Principal
Defined in: src/atom/types.ts:1468
Who performed the step. Defaults to 'agent', never 'user' — the same law
FireOptions.source keeps, because filing a machine's act under a
person is the one mistake a ledger must not make on its own.
timestamp
timestamp:
number
Defined in: src/atom/types.ts:1480
Epoch ms.