Report · node9 documentation

Report

Period-windowed view of what your AI agents have actually done, spend, blocks, leaks, and what to do about them.

The Report tab is the answer to "what did happen, and what should we do about it?", driven by your post-install audit log plus the forward-only scan rollup. It's window-scoped (24H / 7D / 30D / 90D) and split into five tabs.

The five tabs

OverviewDefault
The headline view: Value Snapshot strip (blocked / found in history / loop waste), 🎯 Action items, period comparison strip, Risk Posture with severity buckets, summary counters, daily activity. Most users live here.
RisksDetail
Per-rule fire counts, top blocked tools, credential-leak patterns, detected scan signals, hour-of-day heatmap, AI agent / machine / MCP server breakdowns.
SessionsDrill-down
Per-session list with prompts, tool traces, cost, and file changes. Filter by signal (DLP, loops, destructive ops, etc.), working directory, or model. Other tabs deep-link here.
FleetMulti-machine
Cross-machine view, which devs' machines have which shields enabled, per-machine blast-radius scores, fleet-wide path exposures.
CostSpend
Full cost breakdown: daily trend, by model, by project. Useful for billing reviews and spotting expensive agent loops.

🎯 Action items panel

Concrete recommendations synthesised from your data
Sits between Value Snapshot and the period-comparison strip on the Overview tab. Turns raw counters into 0–4 concrete next steps you can act on. Four rules in V1:

🔴 Credentials caught: rotate exposed keys when DLP intercepts a credential leak.
🟠 Fleet-wide path exposure: enable project-jail when sensitive paths are readable on ≥2 machines.
🔵 Block rate elevated: review most-blocked tool when > 1 in 3 calls is being blocked.
🔵 Loop waste: open looping sessions when retry loops have burned more than $1.

Each item has a dismiss button (× icon) that snoozes it for 7 days per workspace via localStorage. When nothing fires, the panel shows a green "All clear" healthy state so you can always confirm the feature is wired.

Time range selector

Scoping the window
The [24H] [7D] [30D] [90D] buttons in the top-right control the period for every panel on every tab. Default is 7D. Switching ranges reloads all data immediately.

90D matches the [N]inety keypress in the terminal monitor's Report view (node9 monitor then press [2]) so the dashboard and the TUI share vocabulary.

Agent filter

Per-AI-provider scoping
Visible only when more than one AI provider appears in your data (Claude Code, Gemini CLI, Cursor, etc.). Selecting a specific agent re-queries every panel scoped to that provider. The dropdown stays populated across filter changes so picking "Claude Code" doesn't remove "Gemini CLI" from the options.