conversation_id (the trace ID) — whether or not a human was in the loop. New traces appear within seconds of sending data; analysis results attached to them (use case, world state, signals) fill in within minutes.
Trace list
The list supports:- Search — the “Search traces…” box filters the list.
- Filters — environment (Production / Development / Staging) and use case.
- Time range — All time, Last 24 hours, or Last 30 days.
- Sort — Newest first, Oldest first, Most messages, Fewest messages.
- Pagination — page sizes 10 / 25 / 50 / 100 with Previous / Next; the total count loads separately.
Columns
The Columns button shows or hides columns; column widths can be dragged. Preferences are saved in your browser.
Clicking a row opens the trace detail in a new tab.
Trace detail
The header shows the trace ID, date, duration, and turn count, plus badges when they apply: a frustration score (shown when the score is 5 or higher), the tool-failure count, and the use case with its confidence. Previous / next links step through neighboring traces. A toggle switches between the two views: Timeline and World State. While a trace is still mostly unprocessed, a strip lists the pending pipeline stages (segmentation, world-state, cluster, frustration); it disappears once most stages have completed.
Timeline
Timeline is the raw record of the run: every message and content block in order. Each row shows content appropriate to its type:- User messages — the message content, rendered as markdown.
- Agent responses — the model and provider above the response text.
- Thinking — collapsed to a single expandable line.
- Tool calls — expandable input and result; failed calls are highlighted.
- Tool Call Failure — the tool name and error, with Jump to failure.
- User Frustration Detected — the score, trajectory, and primary cause, with clickable quotes that jump to the quoted turn.
World State
World State shows what Moda extracted from the trace: the tasks the user pursued and the facts established along the way. It has two tabs. Tasks lists the trace’s task threads with a resizable detail pane. Each thread has a status (Open / Resolved / Cancelled) and can contain subtasks (Open / Done / Blocked / Cancelled). The detail pane shows a progression timeline of actions — Message, Tool call, Correction, Subtask opened, Subtask completed, Failure, Retry — and each step can jump back to the matching turn in the Timeline. Facts lists the facts extracted from the trace; when the position is known, each fact is tagged with the turn where it was established. Both tabs are searchable (“Search threads” / “Search facts”); Tasks additionally supports filtering by thread status, subtask status, and action type, and sorting by Most recent turn, Status, or Title (A→Z). While the build is in progress, a “Still building world state” banner shows partial results and updates live.User memory panel
At the top of the World State view, a collapsible User memory panel shows a persona document built from the user’s messages — voice, decision style, and constraints. The panel header shows how many user messages have been folded in, and each observed trait carries a chip with its occurrence count and the last message where it appeared.OpenTelemetry span viewer
A standalone span viewer exists athttps://moda.dev/trace/<traceId>. It renders the OpenTelemetry span tree for one OTLP trace ingested over /v1/traces, with a span detail pane, and supports a ?span= parameter to deep-link a specific span. It is auth-gated and not linked from the sidebar — open it by URL when you have an OpenTelemetry trace ID. This is the per-call span view; the Traces page above is the run-level view.
Next steps
- Signals — the detections that produce the banners and badges on trace pages.
- Use Cases — the clusters behind the Use case column.
- Data API: traces — fetch traces and world state programmatically.