traceId — the agent’s full response to one user prompt, from the first reasoning step to the final tool call.
Trace lifecycle
UserPromptSubmitfires — a newtraceIdis generated (t_<base36-timestamp>_<8-hex-random>) and persisted to$TMPDIR/voight-traces/<sessionId>.txt.- Tool events inherit the
traceId—PreToolUse,PostToolUse, and any reasoning steps read the file and stamp their events with the sametraceId. Stopevent ends the trace — the Stop hook fires when the agent’s turn is done.- Next
UserPromptSubmitstarts a new trace — the file is overwritten with a freshtraceId. The cycle repeats.
What a trace looks like
A trace card on/dashboard/traces shows:
- Prompt at the top (masked by default — click the eye to reveal)
- Each tool call inline with timing + outcome
- Reasoning steps interleaved
- Cost USD aggregated
- Files touched listed
- Git context (branch + sha) pinned
Text-response traces
If the agent answers conversationally (no tool calls), the trace contains only the prompt + a Stop event withresponseText. The dashboard shows these as “Text response” traces with a distinct badge so you can scan past them quickly.
Wakeup / autonomous traces
ScheduleWakeup callbacks (the autonomous-loop mechanism in Claude Code’s /loop mode) arrive as UserPromptSubmit events. To distinguish them from real user prompts:
- The SDK records the wakeup parameters (
delaySeconds,reason) when the agent callsScheduleWakeup - When the next
UserPromptSubmitmatches a pending wakeup, the event is taggedpromptSource: 'system' - The dashboard renders these traces with a
SYSTEMbadge so you can spot autonomous loop ticks at a glance
Privacy chips per-trace
Every event in a trace ships withmetadata.privacyLevel (Minimal / Standard / Full). The dashboard renders a chip per-event so you can audit retroactively: did this specific trace get captured under the level I expected?
Useful when you change your privacy level mid-project — the old events keep their chip, the new ones get the new level.
Trace search + filter
The Traces page (/dashboard/traces) supports:
- Time window: 24h / 7d / 30d / all
- Free-text search: matches agent label, project path, prompt text, trace ID
- Per-card eye toggle: reveal individual prompts without exposing all of them at once
- Global Show/Hide: bulk reveal for private review, bulk hide before going on-camera
API
To fetch traces programmatically:/me/traces reference for full schema.