Clean successor to V3 (forge: lilith/atlilith). Seeded from local Mac working tree at ~/Code/@projects/@cocottetech/. node_modules and build artifacts excluded via .gitignore. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3.9 KiB
3.9 KiB
audit-drawer.screen
The audit drawer — list view of agent_actions per brief I. 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
- Default — last 24h, all specialists.
- Filtered — chips on top showing active filters.
- Empty (filter) — "Nothing in this slice."
- Empty (truly) — "No actions logged yet." (rare; only first day.)
- Loading more — bottom spinner; loads in batches of 50.
- High-volume day (>200 rows) — top banner: "Showing the most recent 200. Filter to see more."
- Counter-acted row — chip "↺ countered" on the affected row.
- 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 — parent.
- audit-row-detail.screen.md — row target.
- Brief B §audit drawer — parent drawer spec.
- Brief V — export route for large queries.
Out of scope
- Bulk approve / counter-action (defer).
- Audit-history pruning (never, by spec — append-only).