# audit-drawer.screen The audit drawer — list view of `agent_actions` per [brief I](./I-audit-trust-replay.brief.md). Audit-row-detail.screen.md is what a single row opens to; this drawer is the *list* (filterable, scrollable, append-only). Voice: working. ## Layout (full-screen drawer) ``` ┌─────────────────────────────────────────────────┐ │ ◄ Chat 🔍 ⚙ filters │ 56pt ├─────────────────────────────────────────────────┤ │ Specialist: [ any ▾ ] Action: [ any ▾ ] │ │ Stakes: [ any ▾ ] Auto/approved: [ all ▾ ] │ │ Since: [ 24h ▾ ] │ ├─────────────────────────────────────────────────┤ │ │ │ ─── Today ─── │ │ ✓ 14:02 · bookings-tryst · bumped · auto │ row │ ✓ 13:55 · ai-copilot · drafted reply · auto │ │ ✓ 13:02 · content-onlyfans · post scheduled │ │ ⚠ 11:08 · bookings-tryst · bump failed · retry │ warning │ ✓ 10:02 · bookings-tryst · bumped · auto │ │ │ │ ─── Yesterday ─── │ │ ✓ … (collapsed group; tap to expand) │ │ │ │ [ Load more → ] │ │ │ └─────────────────────────────────────────────────┘ ``` ## Components | Component | Notes | |---|---| | Top bar | Back + search (routes to global-search scoped to audit) + filter cog. | | Filter row | Specialist / action_type / stakes / auto-vs-approved / time-window. | | Row | Status glyph (✓/⚠/✗) + time + specialist + action verb + auto/approved chip. Tap → audit-row-detail. | | Day grouping | Newest first; older days collapse after 24h. | ## States 1. **Default** — last 24h, all specialists. 2. **Filtered** — chips on top showing active filters. 3. **Empty (filter)** — "Nothing in this slice." 4. **Empty (truly)** — "No actions logged yet." (rare; only first day.) 5. **Loading more** — bottom spinner; loads in batches of 50. 6. **High-volume day** (>200 rows) — top banner: "Showing the most recent 200. Filter to see more." 7. **Counter-acted row** — chip "↺ countered" on the affected row. 8. **VoiceOver** — sections + rows; row reads "{status} {time} {specialist} {action}." ## Interactions - **Tap row** → audit-row-detail.screen.md. - **Long-press row** → quick menu: 👍 / 👎 / Counter-action / Copy ID. - **Tap filter chip** → cycle / clear. - **Pull-to-refresh** → re-pull. - **Tap "Load more"** → next batch. ## Edge cases - **Append-only invariant** (per brief I) — no "delete this row" affordance, ever. - **Row from retired specialist** — specialist name greyed. - **Counter-action lineage** — counter-action rows show ↺ chip with link to the original. - **Bulk filter (e.g. specialist + 30d)** results > 500 — UX caps display; suggest exporting (V). ## Related - [Brief I](./I-audit-trust-replay.brief.md) — parent. - [audit-row-detail.screen.md](./audit-row-detail.screen.md) — row target. - [Brief B](./B-drawers.brief.md) §audit drawer — parent drawer spec. - [Brief V](./V-data-portability-erasure.brief.md) — export route for large queries. ## Out of scope - Bulk approve / counter-action (defer). - Audit-history pruning (never, by spec — append-only).