Frontend rewritten in Vue
The admin UI moved from Svelte/SvelteKit to Vue 3, with a light/dark theme and a shared design system.
Changed
- The frontend is rewritten in Vue 3 + TypeScript (vue-router, Pinia, Vite SPA). All pages keep their behaviour; the look follows a shared light/dark design system with Geist as the UI font and a theme switch in the account menu.
- The access map runs on Vue Flow.
- Hashed assets are served under
/admin/assets/and a missing one answers404instead of the SPA shell, so a stale tab reloads itself after an upgrade. make lintnow type-checks the frontend (vue-tsc) and checks formatting (prettier) alongside the Go linters.
Fixed
- Expiring an API key sent the key id where headscale expects the prefix.