Audit trail and export
Pushary keeps an append-only audit trail of every agent question, approval and notification. Filter it by agent, session or decision and export CSV or JSON.
The audit trail is Pushary's record of what your AI agents asked and what you let them do. Every question, approval, denial and notification is kept as a row that nobody can rewrite later, not even Pushary. Use it to answer "who approved that git push, and when?", to review a run, or to hand an export to a compliance reviewer.
Open it at Dashboard > Agent > Activity, on pushary.com/dashboard/agent/activity. The Audit trail tab shows the rows. The What changed tab lists every file edit, command and commit your agents made.
What each row records
Each row holds the agent type and name, the session, the tool involved, the question or notification text, your decision, who decided, and timestamps.
| Decision | Meaning |
|---|---|
approved | You answered yes |
denied | You answered no |
answered | You answered a choice or text question |
defer | Left to the terminal: the decision went back to your agent's own prompt. You chose to handle it on your machine, it was withdrawn, or Pushary did not send it to your phone |
pending | Asked, not answered yet |
notification | A one-way notification with no decision |
Filter the audit trail
Agent Pro and above
The filterable table, the What changed tab and export need the Agent Pro, Team, Partner or Enterprise plan. On other plans the Activity page shows your 100 most recent entries with an upgrade prompt.
You can filter by:
- Agent type: any agent Pushary supports, such as
claude_code,codex,cursor,gemini_cliorhermes - Session: one agent run
- Decision:
approved,denied,pendingornotification - Origin: who decided.
human, or a machine origin:autopilot,safe_readonly,policy_timeoutorkill_switch - End user:
externalId, for Partner sites that ask their own users - Search: text inside the question or notification
- Date range:
fromandto
Results come 50 to a page by default, up to 200, with a cursor for the next page.
Export the audit trail to CSV or JSON
Click CSV or JSON above the table. The export uses the filters you set. On the Team plan it covers every site in the workspace; on other plans, the current site.
The CSV columns are:
createdAt, site, agentType, agentName, sessionId, type, content, decision,
decisionSource, answeredAt, decidedByUserId, decidedByActor, externalId,
correlationId, decisionLatencyMs, toolName, toolTarget, executionState,
permitId, autoResolved, decisionOrigindecidedByUserId is a Pushary user id. decidedByActor can be an external actor such as slack:U0123ABC. Both are empty when the answer came over a credential that carries no identity.
New columns are only ever added at the end, never inserted or reordered, so a parser written against an earlier export keeps working.
The What changed tab exports the same way, with these columns:
createdAt, site, agentType, sessionId, machineId, toolName, kind, target, okOne export holds up to 10,000 rows, and it cannot reach further back than your plan's retention window.
Append-only by construction
The audit table is protected in the database, not only in the app. A BEFORE UPDATE OR DELETE trigger on agent_interactions refuses changes, so the guarantee holds even against Pushary's own server code.
- Edits. The trigger allows writing the first answer to a question that has none yet. That write cannot change any of 16 pinned columns, including the site, the agent, the session, the tool, the text and the creation time. The only other change it allows is clearing the link to a policy rule after that rule is removed. Any other edit fails with an error.
- Deletions. The trigger refuses a delete unless the scheduled retention sweep declared itself for that transaction, or the site the row belongs to is being deleted along with it.
Once an interaction is written, what it says cannot change. Only your retention window and deleting the site remove it.
Retention
The trail is kept for your plan's data retention window, and no longer. A scheduled sweep removes rows once they pass it, and that sweep is the only process allowed to delete an audit row. Deleting a site removes its trail with it.
Retention belongs to your plan, so moving to a plan with a longer window does not bring back rows that have already aged out.
Next steps
Decide what gets asked
Permission policies set which tool calls run on their own and which wait for you.
Watch your agents live
The control panel shows every running session and which one is waiting on you.