Revision rename
Status: Supported
Spec: Core concepts §3, Journal §4, Query §9
Goal
Adopt Revision as the canonical name for append-only journal rows. Record remains the folded projection; Blob remains attachments.
| Concept | Name | Owns |
|---|---|---|
| Journal row | Revision | id, time, source, payload, type, schema_ref, blob_ref, operation, record_ref, transforms |
| Projection | Record | record_ref, version, body, completeness, content_ref, … |
| Attachment | Blob | content-addressed bytes |
Completeness is on the record head only. A revision causes completeness to change. delete is a tombstone revision; body is retained on the record head.
Write path
AppendRevision appends a revision and materializes the record in one transaction (RPC, HTTP POST /records, module Core).
Query surfaces
| Surface | API |
|---|---|
| MCP (conversational) | get_record, search_records, list_incomplete_records only |
Module Core |
AppendRevision, GetRevision, SearchRevisions, GetRevisionsByType, SummarizeRange |
| Host-only RPC | GetRecord, SearchRecords, ListIncompleteRecords (mcp-query, classify via RecordProjection) |
SQLite schema
Fresh and migrated databases use:
revisions(wasevents)revisions_fts(wasevents_fts)record_revisions(wasrecord_events, columnrevision_id)revision_dispatch(wasevent_dispatch)
Legacy databases with events tables are migrated on journal.Open.
Module API (pkg/trovemodule)
RevisionAppender.AppendRevisionRevisionQuerier(revision read RPCs)RevisionProcessor/RevisionSink(router dispatch)- No
EmitRecord,Emitter, orRecordEmittershims
Breaking changes
- MCP: removed
get_event,summarize_range(usesearch_records) - RPC:
EmitRecord→AppendRevision;GetEvent→GetRevision; responserevision_id - HTTP
POST /records: response fieldrevision_id(wasevent_id) - Proto:
message Revision(wasEvent)
Acceptance criteria
- [x] Canonical docs: Revision / Record / Blob triangle
- [x] Module SDK revision-only on
Core - [x] MCP records-only
- [x] SQLite
revisionsschema on fresh + migrated DBs - [x]
make checkgreen
See also
- References and URIs — content graph, link/unlink, producer (planned)