StaleAcknowledgement
Interface: StaleAcknowledgement
Defined in: src/atom/types.ts:1507
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:1529
The state version this was made at. Moves past it and this row stops authorizing.
acknowledgementId
acknowledgementId:
string
Defined in: src/atom/types.ts:1509
This row's id. Cite it as FireOptions.acknowledgementId.
actionId
actionId:
string
Defined in: src/atom/types.ts:1511
The action it is about.
keys
keys:
string[]
Defined in: src/atom/types.ts:1527
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:1513
The offer it answers, when the caller named one — a join, never a requirement.
principal
principal:
Principal
Defined in: src/atom/types.ts:1519
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:1531
Epoch ms.