Vapor Release Notes
This log tracks updates, new features, and bug fixes for the Vapor host agent.
Version 3.1.0 (August 2026)
Vapor hosts can now hand VMs to one another. A stopped VM moves to another host from within Awanio, the move can be called off while it runs, and the destination is checked for room and reachability before anything is copied. Replication and migration traffic can also be given a network path of their own.
New Features:
- Move a VM to another host: Cold migration for a stopped VM. Vapor confirms the destination is reachable and has room before copying, leaves disks that already sit on shared storage where they are, and cleans up after itself if a copy fails.
- Cancel a migration in progress: A migration under way can be called off, and is reported as cancelled rather than failed.
- Rename a VM: A rename carries through everything that referred to the old name — disk paths in the VM's definition, its backup folder and filenames, and the records pointing at them. The VM has to be stopped to be renamed.
- Host service endpoints: Give replication and migration traffic their own interface on the host, separate from management, assigned from the interface view.
- Asynchronous failover: A failover returns straight away and reports its progress, instead of holding the connection open for the whole operation.
- System hosts file: View and edit the host's
/etc/hostsfrom the System tabs.
Enhancements:
- Faster virtual networking: virtio interfaces now use vhost, multiple queues, and larger ring buffers.
- Templates: Creating a template from a VM runs in the background and can be cancelled while it runs.
- A VM's details show the security labels it is running with, and say plainly when the host cannot report them.
- A running Vapor states exactly which build it is, both in
--versionand in its health endpoint. - VM names containing spaces or special characters are refused up front rather than accepted and mishandled later.
Fixes:
- A disaster-recovery test built the recovery VM from the live source's definition instead of the replica's, and carried the source's CD-ROM and floppy devices into it.
- Reprotect after a failback could derive the wrong name, and the recovered VM did not keep its original identifier — so a second cycle could lose track of the original.
- An incremental backup that had in fact copied the whole disk was still recorded as incremental.
- A failover's outcome went unrecorded when the caller stopped waiting for it.
- Cloning a VM with an ISO or CD-ROM attached failed without explaining why.
- Nodes added to an o2cb cluster were not registered, and a retried image download did not say why the previous attempt had failed.
Version 3.0.2 (August 2026)
Vapor can now serve as a disaster-recovery site. A protected VM replicates to a second site on a schedule, can be brought up there when it is needed, and is then protected again in the opposite direction.
New Features:
- Site-to-site replication: Protect a VM by replicating it to a second site on a schedule you set, keeping recovery points daily, weekly, or monthly.
- Failover: Bring a protected VM up at the recovery site — planned, with a final sync and a clean shutdown of the original, or unplanned when the source site is unreachable. Interfaces are remapped to the recovery site's networks, disks land in the pool you chose, and the guest can take a new address on arrival.
- Test failover: Boot a replica on an isolated network to confirm it comes up, while the original keeps serving.
- Reprotect: After a failover, the recovered VM becomes a protected source in its own right and replication resumes in the opposite direction.
- Changed-block backups: An incremental backup copies only the blocks that changed since the previous one.
Enhancements:
- Every replica is verified against its source before it counts as a recovery point.
- An interrupted transfer resumes where it stopped instead of starting over.
- A backup stops early with a clear message when scratch space is short, and shows its progress while it runs.
- Choose which disks replicate, request a quiesced copy, and pause or resume protection at any time.
- Eject a CD-ROM, resize a volume while the VM is running, and keep each VM's disks in their own folder.
Security:
- The endpoint that wrote raw data into a VM's disk has been removed, and the read path that remains identifies the disk by its own address rather than by a file path supplied in the request. Versions 3.0.0 and 3.0.1 are affected; upgrade to 3.0.2.
- Vapor refuses a disk image that redirects reads to other files on the host.
Fixes:
- An update that fails now undoes itself. Vapor confirms the new version runs and keeps the previous one before switching over. If the new version will not start, the old one is restored and the service comes back on its own — a host is no longer left needing manual recovery.
- A test failover on a VM with several disks pointed only one of them at the replica.
- Retention could not reclaim space from a long chain of incremental recovery points.
- A sync was recorded as successful before the recovery point had actually reached the recovery site.
- Deleting a backup left its change-tracking checkpoint behind, so the space was never returned.
- Memory and CPU readings for a running VM could exceed their real values.
Version 3.0.1 (July 2026)
Adds warm migration support — a Vapor host can now be the destination for a live, minimal-downtime migration of a running VM — along with OS package management in the UI and general reliability improvements.
New Features:
- Warm migration target: A Vapor host can now receive a live migration of a running VM. The guest keeps serving during the transfer and pauses only briefly at cut-over. Works together with Condensa and Cockpit to bring running Proxmox VMs into Awanio.
- OS Libraries & Packages Management: Browse and manage the host's OS libraries and packages from the System tabs.
Enhancements:
- Updater: Now tells you when a new major version is available, instead of reporting "up to date".
Fixes:
- A failed login now returns a clear error instead of a server error.
- Security and reliability hardening across the host agent.
Version 3.0.0 (July 2026)
A major release that adds NVIDIA vGPU support, a VDDK-based migration data plane for importing VMs from other platforms, far more resilient incremental backups, clustered storage (OCFS2/O2CB) management, and a hardened, fail-closed security posture.
Breaking change — action required
The Vapor agent now fails closed: it will not authenticate without a configured signing secret, and it derives permissions from the authenticated identity. Configure the JWT secret on every host before upgrading.
New Features:
- NVIDIA vGPU (Mediated Devices): Full support for slicing a physical GPU into virtual GPUs — host-side orchestration and API endpoints, a guided NVIDIA vGPU Manager installer with pre-flight checks, a host-level device management view, and awareness of how many instances each profile has free.
- Warm/Cold Migration Data Plane (VDDK): A disk-import engine for bringing VMs in from VMware, including incremental (changed-block/CBT) transfers, a modern nbdkit + VDDK plugin build, plugin auto-detection, and management of installed VDDK builds. Import progress is tracked live.
- Third-Party Library Management: Install and manage VDDK and NVIDIA vGPU components from the System tabs, with resumable (TUS) uploads for large files.
- Guest Agent API: A general QEMU guest-agent interface (raw command and exec), plus endpoints to ensure the agent channel and to remove cloud-init seed files.
- O2CB / OCFS2 Cluster Management: Maintenance mode with persistent boot configuration, a heartbeat/network timeout management API, explicit cluster selection when creating OCFS2 pools, and cluster bootstrapping — all with host-namespace-aware safety checks.
Enhancements:
- Safer migrations: The migration UI now requires acknowledging destructive actions, and the migration store is pruned automatically while always reporting the newest status.
- Better restores: Choose a target storage pool, restore into an independent disk copy, and attach existing disks with clear dependency warnings for incremental/differential chains.
- Storage browser: Rename, move, and track VM attachments for files in the browser.
- VM editing: Custom CPU mode validation, and firmware/machine settings are preserved for running VMs so edits aren't rejected.
- Operations: A
deploy-peersbuild target distributes the binary to peer hosts and restarts the service.
Security:
- Fail-closed authentication with signing-algorithm pinning and permissions derived from the authenticated identity.
- Rate-limiting on login endpoints, trusted proxy-header handling, and SSRF guards on Ansible-driven operations.
- Authorization-coverage re-audit follow-ups across handlers.
Bug Fixes:
- Incremental backups: Deletion and retention no longer destroy incremental chains; silent rebase-delta failures are detected;
qemu-imgno longer creates the destination image; and interrupted jobs no longer corrupt incremental targets. - Libvirt performance & stability: Optimized pool listing, periodic connection recycling, request timeouts, event-loop initialization, and resource-leak fixes address prior lag; metric sweeps are throttled via single-flight and caching.
- Fixed a WebSocket metrics-pump goroutine leak on unsubscribe/resubscribe.
- Fixed a duplicate-column failure (migration 21) on databases that never ran migration 20.
- Corrected VM metadata format after metadata updates, and added a default VNC graphics device so restores boot cleanly.
- License validation tolerates an expired control-plane heartbeat lease during the refresh window.
- Sessions no longer time out during long-running background tasks and uploads.
- Fixed Windows BIOS migration and refreshed the v2v tooling.