Skip to content

Activity and DLQ

Activity is your forensic log — every Platform mutation (invites, role changes, sources, plans) and every orchestrator action (reads, run cancels, secret reveals, context edits) merged into one chronological stream.

Each row shows the actor, the action, the target, and the outcome. A row driven by an agent credential (an agent PAT or an agent org key) carries an agent badge showing the agent’s label, so you can tell at a glance which activity was your coding agent and which was a person.

  • Audit rows: expand for field-level change tracking.
  • Access rows: expand for the request ID, origin, and any error message.

Filters live entirely in the URL — bookmark or share a filtered view to replay it.

  • Search: full-text match against access-log error messages and the JSON body of audit entries.
  • Run ID: combine with another filter to scope all activity touching a specific run.
  • Agent name: show only rows attributed to an agent credential with this exact label.
  • Agent-driven only: show only agent-attributed rows, across every agent.

Click a row’s run target to jump straight to the run detail page.

The activity page (/orgs/:customerId/activity) is the org-level forensic log. It merges two streams into one chronological view: tenant-plane audit entries (every tenant-plane mutation — invites, role changes, source registrations, plan changes) and orchestrator access entries (every read and admin action — run cancels, secret reveals, context edits, dashboard data fetches). Filters live in the URL via search params so a filtered view is bookmarkable and shareable. The page uses cursor-based pagination and supports filtering by source (audit / access / all), free-text search, run ID, Agent name (rows attributed to one agent label), Agent-driven only (any agent-attributed row), and other dimensions. Rows driven by an agent credential (an agent PAT or an agent org key) render an agent badge with the agent’s label. Requires audit:read permission. The legacy /orgs/:customerId/audit-log URL redirects here to preserve bookmarks.

The Export JSONL button downloads the currently-filtered activity view as a newline-delimited JSON file (application/x-ndjson) — one JSON object per line — for retention, compliance evidence, or offline analysis. The export honors the exact filters in the URL and always includes archived rows for that window, so the file is the complete record for the filter, not just the page on screen. Requires audit:read. Each export itself writes an activity.export entry to the activity log (with the applied filters and the exported row count), so pulling the data out is auditable too.

The DLQ (dead-letter queue) page lists internal events whose dispatch attempts were exhausted (or that hit a non-retryable error). Each row shows when the event landed in the DLQ, the event name, the attempt count, the failure reason, and the last error message.

The DLQ holds events your org emitted that could not be dispatched within the retry budget. The sidebar badge shows the current depth so you can spot a building backlog without opening the page.

Per-row actions (visible when you have event_dlq:write):

  • Retry: clears the DLQ flag and re-publishes the event. A healthy orchestrator picks it up immediately.
  • Discard: permanently deletes the row. Use when the payload is corrupt or the routing target no longer exists.

Members with only event_dlq:read see the list but cannot retry or discard. Org owners have both actions by default.

Both actions ask for confirmation first. If the action fails — for example the orchestrator is unreachable — the dialog closes and a red notification names the failure, so a failed retry is never mistaken for a successful one. The notification stays on screen until you dismiss it.