havm 0.2.0
v0.2.0
Breaking changes
- Bridge networking is now the default. The VM gets a LAN-reachable IP
for mDNS discovery (homeassistant.local) and local integrations. Self‑compiled
binaries without thecom.apple.vm.networkingentitlement automatically fall
back to NAT with a warning. Explicittype: natin config.yml overrides as
before.
Added
havm_disk_usage_bytesPrometheus gauge. Tracks the main disk image's
logical (configured) and allocated (actual APFS) size. Computed on scrape,
no timer overhead.
Changed
-
Event-driven idle — zero polling, zero run-loop drain. After guest boot
completes, no GCD timers, noCFRunLoopRun, norun(mode:before:). Signals
and VZ delegate callbacks arrive through GCD dispatch sources. VM stop is
detected viaVZVirtualMachineDelegateinstead of state polling. -
GitHub API requests use ETag conditional caching. Persists the
ETag
between runs; subsequent requests return304 Not Modifiedwhich costs zero
rate-limit tokens. Only counts against the rate limit when a new HA OS
release is actually published. -
Rate-limited errors show the reset time. The
x-ratelimit-resetUnix
timestamp is parsed and translated into a human‑readable duration
("try again in 6m 24s").
Fixed
- Setup errors use the structured logger instead of raw
fputsto stderr,
matching the log format configured for the session.