Skip to content

v0.4.5

Choose a tag to compare

@arcbox-labs arcbox-labs released this 10 Jun 16:46
0131b78

0.4.5 (2026-06-10)

Features

  • core: own a VM lifecycle per utility VM role (64fa38d)
  • core: role-aware runtime lookups and connector dispatch (8eb86af)
  • daemon,docker: fan-out resource wait + fail-closed unsupported roles (03530ca)
  • docker: add utility VM routing seam (05aaa9d)
  • docker: persist workload-to-role bindings for lifecycle routing (3a7fc34)
  • docker: resolve BuildKit /session role + lazy-recover bindings after daemon restart (e7a91d6)
  • docker: route amd64 runtime to HV/FEX64, fail closed, demote VZ (ABX-375) (9c85662)
  • docker: schedule Compose projects on a single utility VM role (588d217)
  • net,docker: fan out host port forwarding per utility VM (87f27d7)
  • net: mount host /private via VirtioFS and rewrite Docker bind paths (94578ac)
  • vm: dm-snapshot CoW with jailer mode support (#208) (7e740a1)
  • vm: symlink indirection for dm-snapshot checkpoint/restore (#209) (19dfcbf)

Bug Fixes

  • core: check FEX64 at runtime/bin/FEX, matching boot-assets binfmt path (9efa368)
  • core: eliminate TOCTOU in MachineManager::create by holding write lock (42f3e3f)
  • daemon: add ExitTimeOut to launchd plists to prevent SIGKILL during shutdown (bef9051)
  • daemon: include ExitTimeOut in installed plist (d423f5a)
  • dhcp: add expiry for declined IPs to prevent pool exhaustion (d677941)
  • dhcp: guard lease removal on declined IP and skip quarantine test on low uptime (526bd71)
  • dhcp: only quarantine offered IPs and preserve reservations on release (de30a8e)
  • docker: cfg-gate resolve() to macOS, remove stale Content-Length (7622347)
  • docker: fail closed on ambiguous workload identifiers (a3fc08c)
  • docker: refuse to guess on prefix collisions and keep alias ownership consistent (937e188)
  • docker: track workload aliases and route catch-all by URI role (2977b3c)
  • docker: use raw container ID as fallback for networking teardown (#155) (c9bd1a6)
  • use virtiofs constants in init.rs, make host_path pub(crate) (d2350df)
  • vmm: disable guest SVE/SME on Apple Silicon (phantom SVE traps) (7be30d7)
  • vmm: mask guest SME so FEX amd64 doesn't SIGILL on Apple SME cores (8f2c8a7)
  • vmm: recreate default VM when the desired kernel path changes (82b96a4)

Reverts

  • vmm: drop guest SVE/SME disable (misdiagnosed cause) (b46b2a6)

Code Refactoring

  • core: parameterize VmLifecycleManager on machine name (36cb538)
  • core: pick the hypervisor backend per machine (77e0952)
  • fex: rename mistaken FEX64 naming to FEX (f0ddbfb)
  • vmm: generalize default-VM drift detection to all overridable fields (fbde372)

Tests

  • core: cover MachineManager::create concurrent same-name race (35d2d23)
  • core: gate concurrent create tasks on a Barrier (2686255)
  • fex: add reproducible FEX64 validation harness (ABX-375 step 1) (158fbce)
  • fex: classify unprovisioned FEX64 as BLOCKED, not a Gate-A FAIL (ed3c561)
  • fex: point harness at /arcbox/runtime/bin/FEX; skip B/C when unprovisioned (0e59700)

Documentation

  • docker: document the BuildKit /session routing limitation (6c3b2f3)
  • docker: fix stale FEX path in require_amd64_runtime comment (682d956)
  • fex: correct binfmt registration to rootfs /sbin/init, not a guest setup_fex() (8840336)
  • fex: FEX is binfmt-only via a small patch, ships no FEXServer (dacc25a)
  • machine: explain why create holds the write lock across I/O (8b8ac58)
  • mount: update mount_standard_shares doc to include /private share (6e414f7)

Continuous Integration

  • release: pass release-please PR JSON via env, not inline interpolation (#295) (d16228a)

Miscellaneous Chores

  • assets: bump boot assets to 0.5.11 (45d60e3)
  • assets: bump boot assets to 0.5.13 (46b45f0)
  • assets: bump boot assets to v0.5.10 (working FEX64 runtime) (89df9a7)
  • assets: pin boot assets v0.5.9 with static FEX64 runtime (7c5c641)
  • devenv: add devenv-based reproducible dev shell (25d3836)
  • vmm: drop redundant clone in drift-detection test (684ce18)