DebuggingEntity Inspector

Entity Inspector

The Entity Inspector is the control plane tool for reading entity state and walking ledger history. Use it when debugging wrong field values, verifying a commit landed, or comparing before/after snapshots — without writing queries against internal stores.


Where to find it

Platform → Application → Operate → Entities

Two levels of inspection:

SurfaceBest for
Entities listSearch and filter across many entities; quick drawer preview
Deep Entity ViewerFull-page timeline, replay scrubber, diff, and rebuild for one entity

Open the Deep Entity Viewer from the drawer (Open Deep Entity Viewer) or navigate to …/operate/entities/{stream}/{entityId}.

The Decision Timeline (Decision Logs in the nav) complements the inspector — same entity, focused on rule-level forensics. Links between the two are built into the UI.


Browsing entities

The Entities page lists materialized snapshots for the selected fork (default main).

Filter by:

  • Stream — entity type from your Product DSL (user_stream, ticket_stream, etc.)
  • Entity ID prefix — typeahead search by ID
  • Field value — search on a JSON path in entity state (paths come from your stream schema in the compiled IR)

The table shows last event type, last intent, cursor watermark, and snapshot version. Click a row to open the Entity Drawer.

For query-shaped browsing, switch to query API mode when you need rows from a named query instead of raw entity snapshots.


Entity Drawer (quick inspect)

The drawer opens on a single entity with tabs:

TabWhat you see
StateCurrent snapshot JSON and parsed fields
TimelineRecent commits — intent type, mutations, emitted events
DecisionsSummary of decision-route activity per intent
Field historyHow one field changed over time (cursor, event, value)

From the drawer, jump to Decision Timeline or the Deep Entity Viewer for the same entity.


Deep Entity Viewer

The full inspector layout:

Live vs replay mode

ModeSnapshot source
LiveCurrent materialized snapshot
ReplayState recomputed at the selected cursor from ledger history

Toggle replay mode and drag the scrubber along the cursor axis. The snapshot panel updates to show field values as they were at that commit — useful for “what did we store right after checkout?”

Field metadata

With field metadata enabled, each field shows last cursor and last event type that wrote it. Click a field to trace when it changed without scanning the full timeline.

State diff

Pick two cursors and open Compare to see a field-level diff — what was added, changed, or removed between commits.

Rebuild

Rebuild re-applies the full ledger sequence for this entity and refreshes the snapshot. Use after incidents or rule fixes. See Replay.

Event detail

Select a timeline row to inspect the commit envelope: patch operations, emits, metadata, and intent outcome (committed / rejected).


How it connects to debugging

QuestionStart here
What is the entity state right now?Entities → State (live mode)
What was state at cursor N?Deep Entity Viewer → replay scrubber
What commits touched this entity?Timeline tab or ledger events column
Why did a field get this value?Field history → Decision Timeline for that cursor
Snapshot wrong vs ledger?Rebuild, then compare live vs replay

All inspector data is scoped by platform, application, and fork — same isolation as runtime execution.


SaaS API (for integrations)

The control plane proxies the runtime Entity Browser and Ledger services. Conceptual operations (not curl recipes):

OperationPurpose
List entitiesPaginated browse with stream, prefix, and field filters
Get stateCurrent snapshot for stream + entity + fork
Get state with field metaSnapshot plus per-field last cursor / event type
Get state at cursorPoint-in-time state for replay scrubber
DiffCompare state at two cursors
TimelineRecent commit preview for an entity
DecisionsDecision-route summaries for the entity
Field historyValue changes for one JSON path
RebuildRebuild snapshot from ledger

Authenticated via Clerk session in the UI; server integrations use the same platform APIs with appropriate auth.


Common workflows

Support ticket: “My order shows wrong status”

  1. Find the order entity in Entities.
  2. Open Deep Entity Viewer → replay to the cursor after the status-changing intent.
  3. Open Decision Timeline for the same entity at that cursor — confirm which rules ran.
  4. If snapshot is stale, Rebuild and re-check live mode.

Incident: rule bug shipped, snapshots corrupted

  1. Deploy fixed release to the fork.
  2. Rebuild affected entities from Entities or bulk ops.
  3. Verify with replay scrubber at known good cursors.

Exploratory: what-if on historical state

  1. Note cursor on Decision Timeline.
  2. Branch from cursor to a non-production fork (see Replay).
  3. Submit test intents on the branch without touching main.

See also