Dashboard
Audit Trail
A unified timeline of every execution, guard check, contract validation, and limit event in your project. Filter, inspect, and trace any AI decision — down to the exact input, output, violation, and timestamp.
Event types
| Icon | Type | Description |
|---|---|---|
| ◎ | execution | Every /execute call — output, retries, latency, provider used, tokens, schema version |
| ◫ | guard | Guard checks — allowed or blocked, blocked_by, block_reason, latency |
| ⬡ | contract | Business contract evaluations — violations list with field, expected, actual |
| ⊘ | limit | Execution limit events — user_limit or project_limit reached |
Status values
| Status | Color | Meaning |
|---|---|---|
success | Green | Execution succeeded on first or fallback provider |
fallback | Yellow | Primary provider failed, succeeded on fallback |
failed | Red | All providers failed after max retries |
blocked | Red | Guard blocked the response before delivery |
flagged | Yellow | Contract violated with on_violation: flag |
limit | Orange | Execution limit reached (project or user) |
Log retention by plan
| Plan | Retention |
|---|---|
| Free | 7 days |
| Starter | 30 days |
| Enterprise | Unlimited |
Inspecting an event
Click any event in the timeline to expand its full detail panel:
json — execution event detail
{
"id": "exec_...",
"type": "execution",
"status": "success",
"title": "invoice-extraction",
"detail": "anthropic · 842ms · 1240 tokens",
"meta": {
"execution_id": "exec_...",
"schema_id": "invoice-extraction",
"provider": "anthropic",
"model": "claude-sonnet-4-20250514",
"attempts": 1,
"latency_ms": 842,
"tokens_used": 1240,
"schema_version": 3
}
}
json — contract violation event detail
{
"id": "exec_...",
"type": "contract",
"status": "flagged",
"title": "invoice-extraction",
"detail": "Contract violated — 2 rule(s) failed",
"meta": {
"contract_violated": true,
"contract_violations": [
{ "rule": "amount must be > 0", "field": "amount", "got": "-500", "type": "simple" },
{ "rule": "The amount must match the currency in the input", "type": "semantic" }
]
}
}
json — guard blocked event detail
{
"id": "glog_...",
"type": "guard",
"status": "blocked",
"title": "Customer Support Bot",
"detail": "Blocked by topic_guard",
"meta": {
"guard_id": "guard_...",
"blocked_by": "topic_guard",
"block_reason": "Topic 'competitor pricing' is not allowed",
"latency_ms": 340
}
}
Filtering
The dashboard provides filters for:
Event type: All · Execution · Guard · Contract · Limit
Status: All · success · failed · blocked · flagged · fallback · limit
Search: Free-text search across event title and detail
Events are paginated at 50 per page, sorted by most recent first, with date separators for easy temporal navigation.
Tip: The Audit Trail pulls data from two sources simultaneously — your executions API and the Supabase guard_logs table — and merges them into a single unified timeline in the browser.