Trace (the audit log)
The tamper-evident, hash-chained record of every consequential event in the workspace — what it captures, how integrity works, and who can read it.
Trace is the workspace's audit log. It is the record that makes governance real: if it isn't in Trace, you can't prove it happened.


What it records#
Every consequential event, in five categories:
- activity — agent actions, shell runs, reported events from connected workers.
- config — changes to settings, agents, skills (the drift signal, tagged "Change").
- approval — every approve / deny decision and who made it.
- policy — policy and template changes.
- security — secret grants, enforcement-gate decisions, and similar.
Tamper-evident by construction#
Each event is hash-chained per workspace: every row's hash includes the previous row's hash. Altering any past row breaks the chain from that point on, and the break is detectable — operators can run an integrity verify.
Ceiling — Trace is forward-only by design — you can't retroactively claim events were logged live. Writes are serialized so the chain can't fork, and an audit write never blocks or breaks the action it records. This makes tampering detectable; it does not make the underlying host immune to someone with full host access (see Enforced vs Trusted).
Reading, filtering, exporting#
- Filter by text, time range, category, agent, or session.
- Export the full log as NDJSON for compliance archives. (Export is intentionally unfiltered — a compliance export is the whole record.)
Note — Trace is role-scoped. Operators see all rows; a member sees their own activity plus whatever the policy's visibility settings permit. Verify and export are operator-only.
Next#
- Policy & enforcement — the rules whose decisions land here.
- Honest claims & reporting — what audit integrity does and doesn't promise.