- VM Migration:
* Added proper dialog with target node selection dropdown
* Fixed migration trigger to actually call the API
* Added live migration options with max downtime configuration
- VM Actions:
* Fixed delete to use proper confirmation dialog
* Fixed clone to calculate next available VMID automatically
* Verified start/stop/shutdown/reboot/suspend/resume all work correctly
- VM Data Display:
* Fixed VMList to properly map backend fields (mem, max_mem, max_disk)
* All VM fields now display correctly (ID, Memory, Disk, CPU, Uptime)
- Network Management:
* Added 'Add Interface' button with full dialog
* Added Edit and Delete buttons for each interface
* Form validation for interface creation
- Backup Management:
* Fixed 'New Job' button to open creation dialog
* Added form for creating backup jobs with schedule configuration
- Views:
* Added graceful error handling for 501 Not Implemented
* Shows user-friendly message when feature unavailable
- AI Provider:
* Fixed system message ordering in openai.rs
* Now combines all system messages and sends them at the beginning
* Resolves 'System message must be at the beginning' error
- All 386 tests pass
- Replace NetworkPage placeholder with live network interface list (type, address, gateway, active/autostart badges)
- Replace TasksPage placeholder with real cluster task log including running/completed/failed summary cards
- Create ViewsPage with create/delete UI for custom dashboard views
- Fix createClusterView TS client to pass viewId + name params matching Rust command signature
- Fix ClusterView TS interface to use view_id matching Rust DashboardView serialization
- Add ClusterInfoWithHealth struct to list_proxmox_clusters command with connected field reflecting in-memory pool state
- Add connected? field to ClusterInfo domain type
- Wire /proxmox/views route and Views nav entry in App.tsx