Addresses PR review suggestion: window.prompt() blocks the UI thread and
doesn't match the app's dialog patterns. Replaced with a React Dialog
consistent with MigrationDialog and SnapshotDialog already in the same file.
CloneDialog takes pre-filled VMID (max+1) and name (source-clone), validates
both fields, and calls clone_vm via invoke with loading state on the button.
- Add ISO upload via OS file picker: multipart POST to nodes/{node}/storage/{storage}/upload,
returns task UPID; Upload ISO button in CreateVmDialog triggers dialog filtered to .iso files
- Add cluster/datacenter selector to CreateVmDialog (shown when >1 cluster configured)
- Replace ISO text input with dropdown populated from listIsoImages; falls back to text input
when storage has no ISOs
- Rewrite NetworkPage with full CRUD: add/edit/delete interfaces via dialog, Checkbox toggles
for active/autostart, per-row Edit/Delete buttons
- Fix serde_bool_as_int deserializer to accept both bool and integer using visitor pattern
- Fix Content-Type conflict: remove pre-set header from build_headers(), let .json()/.form()
manage it (root cause of 400 Bad Request on VM start/migrate)
- Fix migration: remove invalid targetcluster/targetstorage params, switch to JSON body
- Security: wire validate_pve_identifier() into all 9 path-interpolating commands
(list/create/update/delete network interfaces, all 4 snapshot commands, list/upload ISO)
— previously only create_proxmox_vm was guarded
- Add post_multipart() method to ProxmoxClient for multipart form-data requests
- Add uploadIsoImage TypeScript wrapper and update proxmoxClient exports
- Update IPC-Commands wiki with all new and previously undocumented commands
- Fix compilation errors in create_vm and clone_vm functions
- Add snapshot operations (list, create, delete, rollback)
- Add network interface CRUD operations
- Update VMList to use actual snapshot functions
- Add TypeScript bindings for all new commands
- All 448 Rust tests and 405 frontend tests passing
Resolves all 6 Proxmox issues for full DCM parity