Skip to main content
ConceptVerified against core 1.2.8

Adjustments

Agents tracking facts that change — a price renegotiated, a date moved — need the earlier value kept as true for its time, not overwritten, and the later one linked to it. An adjustment writes the new fact as its own record and links it to the one it evolves; both keep their own time, source and authority; successive adjustments form a chain that every read shows, search results flag and traverse walks; and each link written or removed is audited.

Challenges addressed: Tracking Changes Through Time, Point-in-Time Recall.

Concepts​

An adjustment links a newer record to an earlier one it evolves: the earlier fact was true when it was written, and reality has since moved on. Both records stay, linked, and a fact's evolution forms a chain.

Facts change in three ways, and eMemory records each differently:

What happenedHow it is recorded
A fact was right, and has since changed — a price renegotiated, a date movedan adjustment: a new record, linked to the earlier one
The record is a document or plan that moved on, and one record should hold its current statean update: the next version of the same record
The record was never truea correction: attached to it, stating the truth

An adjustment keeps both facts as facts: what was true in March and what is true in June are separate records, each with its own time, source and authority.

How an adjustment is written​

The newer record is written with e_ingest, naming the earlier records in adjusts and the change in adjustment_label. The engine mints one value, e_adjustment:<label>_<32 hex>, and writes it as an edge property on the new record and on each record it adjusts. The shared value is the link. Adjusting the newer record again adds the next link.

Each adjusted record must be in a lane the agent profile can write; one that is not is skipped and reported, and the new record is still written.

e_property unadjust removes the link — from the named records, or from every holder the agent profile can read — and leaves the records themselves in place. The label e_adjustment is reserved: adjusts and unadjust are the one way to write and remove it.

Implications​

Reads show the chain. e_read on either record lists the other under adjustments; e_gather and e_timeline flag both has_adjustment; e_gather traverse walks from one to the other. Which came first is read from their ingest times.

Each step is audited. The link's writing and removal are events in the audit log.

Reference​

How-to: evolving a fact. Every argument: e_ingest, e_property.