Skip to content

Full Trace

Full Trace supports deep evidence verification without loading an entire large trace into the UI.

The Tree begins with roots. Expand a parent to request its direct children from persisted finalized topology. Missing parents, multiple roots, and cycles remain visible rather than being discarded or forced into an invented hierarchy.

Only cached branches are searched or filtered. Expand cached branches expands parents already present in the bounded cache; it is not an unbounded “load everything” action. A partial child page exposes Load more.

Evidence spans use a distinct highlight. Agent-role chips distinguish planner, browser, retriever, editor, verifier, publisher, and other explicit responsibilities.

Perseval Full Trace tree showing expanded planner, browser, and verifier topology with evidence highlighting

Timeline uses the same loaded span data but orders rows chronologically and aligns bars to the trace duration. Overlapping bars represent concurrent work. Labels occupy a separate lane so long operation names do not overlap duration bars.

Switching Tree/Timeline does not reconstruct topology or reload the complete trace. Selecting a row in either view updates the shared inspector.

Perseval Full Trace timeline showing chronological multi-agent work without overlapping labels

Shows detector identity, severity, recovery, certainty, missing facts, and eval-candidate state. For an error-only trace without failure context, it explains why the selected error span was not actionable.

Shows name, category, status, duration, parent, events, and SpanLinks. Link targets remain distinct from parentage.

Shows bounded inline metadata. Use it to audit producer facts such as requiredness, role, effect, retry safety, and state observation.

Payload bodies never display automatically. Each externalized value requires an explicit bounded reveal. Larger local reveal remains disabled unless the workspace policy allows it.

Search covers loaded rows. Errors only filters cached pages and never implies that error rows are actionable findings. Clear the filter or load another branch if a known span is absent.

Span pages are service-bounded to 500 rows and the UI caches at most eight pages per list. Selection uses logical trace ID, revision, and span ID, so inserts, reparenting, filtering, and resynchronization do not retarget to a different row.