-
v0.4.0
StableSome checks failedCheck / fmt + clippy + tests (push) Successful in 6m36sPublish crates / cargo publish (Forgejo Cargo registry) (push) Failing after 3sBuild Linux package / Build vervain-agent and publish generic package (push) Successful in 3m39sBuild Windows agent / Cross-compile, sign, and publish vervain-agent.exe (push) Successful in 6m33sBuild macOS package / Build vervain-agent (macOS) and publish generic package (push) Successful in 18m38sreleased this
2026-07-15 03:06:05 +02:00 | 38 commits to main since this releaseChangelog
d51ecd6Merge pull request 'Release v0.4.0' (#128) from release/v0.4.0 into main
d3df54dMerge branch 'main' into release/v0.4.0
d7ffb28Merge pull request 'fix(install): silence best-effort launchctl stderr on macOS uninstall' (#140) from fix/VA-89-quiet-launchctl into main
32b918bfix(install): silence best-effort launchctl stderr on macOS uninstall
7daf40dMerge pull request 'ci(macos): native build+publish workflow and runner/build docs (VA-89, VA-90)' (#139) from feat/VA-89-VA-90-macos-ci into main
2037b93Merge pull request 'feat(install): macOS launchd installer + Install/Uninstall routing (VA-89)' (#138) from feat/VA-89-macos-launchd-installer into main
03bfc24ci(macos): native build+publish workflow and runner/build docs (VA-89, VA-90)
42632bffeat(install): macOS launchd installer + Install/Uninstall routing (VA-89)
44444d1Merge pull request 'test(lan): end-to-end mTLS + capability-gate integration test (VA-8)' (#137) from test/VA-8-lan-integration into main
a395bd2test(lan): end-to-end mTLS + capability-gate integration test (VA-8)
71ea1e6Merge pull request 'feat(lan): mTLS LAN control-plane listener, read-only (VA-8)' (#136) from feat/VA-8-lan-listener into main
5f40883feat(lan): mTLS LAN control-plane listener, read-only (VA-8)
2498ad4Merge pull request 'feat(dispatch): apply server-pushed agentconfig (VA-130)' (#135) from feat/VA-130-agentconfig into main
b090602feat(dispatch): apply server-pushed agentconfig (VA-130)
94d5bedMerge pull request 'feat(host): populate OS name on macOS via sw_vers' (#134) from feat/macos-osinfo into main
d7c49bffeat(host): populate OS name on macOS via sw_vers
d810a4cMerge pull request 'feat(host): populate sysinfo and cpuinfo on macOS (VA-133)' (#133) from feat/VA-133-macos-sysinfo-cpuinfo into main
715f8dbfeat(host): populate sysinfo and cpuinfo on macOS (VA-133)
e22c4d2Merge pull request 'fix(mcp): dial and serve the MCP gateway tunnel (VA-131, agent half)' (#132) from fix/VA-131-mcp-gateway-tunnel into main
fd9e65ffix(mcp): dial and serve the MCP gateway tunnel (VA-131, agent half)
c15d2b3Merge pull request 'fix(dispatch): execute runcommands shell actions (VA-132)' (#131) from fix/VA-132-runcommands-dispatch into main
e032b28fix(dispatch): execute runcommands shell actions (VA-132)
8283f0cMerge pull request 'feat(macos): build the agent binary for x86_64-apple-darwin (VA-88)' (#130) from feat/VA-88-macos-x86_64-build into main
8fc39bfchore(macos): addjust build-macosnative build recipe
ff5fcb8feat(macos): compile the agent binary for x86_64-apple-darwin
a23b136Merge pull request 'docs: add CLAUDE.md for Claude Code' (#129) from docs/add-claude-md into main
bef1c3cdocs: add CLAUDE.md for Claude Code
2055481Release v0.4.0
c85667dMerge pull request 'feat(kvm): layout-aware desktop key protocol' (#127) from feat/VA-126-layout-aware-desktop-keys into main
16ddb06feat(kvm): layout-aware desktop key protocol
c54c125Merge pull request 'fix(kvm): exclude the BGRX pad byte from tile change-detection' (#126) from fix/VA-127-tile-hash-skip-bgrx-pad-byte into main
fbd8addfix(kvm): exclude the BGRX pad byte from tile change-detection
1c80e74Merge pull request 'feat(ci): sign and publish the Windows agent' (#125) from feat/VA-123-windows-agent-sign-publish into main
b8808e8feat(ci): sign and publish the Windows agent
512ef56Merge pull request 'feat(ci): cross-compile a 64-bit Windows agent build' (#124) from feat/VA-122-windows-cross-compile-ci into main
9210d54feat(ci): cross-compile a 64-bit Windows agent build
4f29e19Merge pull request 'fix(kvm): route explicit-Linear scanout reads through gbm' (#123) from fix/VA-121-vram-linear-scanout-through-gbm into main
edae506fix(kvm): route explicit-Linear scanout reads through gbm
dfcb35aMerge pull request 'feat(power): add Sleep action_kind to host_power' (#122) from feat/VA-120-host-power-sleep into main
9c9bbc5feat(power): add Sleep action_kind to host_power
a4af88eMerge pull request 'fix(kvm): treat an absent display as retryable in capture loops' (#121) from fix/VA-119-kvm-capture-retryable-absent-display into main
0497cfafix(kvm): treat an absent display as retryable in capture loops
eabb1fcMerge pull request 'fix(input): route MCP + VNC pointer moves through shared backend selector' (#120) from fix/VA-118-shared-pointer-injection into main
cbfe4abfix(input): route MCP + VNC pointer moves through shared backend selector
38f0e83Merge pull request 'fix(desktop): scale HiDPI pointer coords into logical space (VA-111)' (#119) from fix/VA-111-hidpi-pointer-scale into main
cc37e80fix(desktop): scale HiDPI pointer coords into logical space (VA-111)
66d4372Merge pull request 'feat(update): compress agent transport with zstd' (#118) from feat/VA-116-transport-compression into main
16aef73feat(update): compress agent transport with zstd
07357f0Merge pull request 'fix(desktop): probe KVM backend once, fail closed on headless host' (#117) from fix/VA-115-desktop-probe-once-fail-closed into main
5fda6aafix(desktop): probe KVM backend once, fail closed on headless host
cc365ceMerge pull request 'feat(package): publish semver sidecar alongside each agent binary' (#116) from feat/VA-114-version-sidecar into main
df2cef6Merge branch 'main' into feat/VA-114-version-sidecar
9c0b891Merge pull request 'docs(agent): drop stale --system from install doc examples' (#115) from fix/VA-113-stale-system-flag-install-doc-comments into main
20ead95feat(package): publish semver sidecar alongside each agent binary
bc7af8bdocs(agent): drop stale --system from install doc examples
d8987d3Merge pull request 'fix(kvm): fail loudly on stale X11 cookie and re-resolve session (VA-112)' (#114) from fix/VA-112-x11conn-cookie-reresolve into main
1cdebd3fix(kvm): fail loudly on stale X11 cookie and re-resolve session (VA-112)
c946a46Merge pull request 'fix(kvm): composite DRM cursor plane into scanout capture (VA-110)' (#113) from fix/VA-110-drm-cursor-overlay into main
ee9a470fix(kvm): composite DRM cursor plane into scanout capture (VA-110)
693bebaMerge pull request 'fix(kvm): one desktop-tab owner per seat via advisory lock (VA-108)' (#112) from fix/VA-108-single-kvm-owner-per-seat into main
94b2cbafix(kvm): one desktop-tab owner per seat via advisory lock (VA-108)
e2b11f9Merge pull request 'fix(kvm): follow seat0 active session across login/logout (VA-107)' (#111) from fix/VA-107-session-follow into main
590ea12fix(kvm): follow seat0 active session across login/logout (VA-107)
5796ed2Merge pull request 'fix(kvm): route no-modifier DRM scanout through gbm, not raw mmap (VA-106)' (#110) from fix/VA-106-drm-scanout-modifier-none-tiled into main
6ad8677fix(kvm): route no-modifier DRM scanout through gbm, not raw mmap
16fa2bbMerge pull request 'fix(rtc): pace WebRTC data-channel sends against SCTP buffered_amount (VA-105)' (#109) from fix/VA-105-rtc-datachannel-backpressure into main
6ceafe2fix(rtc): pace data-channel sends against SCTP buffered_amount
a67900dMerge pull request 'feat(kvm): DRM/KMS scanout capture via gbm readback (VA-104 part 2)' (#108) from fix/VA-104-drm-egl-readback into main
e26fd95fix(kvm): split uinput into separate pointer and keyboard devices
92b1f07feat(kvm): DRM/KMS scanout capture via gbm readback (VA-104)
2cc0d6bMerge pull request 'feat(kvm): DRM/KMS scanout enumeration + capture probe (VA-104)' (#107) from fix/VA-104-drm-kms-capture into main
2db3417feat(kvm): DRM/KMS scanout enumeration + capture probe (VA-104)
6059f3cMerge pull request 'feat(kvm): unattended Wayland input via uinput (VA-104 part 1)' (#106) from fix/VA-104-drm-kms-uinput-wayland into main
e43a5d0feat(kvm): unattended Wayland input via uinput (pointer + keyboard)
8bba40cMerge pull request 'fix(agent): Desktop tab capture/WebRTC + cross-device self-update (VA-103)' (#105) from fix/VA-103-desktop-tab-session-fixes into main
b6ec697fix(update): copy-fallback for cross-device binary swap
e9c8330fix(agent): unblock Desktop tab capture and WebRTC data channel
cf14cb3Merge pull request 'fix(release): add --build to create-release compose run' (#104) from fix/VA-102-create-release-build-flag into main
874ae88fix(release): add --build to create-release compose run
4920866Merge pull request 'fix(kvm): stop SIGBUS core dump in PipeWire screencast teardown' (#103) from fix/VA-92-pipewire-teardown-sigbus into main
d5443dcfix(kvm): stop SIGBUS core dump in PipeWire screencast teardownDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)