83c640d361
The dashboard lives at ftdt.io/cv but WebSocket and API calls used root-relative paths (/ws, /api/backtests) which Caddy routed to the wrong backend. Fixed to /cv/ws and /cv/api/* so Caddy's handle_path properly strips the prefix.