cardinal-wings: the panel backend is feature-complete

Interactive terminal, live stats, webhooks, multi-node metrics, cluster guide and an OpenAPI schema — everything a control panel needs from wings is now in place.

The cardinal-wings backend reached feature-completeness: everything a web

panel needs to manage cardinal — one host or a whole cluster — is now in

place, tested, and released automatically by CI.

What landed in this round

  • Interactive terminal — a websocket bridge (/terminal/ws) plus SSE

endpoints for shell sessions, built dependency-free on the standard

library.

  • Live stats/stats?stream=1 streams CPU/memory snapshots as SSE for

real-time charts.

  • Webhooks — panel notifications for task.completed and container

events, with a shared secret.

  • Multi-node metrics/v1/metrics now aggregates every node with

per-node labels, ready for Prometheus.

as a hub over N cardinal nodes with ?node= routing.

  • Operations — unauthenticated /healthz, graceful degraded mode when

cardinal is missing, configurable rate limits and timeouts, rotating audit

log, and container filesystem endpoints (fs/ls|cat|tree, cp).

Everything in one API

Containers (filter/sort/paginate), images (async pull with progress), the

blueprint catalog (async install/uninstall), services and functions, cluster

health, tasks with persistence, events, metrics, and uniform errors — all

documented in the OpenAPI schema.

Next up is the panel itself — a UI that sits on this API.