- New RAGWidget with live stats (files/chunks/failed), status badge, progress bar
- API proxy route /api/rag -> rag-api /status + /ingest-progress
- Replace 3 Grafana RAG panels with single live widget
- 5s auto-polling with error handling
- ServerStatsWidget: 3 SVG ring gauges per server with color thresholds
- Servers API: added cpuTemp from node_hwmon_temp_celsius
- NetworkWidget: condensed DMP view (WAN/WLAN/LAN health subsystems)
- UniFi API: parallel fetch of stat/device + stat/health
- SynologyWidget: prominent total/available space display
- Rewrite UniFi API: port 443, /api/auth/login, /proxy/network/ prefix,
native https module for self-signed cert, cookie-based session
- Update credentials to Vault-Admin (view-only local account)
- Rewrite NetworkWidget to show UniFi devices with clients/uptime
- Fix Synology API: correct field mappings (size.total/size.used),
add CPU/memory utilization endpoint
- Fix network API: use prometheus:9090 container DNS
- Add NODE_TLS_REJECT_UNAUTHORIZED=0 for UniFi self-signed cert
- Expand AI container group (rag, litellm, qdrant)
- Add force-dynamic to API routes
- Add /api/servers endpoint querying Prometheus for CPU, RAM, disk, uptime, load
- Add /api/gpu endpoint for NVIDIA Jetson GPU utilization, temp, power
- Add ServerStatsWidget with animated bars for Atlas, Wile, RoadRunner
- Add GPUStatsWidget with GPU util, memory, temp color-coding, power draw
- Update ContainerGroup to show CPU bar and memory for running containers
- Fix docker-compose.yml: traefik network external: true
- Fix getTraefikUrl to scan all router labels (not just 'https')