Bug-fix patch.
Fixed the dashboard white screen. A rejected dashboard token no longer crashes the page to a blank screen. It now shows a clear "token rejected" message. Root cause: the status badge threw on an undefined status and failed API responses were being fed into component state.
Fixed multi-project port collisions (the 'dashboard only shows the first project' issue). Projects upgraded from 1.x all kept the shared default dashboard and daemon ports, so only the first project's dashboard would open. Now: openwolf update reassigns a free port pair when a project collides with another registered project, openwolf dashboard starts on a free port when the configured one is held by another project's daemon, and the daemon honours an OPENWOLF_DASHBOARD_PORT override. Fresh installs already received unique ports; this brings upgraded projects to parity.
See CHANGELOG.md for full details.