Pillar 4 · Monitor (the thinnest pillar)
Parent: key-designs
Call-time telemetry of the running system: the host's second cross-cutting controller, distinct in timing from ACL — ACL acts at session establishment (via "not discovered", ErrHidden in capreg); the monitor acts at call time. Only the monitor and secret-scan sit inline on the call path (the secret-scan the design doc names has no runtime implementation under backend/ as of 2026-09-07 — only the repo's build-time gitleaks gate exists: .gitleaks.toml, infra/scripts/check-secrets.sh). Scope: system health (the admin/system panel — a mini-Zabbix: health/CPU/mem/disk/uptime) + the activity ticker. Conversations/dashboard are product features, not host telemetry.
Why "monitor", not "observer": nothing here is observed in any meaningful sense — no behavior or state is watched for inference; it's resource and liveness telemetry. (the design doc's own text says "observer"; the name is corrected here.)
Status (2026-09-07, 36789537d): shipped, real values. The stats module is backend/internal/stats/ (entity/repo/ops/facade); its owner ops are instance.status / instance.activity / instance.corpus_growth / instance.corpus_graph / instance.inference_usage / instance.jobs / instance.upgrade / instance.upgrade_check (golden: e2e/test/norm-outward-toolset.spec.ts), served to the admin as GET /api/admin/system + /stats/{growth,graph,activity,jobs} (routes/admin/instance.go). Version/uptime/go runtime and the dependency health pings are real (cmd/server/port/sysinfo.go, gopsutil for host disk/mem/load); per-service CPU/memory comes from each container's own cgroup v2 — no docker socket — since 2026-09-04 (e3af33a1c, internal/infra/selfstat/selfstat.go, app/src/app/api/selfstat/route.ts), and the cluster/resources panels live-refresh ~1×/s since 2026-09-05 (4a082689a + 7ca16a50c silent refresh, app/src/lib/admin/use-system-info.ts). The panel (app/src/components/admin/sections/SystemSection.tsx) holds Upgrade · Deployment · Resources · Cluster · Sessions · background Jobs · Health · Inference usage (inference_usage table, stats/repo/inference_usage_repo.go) · Sandbox. The "activity ticker" is the corpus-pulse sparkline (admin/chrome/SystemPulse.tsx over /stats/growth) plus instance.activity. e2e: admin-system*.spec.ts, inference-usage.spec.ts, dashboard-corpus-pulse.spec.ts. No children pages yet.
In flight, not shipped: first-party visitor traffic analytics (settings → traffic; time windows, 90-day retention, every browser event emitted) lives on branch worktree-traffic-analytics — 0993efbc8, c72d15b7d; 18 commits unmerged as of 2026-09-07.