"""Live dashboard served at dashboard.wg.

Blank-slate web display whose live data is fed from Python over a
WebSocket. Other code in the repo can push events to connected
browsers two ways:

  - In-process: ``from training.dashboard.app import broadcaster``
    then ``await broadcaster.publish({...})``.
  - Cross-process (e.g. orchestrator/receiver): POST a JSON body to
    ``http://127.0.0.1:8447/publish``. The endpoint is bound to
    loopback and is not reverse-proxied by Caddy.
"""
