---
id: w4/m14/t007
title: Render parity — compare against Render's audit-logs dashboard columns/behavior; flag drift
worker: worker4
status: done
estimate: 20m
depends_on: [w4/m14/t006]
---

## Objective

Confirm this panel's columns/behavior track Render's actual audit-logs dashboard page as closely as the API's field-shape already claims to, and record any drift as tracked follow-up rather than silent divergence.

## Context

- `docs/ADR006-bex-api.md` § Audit log already documents one tracked divergence at the API layer: bex's response fields (`id`/`timestamp`/`actor`/`actorMethod`/`action`/`status`/`resource`) are a best-effort rendering of Render's *documented dashboard columns* (Timestamp/Actor/Event/Status/Metadata) — Render's exact JSON schema was never resolvable from public docs. This task is the UI-side check: does the **rendered table** read the way Render's actual dashboard audit-log table reads (column order, what "Metadata" shows, pagination affordance, whether denied/failed actions are visually distinguished)?
- Also confirm MCP is still correctly out of scope (Render's own MCP server has no audit-log tool either, per `docs/ADR018-render-parity.md`) — no drift expected there, just confirm nothing changed upstream.

## Steps

1. Compare the shipped `AuditLogPanel` against Render's audit-logs dashboard page (columns, pagination UX, empty/denied-state treatment).
2. Update `docs/ADR018-render-parity.md`'s "Audit logs" row (UI cell, currently `—`) to `◐`/`✅` as appropriate, with any new divergence noted in its evidence text.
3. File any real gap as a new inbox note (`w4/NNN.md`) rather than fixing it here, unless it's a trivial copy/label fix.

## Files

- `docs/ADR018-render-parity.md`

## Acceptance criteria

- [ ] `ADR018-render-parity.md`'s Audit logs UI cell reflects the shipped state.
- [ ] Any drift found is either fixed inline (trivial) or filed as a new inbox note (non-trivial).

## Out of scope

- Re-implementing REST/GraphQL (already parity-checked in w4/m10).
