2d8d08cae6
/health/detailed leaked runtime state (gateway state, connected platforms, active-agent counts, PID, exit reason) with no auth. Gate it behind the same Bearer auth as other API routes; plain /health stays open for liveness probes. Also refuse to start on a placeholder/too-short (<16 char) API_SERVER_KEY regardless of bind address — a guessable key on a terminal-capable endpoint is RCE-adjacent even on loopback, since any local process can reach it. The required-key check was already unconditional; this extends the strength floor to loopback binds too. Startup guards are hoisted above app/background-task creation so a rejected start leaves no partial state. Salvaged from #44073 (external-surface hardening), split into a focused PR per maintainer request. Co-authored-by: Hermes Agent <agent@nousresearch.com>