Agent OrchestrationFleet phase 2 — Live operator surface

Console Resource Panel (machine + per-agent live usage)

Status: Open — observability substrate exists (debug-only host process RSS/CPU sampling, OTLP process-metric export), but the operator-visible jackin console resource panel is entirely unimplemented (Phase 2, Agent Orchestration Program)

Shipped baseline

jackin already samples resource data in two narrow, non-operator-facing ways. The capsule daemon has a debug-only RSS/CPU sampler for its own host process (crates/jackin-capsule/src/daemon/resource_metrics.rs), gated behind JACKIN_DEBUG=1 and logged via cdebug! — it is not surfaced to the operator. Separately, the OTLP exporter in crates/jackin-diagnostics/src/observability.rs emits process.cpu.utilization and process.memory.usage metrics sampled via sysinfo, for whoever is scraping the configured OTLP endpoint — again, not rendered in the console. Neither of these is a per-agent or machine-summary view, and no DockerApi stats endpoint, console panel module, or panel keybinding exists anywhere in the tree today.

Remaining work

  1. Per-agent live usage. CPU%, RAM (current + limit-relative), OOM kill count, and file-descriptor pressure per running agent container, sampled via Docker stats (or a new typed stats endpoint on DockerApi) every ~2 seconds while the panel is open.
  2. Machine summary. Total host CPU%, total host RAM used/free, and ~/.jackin/data/ disk usage/free space.
  3. Console panel + keybinding. A new optional panel toggled by keystroke, sampling paused while collapsed; degrade sample failures to "?" cells rather than error dialogs.
  4. Status column integration. Once built, the per-agent table should surface a status column from the now-shipped agent runtime status authority.

Full design exploration (multicode's sampling approach, sampling-backend abstraction questions, deferred scope like historical graphs and alert thresholds): Console Resource Panel: Design Exploration.

Out of scope (for now)

  • Network I/O and disk I/O per agent.
  • Historical graphs / rolling sample buffers — depends on a persistent storage layer landing first.
  • Alert thresholds and CSV/Prometheus export.

On this page