The web UI is served under /ui, but hitting the bare domain returned the
API's JSON identity blob, so browsers never landed on the app. The root
now redirects to /ui/; the identity blob (name + version) moves to
/version so monitoring can still read it.
- redirect GET / to /ui/ (302)
- serve the former root JSON at /version
- update the server test to assert the redirect and the /version payload