ExternalObservation
Interface: ExternalObservation
Defined in: src/atom/types.ts:321
WHAT SOMEBODY ELSE SAW — one report about an effect this client cannot observe, handed in through Session.observeEffect.
A RECORD OF A REPORT, NEVER A FACT ABOUT THE WORLD. The library did not watch the payment clear; the app said a source it trusts said so, and that sentence is what is written down — source, status, and a REFERENCE to evidence nobody here ever fetches, dereferences or interprets.
APPEND-ONLY. Observations accumulate on the live record in arrival order and
are never rewritten; the FIRST one decides the settlement (first settlement
wins, traverse/settlement.ts), and a later one is a new record beside the old,
exactly as an arrival: 'observed' upgrade rides beside its receipt.
Properties
evidenceRef?
optionalevidenceRef?:string
Defined in: src/atom/types.ts:331
A POINTER at the evidence — a receipt id, a URL, a log key. Recorded verbatim (capped) and never followed: the library cannot check it, so it does not pretend to have.
recordedAt
recordedAt:
number
Defined in: src/atom/types.ts:333
When this session recorded the report (epoch ms). Never when the effect happened — nobody here knows that.
source
source:
string
Defined in: src/atom/types.ts:323
WHO reported it, in the app's own words ('stripe-webhook'). App data, capped, never a sentence.
status
status:
"performed"|"refused"
Defined in: src/atom/types.ts:325
What they said happened. Two words, because a settlement has two answers.