feat: add admin panel at /admin for full dashboard configuration
- Backend: ConfigManager write methods (atomic YAML save), admin CRUD
router for settings (display/odoo/refresh) and nodes, WS broadcast
on config changes, fix nmap scan blocking event loop with to_thread
- Frontend: admin UI with tab navigation, overview dashboard, node
CRUD table with modal form, Odoo/display/refresh settings pages,
typed API wrappers, active views filtering, config_changed WS handler
- Infra: nginx no-cache headers for HTML, cache-forever for hashed assets
- Fixes: WebSocket reconnect loop (ref pattern), rotation index OOB
when views shrink, mutable node list cache
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>