Every change to any object in Canonical Timeline is recorded in an append-only revision log. You can inspect the full history of any timeline, event, claim, source, entity, or relationship.
In evidence-based work, provenance is everything. The revision history answers:
This is table stakes for any system used in legal, journalistic, or intelligence contexts. It provides accountability, auditability, and the ability to reconstruct any previous state.
Every object detail page has an Audit History button (Clock icon) in the header:
- Timelines: timeline detail page header
- Events: event detail page header
- Sources: source detail page header
- Entities: entity detail page header
The Audit History button is hidden on read-only (sample) objects.
The dialog shows a chronological list of revisions for the selected object.
Each revision entry shows:
Revisions are listed in reverse chronological order (newest first). Each entry captures the complete state of the object as a JSON snapshot:
{
"id": "rev_abc123",
"timestamp": "2024-03-15T14:30:00Z",
"user_id": "user_xyz",
"change_type": "updated",
"object_type": "events",
"object_id": "evt_123",
"previous_state": { "title": "Old Title", "status": "reported", ... },
"new_state": { "title": "New Title", "status": "confirmed", ... }
}The previous_state and new_state fields are complete JSON representations of the object. Comparing them reveals exactly what changed — a field added, modified, or removed.
When viewing a revision:
This allows you to identify, for example, that on March 15 at 2:30 PM, a specific user changed an event's status from reported to confirmed.
Revisions are created for:
| Action | Recorded |
|---|---|
| Create | ✅ Initial state recorded |
| Update (any field) | ✅ Before and after states recorded |
| Delete (soft delete) | ✅ Deletion event recorded; data is archived |
| Hard delete | ❌ Not recorded (use soft delete) |
Every mutation — regardless of how it was made (UI, API, or MCP tool) — generates a revision record.
Objects in Canonical Timeline are never truly deleted. When you delete an object:
Soft-deleted objects can be recovered by an administrator through backend operations. Contact your system administrator if you need to recover deleted data.
| Object Type | What's Tracked |
|---|---|
| Timeline | Title, slug, status, summary |
| Event | Title, description, canonical_time, time_precision, status, location_id |
| Claim | claim_text, claim_status, confidence_score, source_id, needs_review |
| Source | Title, source_type, author, published_at, URL, checksum, last_validated_at |
| Entity | canonical_name, aliases, entity_type_id |
| Relationship | from_entity, to_entity, relationship_type, valid_from, valid_to |
| Annotation | Content text |
If you question why a claim's status changed from verifiable to fact, check the revision history. You'll see who changed it, when, and what the claim looked like before and after. This allows you to follow up with the curator if needed.
If you need to know what a timeline looked like on a specific date, review the revisions for that date. The before/after snapshots let you reconstruct the timeline's state at any point in time.
For compliance or editorial review, the revision history provides a complete audit trail. Every change is attributable and timestamped.
If two curators disagree about a claim's status, the revision history shows the sequence of changes — who changed what and when. This factual record supports evidence-based dispute resolution rather than relying on memory.