You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Stage 15 (audit trail, slice 4): the desktop audit viewer
The audit trail is now visible and searchable from the desktop — the payoff of
slices 1-3. A global "Audit log" view (sidebar, alongside Site/Web/Settings)
lists every recorded action with filters that mirror the store's query surface:
- filter by source (All / Console / Panel / Web panel / Public / System) with a
live per-source count, by outcome (All / Success / Failed), and a debounced
free-text search over actor / IP / action / target.
- a table showing when, source (badged), action (localized, raw string for
unknown actions), actor, IP, target/detail, and a success/failure mark.
Wiring mirrors the existing queryEvents seam exactly: `audit:query` channel →
preload → `H(IPC.auditQuery, …)` → the pure `filterAudit`. New global ViewId
'audit'; EN/TR in lockstep (34/34 keys).
Verified: typecheck + build clean; the main SMOKE (exit 0) now records two audit
entries, opens the Audit view from the sidebar in the real renderer, and asserts
the table renders both — actor 'operator', a denied login with its IP, all
localized. So the view is verified end-to-end (record → IPC → rendered table),
not just by inspection.
Joins / alt-account tracking (name+IP+account count) and the admin-gated web
audit endpoint remain for slice 5.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
0 commit comments