Revision status
Semantic records carry arevision.status field in their payload that transitions through:
| Status | Meaning |
|---|---|
active | Record is currently valid |
contested | Conflicting evidence exists; status unresolved |
retracted | Record has been withdrawn; salience is 0 |
Supersede
Atomically replaces an existing record with a new version. The old record’s salience is set to 0 and its semantic status is set toretracted. The new record is stored with a supersedes relation pointing to the old record.
Both the old and new records are persisted. The old record is not deleted; it is retracted so its audit trail remains queryable.
Request fields
ID of the record to supersede. Must not be episodic.
JSON-encoded
MemoryRecord that replaces the old one. For semantic records, the payload must include at least one evidence reference or provenance source. Maximum 10 MB.Identifier of the agent or user performing the operation.
Human-readable reason for the supersession, stored in both audit entries.
Response
JSON-encoded
MemoryRecord — the newly created record with its assigned ID and provenance populated.Example
Go
Fork
Creates a new record derived from an existing source record. UnlikeSupersede, both the source and the forked record remain active. Use Fork to create conditional variants of a fact or procedure without invalidating the original.
The forked record receives a derived_from relation pointing to the source, and an audit entry with action fork is appended to the source record.
Request fields
ID of the record to fork. Must not be episodic.
JSON-encoded
MemoryRecord representing the conditional variant. For semantic records, the payload must include at least one evidence reference or provenance source. Maximum 10 MB.Identifier of the agent or user performing the operation.
Human-readable reason stored in both audit entries.
Response
JSON-encoded
MemoryRecord — the newly created forked record.Example
Go
Retract
Marks a record as retracted without deleting it. The record’s salience is set to 0. For semantic records, the revision status is set toretracted. The record remains in the store so its audit trail is preserved.
Retracted records have salience 0 and are excluded from active retrieval results by default.
Request fields
ID of the record to retract. Must not be episodic.
Identifier of the agent or user performing the retraction.
Human-readable reason stored in the audit entry.
Response
RetractResponse is empty. A successful call returns gRPC status OK.
Example
Go
Merge
Atomically combines multiple source records into a single merged record. All source records are retracted (salience set to 0, semantic status set toretracted). The merged record receives derived_from relations for every source, and each source record receives an audit entry with action merge.
At least one source ID is required. All source records must be non-episodic. The entire operation runs in a single transaction.
Request fields
IDs of the records to merge. Must contain at least one ID and no more than 10 000.
JSON-encoded
MemoryRecord that consolidates the source records. For semantic records, the payload must include at least one evidence reference or provenance source. Maximum 10 MB.Identifier of the agent or user performing the merge.
Human-readable reason stored in all audit entries.
Response
JSON-encoded
MemoryRecord — the newly created merged record with derived_from relations.Example
Go
Contest
Marks a record as contested, indicating that conflicting evidence exists. The record remains active with its salience unchanged, but its semantic revision status transitions tocontested. A contested_by relation is added pointing to the conflicting record.
Contested records are still returned by retrieval, but their status signals to the agent that the information should be treated with caution.
Request fields
ID of the record to mark as contested. Must not be episodic.
ID of the conflicting record or evidence. When provided, a
contested_by relation is added.Identifier of the agent or user performing the contest.
Human-readable reason stored in the audit entry.
Response
ContestResponse is empty. A successful call returns gRPC status OK.
Example
Go
Reinforce
Boosts a record’s salience, signalling that it was useful. This resets the decay clock and increments the audit log with anAuditActionReinforce entry. Reinforcement count is tracked in the metrics via retrieval_usefulness.
Request fields
ID of the record to reinforce.
Identifier of the agent or user performing the reinforcement. Maximum 100 000 characters.
Human-readable reason for the reinforcement. Maximum 100 000 characters.
Response
ReinforceResponse is empty. A successful call returns gRPC status OK.
Example
Go
Penalize
Reduces a record’s salience by a specified amount. Use this to signal that a record contributed to a failed or unhelpful outcome.Request fields
ID of the record to penalize.
Amount by which to reduce salience. Must be non-negative and finite. Salience will not go below 0.
Identifier of the agent or user performing the penalization. Maximum 100 000 characters.
Human-readable reason stored in the audit entry. Maximum 100 000 characters.
Response
PenalizeResponse is empty. A successful call returns gRPC status OK.
Example
Go