Skip to main content
Use this page to locate a record and understand its relationships to other records. Start with the knowledge model for the conceptual explanation, or the HTTP reference for request bodies and response envelopes. The Rust excerpts below omit serialization annotations and selected supporting fields. They are not request templates: API JSON generally flattens BaseFields into the record, serializes links as record ID strings, and uses snake-case enum values. Use the corresponding endpoint schema when constructing a request.

RecordId System

Every record in Meerkat Recall is identified by a RecordId — a typed Meerkat Recall record identifier with the format table:uuid (for example, entity:550e8400-e29b-41d4-a716-446655440000).
New IDs are created with RecordId::new_v4(table) (random) or RecordId::new_v7(table) (time-ordered). The table component is drawn from the TableName enum, which lists every core table in the system.

TableName Enum

The derived view and watch records are described in Living Wiki architecture. Cold work history keeps the original public IDs; see work queue history.

Link<T>

Link<T> is a typed foreign-key reference to another record. The generic parameter T indicates the expected target type for compile-time safety, while the underlying storage is a RecordId.
Use link.id() to read the underlying RecordId, or link.into_id() to consume it.

BaseFields

Every core record embeds BaseFields, which carries identity, multi-tenancy, timestamps, provenance, security, and subject scoping.
Soft-delete marks a record without removing its stored representation. Ordinary reads filter deleted records; explicit history, recovery, or include_deleted reads may expose them when authorized. Retention and purge are separate operations. Do not use a soft-delete marker as a data-erasure guarantee.

Provenance

Security (ABAC Envelope)


Knowledge Graph Records

Entity

Core nodes in the knowledge graph. Entity types are freeform lowercase strings (e.g., person, org, topic, app).
When an entity is merged, status becomes Merged and redirect_to points to the surviving entity.

Rel

Entity-to-entity relationships. The subject (“from”) and object (“to”) are both entity links.
ClaimStatus tracks the lifecycle from initial candidate through promotion to approved status. ValidityWindow models temporal claims with optional start/end bounds.

Attribute

Entity-to-literal claims. Like Rel, but the object is a typed Literal value rather than an entity.

Document Pipeline Records

Doc

Top-level source-backed document record ingested into Meerkat Recall. For media-backed ingest, text is the renderer-owned canonical searchable projection rather than the raw caller payload.

DocRevision

Immutable normalized text snapshot produced by a renderer plugin. For multimodal docs, the revision also carries the authoritative render manifest that maps spans back to attachments and time ranges. If rendering improves, a new revision is created and the old one is superseded.

DocNode

Structural nodes over a revision — paragraphs, sections, chunks, summaries, etc.

Extraction and Truth Maintenance

Assertion

Evidence-bearing claims extracted from documents by the LLM extraction pipeline. Assertions preserve the original mention strings alongside their resolution status and optional resolved entity links. Staged artifact validation/commit resolves or creates graph records; later truth maintenance reconciles competing graph claims. A resolved assertion is not a guarantee that its claim is true.

TruthSlot

The derived current selection for a claim slot. Each current_values entry references a graph claim by claim_id, with its confidence, status, and evidence. It does not contain the literal value itself. Read that claim to obtain its value. A slot can have several accepted values, be stale, or require more evidence; it is not an independent source of evidence.

Source Provenance

Source

Tracks where data came from — emails, web pages, chat messages, device captures, manual entries, etc.

Work Scheduler Records

The durable work scheduler uses a DAG-based queue with lease-based execution. Each pipeline stage produces WorkItem records that are claimed, executed, and produce artifacts.

WorkItem

WorkRun

A single execution attempt of a work item.

WorkArtifact

Staged output produced by a work run. Goes through validation before being committed to canonical tables.

Configuration and Governance

SpaceConfig

Per-space configuration controlling embedding provider selection and extraction behavior.

PredicateRegistry

Canonical predicate definitions with semantic configuration that drives truth maintenance behavior.
PredicateSemantics controls temporal model, cardinality, conflict policy, recency basis, promotion thresholds, and alias confidence thresholds.

PredicateAlias

Maps raw extraction strings to canonical predicates with confidence-scored aliases.

System Records

Event

First-class domain timeline events with temporal precision and evidence links.

SystemEvent

Outbox events for reliable change-data streaming. Each carries a monotonic sequence number.

AuditLog

Audit entries record supported mutations with optional before/after snapshots. The record type alone does not guarantee that every internal mutation emits an entry. Consult the mutation handler and audit revert contract when building an administrative recovery workflow.
All struct definitions above are simplified for documentation purposes. Derive macros, impl blocks, and serde attributes are omitted. See the actual source in crates/types/src/records/ for the full definitions.