feat(dashboard): live-append the LOGS AUDIT tab via audit_entry_added

Completes the audit log end-to-end. The backend now emits an
audit_entry_added event on /dashboard/stream per privileged action (the
new row flattened at top level). logs.js already subscribes to that stream
for the BUILD tab; add a branch that prepends the new row to the AUDIT
table's cached list (de-duped by id against the cold fetch), bumps the
'latest N of M' total, and re-renders while the AUDIT tab is in view — so
a restart shows up without a manual refresh. Docs updated to match.
This commit is contained in:
iris 2026-06-13 18:41:17 +02:00
commit 24cbafc64a
2 changed files with 24 additions and 2 deletions

View file

@ -568,7 +568,10 @@ refusal) shown amber and labelled `denied` so it reads apart from an
execution failure. `ts_unix` is unix seconds; a 30 s ticker keeps the
relative "ago" column honest while the tab is in view. The backing
`audit_log` store records every privileged-action attempt (ok / err /
denied); a live-append off `/dashboard/stream` is a planned follow-up.
denied). New entries live-append without a refresh: an `audit_entry_added`
event on `/dashboard/stream` (the flattened row) is prepended to the table
and the "latest N of M" count bumped, de-duped by id against the cold
fetch.
## Container row