Inspector, Entities
The Entities section is where most operator work happens. It exposes the typed list of every entity Neotoma has resolved, the live snapshot of each one, the immutable observations that produced that snapshot, and the controls to make corrections without erasing history.
Entity list
The entity list (/entities) is a virtual table backed by retrieve_entities. It supports free-text search on canonical_name and snapshot fields, type-scoped filtering, identity-basis filtering (so you can audit how each row was resolved, schema rule, schema lookup, heuristic name, etc.), and offset pagination tied to the URL.
| Name | Type | Last writer | Tier | Last seen |
|---|---|---|---|---|
| Subscription · Vercel | transaction | claude-code@1.4 | software | 12:41 |
| Domain renewal · namecheap | transaction | cursor-agent@build-918 | hardware | 11:08 |
| Coffee · Blue Bottle | transaction | ingest-pipeline@myco | software | 10:55 |
| Refund · Amazon | transaction | manual-import | anonymous | 09:14 |
Entity detail, Snapshot tab
Clicking a row opens the entity detail page. The Snapshot tab shows the resolved snapshot, the same JSON retrieve_entity_by_identifier returns, with per-field provenance: which observation produced that value, when, and from which agent / trust tier. Hovering a field surfaces the source row's identifier and a deep link to the source content endpoint.
Observations tab
The Observations tab is the immutable history. Every store / correct / merge that touched this entity appears here, oldest first, including overwritten or losing observations. Observations are never deleted; corrections layer on top via a higher source_priority or observation_source tie-break (sensor < workflow_state < llm_summary < human < import). The reducer column shows which observation currently "wins" for each field.
Relationships tab
Lists incoming and outgoing typed edges (PART_OF, REFERS_TO, EMBEDS, SUPERSEDES, and any custom types). Each row links to the related entity and shows the agent that created the edge.
Graph tab
Renders the 1- or 2-hop graph neighborhood centred on this entity using @xyflow/react. Nodes are coloured by entity_type; edges by relationship type. Useful for confirming that a refund linked correctly to the underlying transaction, or that a meeting invite linked to the right attendee contacts.
Edit tab, multi-field corrections
The Edit tab batches multiple field corrections into a single correct call. Pre-fill it with the current snapshot, change one or more fields, and the Inspector emits a new observation per changed field, with observation_source: "human" so the reducer prioritises them appropriately. Nothing is overwritten, see the Observations & sources page for how the reducer applies these.
Duplicate detection & merge
From the entity detail menu, "Find potential duplicates" calls list_potential_duplicates(entity_type) and displays candidate pairs with score and matched fields. The detector is read-only and never auto-merges; merging is an explicit action that invokes merge_entities(from, to) after operator confirmation.