Dashboard: Memory

Route: /observability/memory (Memory.tsx)

A global, cross-agent, PII-redacted browser over agent memory — the same per-agent key/value store hoziron-cli agent memory reads one agent at a time, surfaced here across every installed agent — backed by GET /observability/memory?agent_id=&q=&page=&limit=.

Access

Admin and Auditor only — the same bar as Audit Trail, stricter than Logs/Telemetry (open to every non-Service role). Cross-agent memory content is PII-sensitive even after redaction, and this is framed as an audit-oriented surface, not a diagnostic stream.

PII redaction

Agent memory is stored raw — nothing tokenizes a remember/set_memory write on the way in. This page is the first UI-facing boundary that content crosses, so every value is scanned and PII matches are replaced with a [REDACTED:<category>] placeholder before display, using the same detector the audit log's own redaction uses. This is one-way display redaction — the real value is never rehydrated through this page.

  • agent_id — scopes the feed to one agent (e.g. a deep link from another screen); a "Clear agent filter" action returns to the unscoped cross-agent view.
  • Free-text search — matches key, value, or agent name; commits on Enter/blur rather than firing per keystroke.

Pagination

Server-paginated in pages of 100 entries, sorted by agent then key. Unscoped browsing is limited to currently-installed/running agents — there's no primitive to discover an agent id that has memory data but is no longer installed. A known agent_id filter has no such limit.

Refresh

Poll-refresh only, no auto-poll interval — this is an audit surface, not a live diagnostic.


Related: