0.16.1 (2026-05-17)
Added
- add build features for linux ubuntu hosts (911ed61)
- add oci registry support (9615e78)
- add windows builds an vms for linux hosts (eb7f440)
- added linux create vm command (931cae0)
- added windows build on windows to go wrapper (6d87a37)
- ansible role source configurable (79c6cd7)
- ansible: add configurable Debian Spotify install with apt/snap fallback (c5ae866)
- build: add --no-cache to force rebuilding existing VM artifacts (13c1783)
- build: add Hyper-V Ubuntu support on Windows and restructure cloud-init configs (eaef86d)
- build: add Hyper-V Ubuntu support on Windows and restructure cloud-init configs (f99f622)
- build: add Linux QEMU support for Windows 11 guests (36097fc)
- build: add Linux-host QEMU builds for Ubuntu server and desktop (364d308)
- build: add list command for available VM build combinations (023d67f)
- build: add verbose flag for packer builds (c4a8c63)
- build: enable VNC video capture for Linux host builds (3d65997)
- build: select fastest virtio-win download source (3d0d40f)
- build: show artifact status in build list (64bb53a)
- build: stream VNC snapshots directly to mp4 (0cc1a7d)
- ci: add FTPS build cache backend (2d0884b)
- ci: add Hetzner S3 build cache backend (d13c57b)
- ci: add in-repo Hetzner self-hosted runner workflow for Linux builds (fc88683)
- cli: add destroy command for managed VMs (490901b)
- cli: add install command for host dependencies (0ffd087)
- cli: add optional Go install flag and Linux host installer (44bebc0)
- create: add create list command and artifact readiness checks (1fc0bed)
- create: detect existing VM targets before deploy (5ab8087)
- deploy: add libvirt workflow for Ubuntu QEMU VMs on Linux (44fcda8)
- deploy: add Windows Hyper-V create flow and unify deploy command execution (8e2836c)
- deploy: add Windows Hyper-V vagrant deploy and unify deploy command runner (0a3f7be)
- destroy: add VM destroy readiness listing and tart state fixes (05e3175)
- embed runtime assets for standalone CLI builds and release binaries (b8d7506)
- embed runtime assets for standalone CLI builds and release binaries (af5d159)
- enhaned debugging for hyperv runner (90ce346)
- gh actions cache - add hetzner s3 and ftp (7080cc0)
- hyperv: parameterize Vagrant VM resources from build config (ec52f11)
- oci: add push and pull list commands (49ddd64)
- oci: add registry push and pull for build artifacts (3c061f2)
- oci: add TLS options for registry transfers (e087def)
- oci: allow confirmed darwin/linux foreign artifact pulls (a4786a1)
- oci: show transfer progress for push and pull (2e649a0)
- provision local windows ssh provisioning (5115d6a)
- provision: add generic ansible arg passthrough and inventory override (0d2f284)
- provision: add local host provision target (833e077)
- provision: add local host provisioning with Windows WinRM bootstrap (521aa46)
- provision: add local Windows SSH provisioning with force uninstall cleanup (f11ad4b)
- provision: add supported target listing and filter unsupported VMs (f378c06)
- provision: add Ubuntu UTM provisioning support on macOS (33dace4)
- provision: add Ubuntu UTM provisioning support on macOS (cc83f38)
- provision: add unified VM provision command for Hyper-V Windows (f1063ba)
- provision: add unified VM provision command with Hyper-V Windows flow via Cygwin (177c979)
- provision: add UTM Windows 11 provisioning support (556ce74)
- provision: add UTM Windows 11 provisioning support (baacca3)
- provision: allow overriding ansible playbook path (71f74a3)
- provision: allow role source config to set playbook (f92d1ef)
- provision: secure local Windows WinRM provisioning (ba8f592)
- provision: support configurable ansible role sources (5482f80)
- provision: support configurable playbook sources (23ce7fc)
- provision: support Ubuntu provisioning on Linux libvirt (9f21d04)
- restructure docs (585b871)
- tart: add macOS Tart target for create and provision (e721799)
- tart: add macOS Tart target for create and provision (e0203c9)
- vm: add lifecycle commands for starting, stopping, and destroying managed VMs (529adfa)
- vm: add start command and fail-fast provision preflight (1cb7a7a)
- vm: add stop command with graceful UTM shutdown (79b5689)
- windows: unify runner dependency setup behind self-setup script (e5aaa4a)
- windows: unify runner dependency setup behind self-setup script (8b151a5)
Fixed
- actions: simplify Hyper-V queue watcher job parsing (4bbaff8)
- address multiple gosec findings (b3a2cf1)
- ansible: make installer roles check-mode safe (f0b1f37)
- ansible: resolve macOS Java homes on target before jenv add (a408ef2)
- build: add engine selection and mark virtualbox unstable (8434021)
- build: clean failed artifacts and repair arm64 UEFI extraction (7da46f8)
- build: clean up incomplete artifacts after failed builds (34988e7)
- build: dependency download bar speed calculation (1cd7da5)
- build: ensure Windows 11 amd64 QEMU downloads virtio ISO (a3b3dc5)
- build: exclude unstable virtualbox target from build all by default (0876478)
- build: extend Linux QEMU build timeouts to five hours (9ba19ce)
- build: extract Windows ARM64 ISO with UDF-capable tools (447ce84)
- build: handle dependency downloads without progress bars (d11a8e9)
- build: harden embedded project extraction against gosec findings (b850868)
- build: harden unix tty fd handling for gosec compliance (5cfa18c)
- build: improve interrupt cleanup and preserve ffmpeg on graceful cancel (57b254f)
- build: install QXL driver during Windows QEMU builds (799e130)
- build: keep Ubuntu ISO checksums in sync (02a86e3)
- build: preserve cached artifacts during no-cache builds (dff2459)
- build: preserve successful artifacts after build cleanup (26a1ec9)
- build: preserve sudo prompts while restoring helper process logs (82155e9)
- build: quote Ubuntu QCOW2 export paths in packer templates (46fe595)
- build: removed de keymap from qemu args to avoid wrong inputs in boot_command (00b924f)
- build: resolve Python executable for Windows ISO bootstrap (eba7c09)
- build: restrict managed app directory permissions to 0700 (2bc4f7d)
- build: retry virtio-win download from fallback sources (37c70e9)
- build: shorten macOS Packer start-only temp paths (40ec4d1)
- build: shorten macos qemu output paths and stop noisy vnc retries (20354ec)
- build: skip unchanged embedded project sync and prune stale assets (c8ddc24)
- build: stop external process retries immediately on interrupt (24bf8da)
- build: tune QEMU CPU and memory settings for Ubuntu VMs (bd3913c)
- build: verify virtio-win ISO checksum (d4acd37)
- build: write Windows release zip to dist for artifact upload (ca05356)
- cache: use portable symlink resolution for uploads (b5ae57a)
- ci: accept Homebrew formula revisions (56a94f5)
- ci: accept newer Homebrew dependency versions (cf41138)
- ci: align macOS workflow cache paths with managed app data (0e08270)
- ci: align Windows workflow cache paths with managed app data (c0e419a)
- ci: capture sanitized Hyper-V diagnostics for Windows build failures (bfb7246)
- ci: harden Playwright Windows ISO fetch and upload diagnostics (99b0cf3)
- ci: keep Ubuntu ISO cache references in sync (80444ec)
- ci: pass repository to self-hosted renovate action (7e60475)
- ci: restore artifact directory access after gosec hardening (2855f00)
- ci: restore cache ownership after sudo macos builds (fc9e4e2)
- ci: restrict GHCR publish permissions (2a6f990)
- ci: retry HyperV runner cleanup before canceling queued builds (a4a710c)
- ci: run Windows winrm role test via provision local (3585a69)
- ci: show progress during FTPS build cache downloads (80ae228)
- ci: specify repository for gh release upload (f693ae1)
- ci: trigger PR workflows on cmd/main.go changes (459c297)
- cli: mark cross-arch VM targets unstable (4ee93ea)
- cli: remove duplicated root help sections (22fd4f1)
- deploy: address gosec findings in tart deploy helpers (b564d3f)
- deploy: configure QXL video memory for Windows 11 libvirt guests (d60a591)
- deploy: fail fast when Cygwin bash is missing on Windows provisioning (c34f0cc)
- deploy: handle existing running Tart macOS VMs explicitly (6ee6e8c)
- deploy: harden Hyper-V Vagrant stop with forced halt fallback (fb75cdb)
- deploy: harden libvirt image directory access (8aa0033)
- deploy: infer canonical UTM targets for macOS deploy configs (893d616)
- deploy: inspect Hyper-V VM state via PowerShell (21bd7da)
- deploy: keep libvirt ACL hints POSIX on Windows (075404c)
- deploy: make emulated arm64 libvirt domains portable (cb34c74)
- deploy: make Hyper-V stop timeout boundary deterministic (36f9499)
- deploy: normalize Hyper-V Vagrant dotfile env paths on Windows (0aec0d9)
- deploy: parse tart list output by columns for local VM lookup (715b704)
- deploy: preflight libvirt named networks (f886bf7)
- deploy: prevent truncated streamed logs and surface scanner errors (7724f4a)
- deploy: re-prime UTM ARP cache while waiting for guest IPv4 (47206e9)
- deploy: remove windows build constraints from hyperv deploy file (5c86ebe)
- deploy: retry UTM IP discovery and warm ARP cache (1f40162)
- deploy: return command execution errors instead of panicking (9d881bf)
- deps: upgrade google.golang.org/grpc to v1.79.3 for GO-2026-4762 (9942bd7)
- devcontainer: verify PowerShell tarball checksum (a5deb63)
- gha: restore native go and python in Windows Azure runner images (1a08df0)
- github-action: enable IPv6 and disable IPv4 by default for Hetzner runner (de96703)
- handle empty cookies.json by catching JSONDecodeError (477fe1d)
- hyperv: isolate vagrant state per vm and prevent false create detection (eabb917)
- kubectl: avoid Windows Chocolatey failure when newer kubernetes-cli is already installed (174b1fd)
- kubectl: clean up apt key temp dir on setup failure (1a58b5e)
- kubectl: make Debian apt key setup resilient (1efa8cc)
- kubelogin: authenticate GitHub release lookup in CI (e2cd924)
- libvirt: install QXL driver for Windows auto-resize (271a76d)
- linux: stabilize Ubuntu desktop QEMU/libvirt networking and desktop image setup (f3de076)
- listener bar null check (25a688a)
- macos: detect latest installed Homebrew version (1ab1fff)
- macos: pin Homebrew tooling installs (de21704)
- macos: warn on unavailable pinned brew versions (9701275)
- make vncsnapshot retry loop interruptible by SIGINT/SIGTERM (a18eb8d)
- make: remove brittle pkill cleanup after build tests (9c5c0da)
- oci: reject duplicate manifest layer titles (8f389b9)
- oci: suppress gosec G402 on insecure TLS field (c5d970d)
- packer: move qemu ubuntu package installs out of cloud-init (66ee86b)
- packer: persist ARM64 Windows EFI boot state (b56c04a)
- packer: refresh PATH after Windows setup provisioning (1144bc7)
- packer: restore ARM64 Windows CI boot order (708ca62)
- packer: restore persistent DHCP config for QEMU Ubuntu images (072a676)
- packer: simplify QEMU autoinstall networking (261d1da)
- packer: simplify ubuntu desktop qemu provisioning (cfbd97c)
- packer: stabilize ARM64 Ubuntu QEMU installs (f592a10)
- packer: use valid validation messages for cache_dir (aa924f4)
- prevent deadlock in stopVncScreenCaptureOnMacosDarwin when vncsnapshot exits cleanly (784183b)
- prevent deadlock in stopVncScreenCaptureOnMacosDarwin when vncsnapshot exits cleanly (9c2ca4f)
- provision: avoid reboot-only local Windows SSH cleanup and log OpenSSH install progress (b480986)
- provision: bind local Windows WinRM bootstrap to loopback (768eeed)
- provision: detect Hyper-V Ubuntu guest IP without key-based vagrant ssh (0cba4c3)
- provision: elevate and confirm local Windows WinRM bootstrap (dc0adaa)
- provision: enforce documented ansible verbosity range (5d1dd8a)
- provision: guard SSH wire length encoding against uint32 overflow (ec9ef74)
- provision: harden local Windows SSH bootstrap state handling (e2e187e)
- provision: harden local Windows SSH port selection and cleanup (725b827)
- provision: harden local Windows WinRM bootstrap cleanup (310d4f1)
- provision: harden role source runtime handling (027aa53)
- provision: ignore IPv6 hostnames in linux vagrant IP discovery (836fc02)
- provision: improve local Windows SSH auth setup, cleanup, and preflight diagnostics (f2572a2)
- provisioning: install ansible in devcontainer and fix kubelogin header templating (4786109)
- provision: log local Windows PowerShell bootstrap and cleanup progress (146a8f1)
- provision: preflight sshpass for password SSH auth (0409721)
- provision: skip Windows RunAs hop in elevated shells (42ce281)
- provision: use a dedicated local Windows SSH port and detect wrong SSH listeners (db65e64)
- provision: use HTTPS-only local WinRM bootstrap on Windows (a1fe0e7)
- provision: use VM-specific Hyper-V Vagrant settings (5c78d8d)
- qemu: tune cross-arch emulation CPU settings (618b13c)
- renovate: resolve packer plugin lookups and set git author (626671c)
- runners: cancel active macos tart jobs before shutdown (fd8f296)
- runners: cancel active macos tart jobs before shutdown (1466ec9)
- runners: normalize shutdown poll interval (a8a98c8)
- runners: preserve busy macos tart VMs during shutdown (089be7b)
- runners: preserve unknown GitHub API state during cleanup (75d9fa7)
- runners: report force-cancel failures during shutdown (81a131c)
- runners: wait for tart runner deregistration on shutdown (8c94361)
- security: harden VNC recording file and process handling (069461e)
- security: triage and suppress provision gosec findings (a528c99)
- stop re-rendering completed progress bars (d5d4ee8)
- stop: use Hyper-V graceful shutdown for Ubuntu VMs before force halt (89f99b9)
- test: normalize workflow line endings for Windows CI (43f77a0)
- update downloadWebFileDependency call in test to pass progress argument (c6a8cfc)
- utm: set arm64 cpu type to default to fix issues with vm boot (0773b0f)
- windows11: fix arm64 QEMU boot hang and headless mode handling (a9bb0ad)
- windows: fall back to alternate cygwin install root (4de65ac)
- windows: install the correct Chocolatey Python package (fde8260)
- windows: keep WinRM reachable across network profile changes (00d0dcf)
- windows: make Go setup opt-in for dependency installs (ccdb8f2)
- windows: preserve existing ssh provision user on force uninstall (e7a643c)
- windows: reinstall cygwin cleanly on version mismatch (1f13700)
- windows: validate Cygwin root before cleanup (5b7c61c)
- windows: verify selected cygwin root before package setup (6f01d82)
Changed
- build: extract VNC recording logic into dedicated file (49dadec)
- build: removed windows isos az storage container (5b7843b)
- deduplicate build/create/provision VM list rendering (75af05e)
- deploy: extract shared SSH wait helper (35d32cd)
- deploy: replace static winrm inventory with env-var-driven ansible config (c87bf2b)
- move VM state into managed app data (9697909)
- move VM state into managed app data (1077820)
- oci: split artifact handling into focused modules (850ef4f)
- packer: split linux and macos ubuntu qemu build paths (6dbfc44)
- packer: unify Ubuntu QEMU templates (ff189e1)
- provision: deduplicate local windows session runner flow (786e286)
- provision: extract local Windows WinRM scripts into ps1 assets (60971c8)
- provision: move VM provisioning logic out of pkg/deploy (f6cc593)
- provision: move windows local logic into dedicated file (80c6895)
- provision: reject "all" target with explicit error (d94c306)
- provision: share managed Windows user lifecycle across ssh and winrm (3a685d7)
- rename shared SSH provision arg builder (f1b0629)
- resolve VirtualMachineConfig from available list instead of constructing manually (f9730b4)
CI
- actions: add workflow concurrency to prevent push/pr parallel runs (f5498b1)
- actions: add workflow concurrency to prevent push/pr parallel runs (b875e69)
- add cold-cache dependency bootstrap coverage to Linux workflow (9511385)
- add deploy smoke tests to macOS and Windows build workflows (93951cf)
- add Go security scanning workflow (govulncheck + gosec) (c786bd5)
- add Makefile target and GitHub Actions workflow for build-runner tests (4d7d305)
- add native Linux QEMU smoke builds for amd64 and arm64 (fe056bb)
- add PR coverage for deploy and provision tests (33dd2a3)
- add shellcheck workflow (05eb93c)
- align Windows and macOS build job timeouts with packer timeouts (2d72d46)
- broaden build workflow path filters for shared build inputs (f6bf616)
- cancel Windows Hyper-V test runs when the runner stays queued (30c9852)
- configure release-please for automated releases (95e3fd7)
- default macOS build tests to GitHub-hosted runners (23adc30)
- deps: schedule Renovate in GitHub Actions (86f5734)
- exercise Windows local provision flows in ansible role tests (95588e9)
- extend cmd unit-test workflow to cover provision and deploy tests (95a4e50)
- fix unit-test workflow path filters to self-reference current file (0849419)
- include role source fixtures in test filters (27891c6)
- publish ubuntu build artifacts to GHCR (b0ed47d)
- refresh Azure auth before HyperV queue cleanup (9189f40)
- remove Windows WinRM setup from ansible role test workflow (0aef486)
- renovate: use branch config for workflow-dispatch runs (11e6af7)
- restrict GHCR artifact publishing to main (c74a1e2)
- reuse install scripts in build workflows and make oscdimg setup idempotent (6c9f033)
- reuse install scripts in build workflows and make oscdimg setup idempotent (b10300c)
- run cmd and pkg/build unit tests in GitHub Actions (630b74e)
- run deploy and provision unit tests on main pushes (23dc24f)
- run full cmd package tests in deploy unit workflow (c8f1880)
- run gitleaks and cmd unit tests on main pushes (4db3625)
- run Linux Windows QEMU builds as start-only probes (83acc0e)
- run OCI package unit tests (ca1490f)
- run OCI registry integration test (23e8781)
- run release binary build dry-runs in pull requests (4a0a132)
- run Windows 11 QEMU builds in Linux workflow (ef832e1)
- scope Windows workflow actions write permission to queue watcher job (4d3c23e)
- security-scan: don't checkout the code a second time (b65153b)
- security: prevent gosec from failing workflow and gitignore sarif results (e8e24e1)
- set up Go before macOS build dependencies (d02e9fe)
- shorten macOS Ubuntu packer build checks (ad680c0)
- store Hyper-V diagnostics in private Azure cach (9e4d904)
- trigger linux build on deploy runtime changes (876cd00)
- trigger macOS VM workflow for provision code changes (907cc21)
- validate build cache actions on changes (b6849cf)
- windows: set test-hyperv-build job timeout to 60 minutes (d1086c3)