Audit log
Every permission decision — allowed or denied, over WebSocket sync or MCP — is recorded durably inoracle.db with the acting user,
capability, workspace, decision and timestamp. Entries are kept for
auditRetentionDays (default 90; raise it for compliance retention —
there is no upper cap) and pruned hourly.
list resolves actor names through the current user directory at
view time; export emits the raw rows as JSONL, oldest first. Both
work while the daemon runs — reads are lock-free. --since/--until
take ISO date-times or relative forms (30m, 24h, 7d).
Metrics
GET /metrics on the daemon’s bind returns a JSON snapshot of
operational state: version and uptime, bind lifecycle, connected
peers (same-device vs LAN), workspace count, per-subsystem status,
stored mutations (total and last 24h), audit decision counts, and the
observability ring size. The route is read-only and token-gated —
every request presents a paired token, loopback included, validated
against the same ledger as WebSocket sync and MCP.
/mcp), and a wrong token counts toward the per-peer rate limit.
Logs
The daemon appends to<data dir>/logs/daemon.log, one line per
event:
--log-level (error, warn, info, debug; persisted like
every install flag).