Skip to content

Health checks

Health checks answer one operator question fast: is this BMO runtime healthy, and if not, which subsystem is degraded? The feature exposes one shared posture family across CLI, TUI, HTTP, native agent tools, and MCP without changing the legacy liveness route.

SurfacePurpose
bmo config show-healthShell/operator readout; attempts live local attach, falls back only when no compatible runtime is available, and returns attached-runtime read failures explicitly
/healthLive in-process TUI readout using the shared text renderer
GET /v1/health/postureCanonical JSON posture (passing / warning / critical)
get_health_check_statusNative agent parity surface
bmo_get_health_check_statusMCP parity twin
GET /v1/healthLiveness-only smoke route, intentionally not the full posture family
  • Aggregate lifecycle status: passing, warning, or critical
  • Explicit truth boundary: source and runtime_attached
  • Per-subsystem rows with sticky-holding warnings
  • Bounded recent failure count and metadata-only recent ring
  • Shutdown-phase visibility when present

The shell surface can run out of process, so it tells the truth about that:

  • source = "live_runtime" when it attached to a compatible local runtime
  • source = "detached_projection" when no live runtime was available

That prevents a fresh shell process from being mistaken for live subsystem evidence from another process.