• v0.5.0 d420ab6c79

    v0.5.0
    Some checks failed
    Publish crates / cargo publish (Forgejo Cargo registry) (push) Successful in 13s
    Build Linux package / Build vervain-agent and publish generic package (push) Successful in 21m48s
    Check / fmt + clippy + tests (push) Successful in 24m50s
    Build Windows agent / Cross-compile, sign, and publish vervain-agent.exe (push) Successful in 32m56s
    Build macOS package / Build vervain-agent (macOS) and publish generic package (push) Has been cancelled
    Check macOS features / cargo check --features agent-gui (aarch64-apple-darwin) (push) Has been cancelled
    Check macOS features / cargo check --features agent-gui (x86_64-apple-darwin) (push) Has been cancelled
    Stable

    David released this 2026-08-10 05:36:48 +02:00 | 0 commits to main since this release

    Changelog

    d420ab6 Merge pull request 'Release v0.5.0' (#158) from release/v0.5.0 into main
    1915288 Merge branch 'main' into release/v0.5.0
    e0d898e Merge pull request 'fix(release): guard the hoisted git remote get-url call' (#159) from fix/VA-146-create-release-rerun-guard into main
    45ca27f fix(release): guard the hoisted git remote get-url call
    680cd23 fix(release): make create-release re-runnable
    38b5ec0 Release v0.5.0
    2c4598f Merge pull request 'fix(ci): run publish-crates on the dev runner image (VA-145)' (#157) from fix/VA-145-publish-crates-dev-runner into main
    e5a48de fix(ci): run publish-crates on the dev runner image

    Downloads
  • v0.4.2 71d0b7f8d0

    v0.4.2
    Some checks failed
    Publish crates / cargo publish (Forgejo Cargo registry) (push) Failing after 10s
    Build Linux package / Build vervain-agent and publish generic package (push) Successful in 5m10s
    Check / fmt + clippy + tests (push) Successful in 7m28s
    Build Windows agent / Cross-compile, sign, and publish vervain-agent.exe (push) Successful in 8m4s
    Check macOS features / cargo check --features agent-gui (aarch64-apple-darwin) (push) Has been cancelled
    Check macOS features / cargo check --features agent-gui (x86_64-apple-darwin) (push) Has been cancelled
    Build macOS package / Build vervain-agent (macOS) and publish generic package (push) Has been cancelled
    Stable

    David released this 2026-08-08 03:00:12 +02:00 | 8 commits to main since this release

    Changelog

    71d0b7f Merge pull request 'Release v0.4.2' (#156) from release/v0.4.2 into main
    5863cb2 Release v0.4.2
    e0f41a5 Merge pull request 'fix(release): warm cargo cache and roll back a failed release' (#155) from fix/VA-144-warm-cargo-cache-and-rollback into main
    e300f90 fix(release): warm cargo cache and roll back a failed release
    abe1aea Merge pull request 'feat(protocol): advertise VNC and MCP capability bits' (#153) from feat/VA-141-vnc-mcp-capability-bits into main
    316427a feat(protocol): advertise VNC and MCP capability bits
    1a76d82 Merge pull request 'feat(protocol): native macOS arm64 support, Vervain-native AgentId' (#152) from feat/macos-arm64-agent-id into main
    4679268 feat(protocol): native macOS arm64 support, Vervain-native AgentId
    2435e13 Merge pull request 'docs: macOS on-device validation runbook (VA-139)' (#151) from docs/VA-139-macos-validation-runbook into main
    b37404e docs: add macOS on-device validation runbook (VA-139)
    c0703e2 Merge pull request 'fix(kvm): gate DRM/KMS scanout capture off by default (VA-109)' (#150) from fix/VA-109-gate-drm-scanout into main
    93b08bb fix(kvm): gate DRM/KMS scanout capture off by default (VA-109)
    ce2953d Merge pull request 'ci: compile-check the agent-gui feature on macOS (VA-55 follow-up)' (#149) from chore/VA-55-macos-feature-ci into main
    e8abb70 Merge pull request 'fix(tunnel): inject macOS desktop-tunnel keystrokes instead of dropping them (VA-138)' (#148) from fix/VA-138-macos-tunnel-keysym into main
    43314fb ci: compile-check the agent-gui feature on macOS (VA-55 follow-up)
    47a08bd fix(tunnel): inject macOS desktop-tunnel keystrokes instead of dropping them (VA-138)
    d34cdf7 Merge pull request 'feat(gui): macOS assistance-GUI backend (status item, consent, NSWindowSharingNone) (VA-55)' (#147) from feat/VA-55-macos-assistance-gui into main
    4fadd7c feat(gui): macOS assistance-GUI backend (status item, consent, NSWindowSharingNone) (VA-55)

    Downloads
  • v0.4.1 50a7fa94d7

    v0.4.1
    All checks were successful
    Publish crates / cargo publish (Forgejo Cargo registry) (push) Successful in 27s
    Build Linux package / Build vervain-agent and publish generic package (push) Successful in 4m59s
    Check / fmt + clippy + tests (push) Successful in 6m7s
    Build Windows agent / Cross-compile, sign, and publish vervain-agent.exe (push) Successful in 7m45s
    Build macOS package / Build vervain-agent (macOS) and publish generic package (push) Successful in 20m25s
    Stable

    David released this 2026-07-15 19:10:24 +02:00 | 26 commits to main since this release

    Changelog

    50a7fa9 Merge pull request 'Release v0.4.1' (#146) from release/v0.4.1 into main
    a99c6f8 Release v0.4.1
    8f8be9f Merge pull request 'fix(release): bump version with a surgical edit so create-release keeps Cargo.toml comments (VA-137)' (#145) from fix/VA-137-release-preserve-comments into main
    7b75d32 fix(release): bump version with a surgical edit so create-release keeps Cargo.toml comments (VA-137)
    3584e6a Merge pull request 'fix(kvm): declare tokio sync + fs features so the crate publishes standalone (VA-135)' (#144) from fix/VA-135-kvm-tokio-features into main
    69ac708 fix(kvm): declare tokio sync + fs features so the crate publishes standalone (VA-135)
    a3b0279 Merge pull request 'fix(ci): serialize build-macos release runs so the v* tag build is not dropped (VA-136)' (#143) from fix/VA-136-build-macos-concurrency into main
    3135392 fix(ci): serialize build-macos release runs so the v* tag build is not dropped (VA-136)
    3b74e5b Merge pull request 'feat(kvm): macOS KVM backend (VA-93)' (#142) from feat/VA-93-macos-kvm into main
    c851756 feat(kvm): macOS KVM backend (VA-93)
    632db72 Merge pull request 'fix(release): restore VA-92 keep-debuginfo comment' (#141) from fix/restore-release-profile-comment into main
    e53c935 fix(release): restore VA-92 keep-debuginfo comment stripped by release recipe

    Downloads
  • v0.4.0 d51ecd65c5

    v0.4.0
    Some checks failed
    Check / fmt + clippy + tests (push) Successful in 6m36s
    Publish crates / cargo publish (Forgejo Cargo registry) (push) Failing after 3s
    Build Linux package / Build vervain-agent and publish generic package (push) Successful in 3m39s
    Build Windows agent / Cross-compile, sign, and publish vervain-agent.exe (push) Successful in 6m33s
    Build macOS package / Build vervain-agent (macOS) and publish generic package (push) Successful in 18m38s
    Stable

    David released this 2026-07-15 03:06:05 +02:00 | 38 commits to main since this release

    Changelog

    d51ecd6 Merge pull request 'Release v0.4.0' (#128) from release/v0.4.0 into main
    d3df54d Merge branch 'main' into release/v0.4.0
    d7ffb28 Merge pull request 'fix(install): silence best-effort launchctl stderr on macOS uninstall' (#140) from fix/VA-89-quiet-launchctl into main
    32b918b fix(install): silence best-effort launchctl stderr on macOS uninstall
    7daf40d Merge 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
    2037b93 Merge pull request 'feat(install): macOS launchd installer + Install/Uninstall routing (VA-89)' (#138) from feat/VA-89-macos-launchd-installer into main
    03bfc24 ci(macos): native build+publish workflow and runner/build docs (VA-89, VA-90)
    42632bf feat(install): macOS launchd installer + Install/Uninstall routing (VA-89)
    44444d1 Merge pull request 'test(lan): end-to-end mTLS + capability-gate integration test (VA-8)' (#137) from test/VA-8-lan-integration into main
    a395bd2 test(lan): end-to-end mTLS + capability-gate integration test (VA-8)
    71ea1e6 Merge pull request 'feat(lan): mTLS LAN control-plane listener, read-only (VA-8)' (#136) from feat/VA-8-lan-listener into main
    5f40883 feat(lan): mTLS LAN control-plane listener, read-only (VA-8)
    2498ad4 Merge pull request 'feat(dispatch): apply server-pushed agentconfig (VA-130)' (#135) from feat/VA-130-agentconfig into main
    b090602 feat(dispatch): apply server-pushed agentconfig (VA-130)
    94d5bed Merge pull request 'feat(host): populate OS name on macOS via sw_vers' (#134) from feat/macos-osinfo into main
    d7c49bf feat(host): populate OS name on macOS via sw_vers
    d810a4c Merge pull request 'feat(host): populate sysinfo and cpuinfo on macOS (VA-133)' (#133) from feat/VA-133-macos-sysinfo-cpuinfo into main
    715f8db feat(host): populate sysinfo and cpuinfo on macOS (VA-133)
    e22c4d2 Merge 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
    fd9e65f fix(mcp): dial and serve the MCP gateway tunnel (VA-131, agent half)
    c15d2b3 Merge pull request 'fix(dispatch): execute runcommands shell actions (VA-132)' (#131) from fix/VA-132-runcommands-dispatch into main
    e032b28 fix(dispatch): execute runcommands shell actions (VA-132)
    8283f0c Merge 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
    8fc39bf chore(macos): add just build-macos native build recipe
    ff5fcb8 feat(macos): compile the agent binary for x86_64-apple-darwin
    a23b136 Merge pull request 'docs: add CLAUDE.md for Claude Code' (#129) from docs/add-claude-md into main
    bef1c3c docs: add CLAUDE.md for Claude Code
    2055481 Release v0.4.0
    c85667d Merge pull request 'feat(kvm): layout-aware desktop key protocol' (#127) from feat/VA-126-layout-aware-desktop-keys into main
    16ddb06 feat(kvm): layout-aware desktop key protocol
    c54c125 Merge 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
    fbd8add fix(kvm): exclude the BGRX pad byte from tile change-detection
    1c80e74 Merge pull request 'feat(ci): sign and publish the Windows agent' (#125) from feat/VA-123-windows-agent-sign-publish into main
    b8808e8 feat(ci): sign and publish the Windows agent
    512ef56 Merge pull request 'feat(ci): cross-compile a 64-bit Windows agent build' (#124) from feat/VA-122-windows-cross-compile-ci into main
    9210d54 feat(ci): cross-compile a 64-bit Windows agent build
    4f29e19 Merge pull request 'fix(kvm): route explicit-Linear scanout reads through gbm' (#123) from fix/VA-121-vram-linear-scanout-through-gbm into main
    edae506 fix(kvm): route explicit-Linear scanout reads through gbm
    dfcb35a Merge pull request 'feat(power): add Sleep action_kind to host_power' (#122) from feat/VA-120-host-power-sleep into main
    9c9bbc5 feat(power): add Sleep action_kind to host_power
    a4af88e Merge 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
    0497cfa fix(kvm): treat an absent display as retryable in capture loops
    eabb1fc Merge pull request 'fix(input): route MCP + VNC pointer moves through shared backend selector' (#120) from fix/VA-118-shared-pointer-injection into main
    cbfe4ab fix(input): route MCP + VNC pointer moves through shared backend selector
    38f0e83 Merge pull request 'fix(desktop): scale HiDPI pointer coords into logical space (VA-111)' (#119) from fix/VA-111-hidpi-pointer-scale into main
    cc37e80 fix(desktop): scale HiDPI pointer coords into logical space (VA-111)
    66d4372 Merge pull request 'feat(update): compress agent transport with zstd' (#118) from feat/VA-116-transport-compression into main
    16aef73 feat(update): compress agent transport with zstd
    07357f0 Merge 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
    5fda6aa fix(desktop): probe KVM backend once, fail closed on headless host
    cc365ce Merge pull request 'feat(package): publish semver sidecar alongside each agent binary' (#116) from feat/VA-114-version-sidecar into main
    df2cef6 Merge branch 'main' into feat/VA-114-version-sidecar
    9c0b891 Merge pull request 'docs(agent): drop stale --system from install doc examples' (#115) from fix/VA-113-stale-system-flag-install-doc-comments into main
    20ead95 feat(package): publish semver sidecar alongside each agent binary
    bc7af8b docs(agent): drop stale --system from install doc examples
    d8987d3 Merge 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
    1cdebd3 fix(kvm): fail loudly on stale X11 cookie and re-resolve session (VA-112)
    c946a46 Merge pull request 'fix(kvm): composite DRM cursor plane into scanout capture (VA-110)' (#113) from fix/VA-110-drm-cursor-overlay into main
    ee9a470 fix(kvm): composite DRM cursor plane into scanout capture (VA-110)
    693beba Merge 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
    94b2cba fix(kvm): one desktop-tab owner per seat via advisory lock (VA-108)
    e2b11f9 Merge pull request 'fix(kvm): follow seat0 active session across login/logout (VA-107)' (#111) from fix/VA-107-session-follow into main
    590ea12 fix(kvm): follow seat0 active session across login/logout (VA-107)
    5796ed2 Merge 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
    6ad8677 fix(kvm): route no-modifier DRM scanout through gbm, not raw mmap
    16fa2bb Merge 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
    6ceafe2 fix(rtc): pace data-channel sends against SCTP buffered_amount
    a67900d Merge 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
    e26fd95 fix(kvm): split uinput into separate pointer and keyboard devices
    92b1f07 feat(kvm): DRM/KMS scanout capture via gbm readback (VA-104)
    2cc0d6b Merge pull request 'feat(kvm): DRM/KMS scanout enumeration + capture probe (VA-104)' (#107) from fix/VA-104-drm-kms-capture into main
    2db3417 feat(kvm): DRM/KMS scanout enumeration + capture probe (VA-104)
    6059f3c Merge pull request 'feat(kvm): unattended Wayland input via uinput (VA-104 part 1)' (#106) from fix/VA-104-drm-kms-uinput-wayland into main
    e43a5d0 feat(kvm): unattended Wayland input via uinput (pointer + keyboard)
    8bba40c Merge 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
    b6ec697 fix(update): copy-fallback for cross-device binary swap
    e9c8330 fix(agent): unblock Desktop tab capture and WebRTC data channel
    cf14cb3 Merge pull request 'fix(release): add --build to create-release compose run' (#104) from fix/VA-102-create-release-build-flag into main
    874ae88 fix(release): add --build to create-release compose run
    4920866 Merge pull request 'fix(kvm): stop SIGBUS core dump in PipeWire screencast teardown' (#103) from fix/VA-92-pipewire-teardown-sigbus into main
    d5443dc fix(kvm): stop SIGBUS core dump in PipeWire screencast teardown

    Downloads
  • v0.3.0 1b99f6161c

    v0.3.0
    All checks were successful
    Publish crates / cargo publish (Forgejo Cargo registry) (push) Successful in 25s
    Build Linux package / Build vervain-agent and publish generic package (push) Successful in 2m49s
    Check / fmt + clippy + tests (push) Successful in 13m29s
    Stable

    David released this 2026-07-03 16:41:30 +02:00 | 119 commits to main since this release

    Changelog

    1b99f61 Merge pull request 'Release v0.3.0' (#102) from release/v0.3.0 into main
    fbdaf96 Release v0.3.0
    100ba7f Merge pull request 'fix(net): detect half-open control connection via independent keepalive' (#101) from fix/VA-101-keepalive-half-open-detection into main
    8f388c4 fix(net): detect half-open control connection via independent keepalive
    3b62fb3 Merge pull request 'feat(coreinfo): emit git hash and build date, use semver in value' (#100) from feat/VA-99-coreinfo-githash-builddate into main
    5a77d85 feat(coreinfo): emit git hash and build date, use semver in value
    f9dc413 Merge pull request 'feat(cargo): publish crates to public psa-systems registry' (#99) from feat/VA-98-publish-crates-public into main
    d303c91 feat(cargo): publish crates to public psa-systems registry
    85507a4 Merge pull request 'feat(update): session-keyed transfers + progress events (agent, VA-97)' (#98) from feat/VA-97-update-progress-session into main
    86960f0 Merge branch 'main' into feat/VA-97-update-progress-session
    2eeff88 feat(update): session-keyed transfers + progress events (agent side)
    5d6757f Merge pull request 'fix(update): split End-without-Begin from hash failure; coalesce drop-block log spam (VA-96)' (#97) from fix/VA-96-self-update-no-session into main
    5e1fb80 fix(update): split End-without-Begin from hash failure; coalesce drops
    fbf4735 Merge pull request 'fix(release): regenerate and stage Cargo.lock in create-release' (#96) from fix/VA-95-create-release-stage-lock into main
    030c18f Merge branch 'main' into fix/VA-95-create-release-stage-lock
    56c103d fix(release): regenerate and stage Cargo.lock in create-release

    Downloads
  • v0.2.0 8031d470d1

    v0.2.0
    Some checks failed
    Publish crates / cargo publish (Forgejo Cargo registry) (push) Successful in 58s
    Check / fmt + clippy + tests (push) Has been cancelled
    Build Linux package / Build vervain-agent and publish generic package (push) Successful in 6m42s
    Stable

    David released this 2026-07-01 00:35:37 +02:00 | 135 commits to main since this release

    Changelog

    8031d47 Merge pull request 'Release v0.2.0' (#95) from release/v0.2.0 into main
    9bb0967 Release v0.2.0
    7082f4a Merge pull request 'feat(agent): report running semver on the control channel (VA-94)' (#94) from feat/VA-94-report-running-semver into main
    11cba48 feat(agent): report running semver on the control channel
    77cdbd9 Merge pull request 'feat(agent): attach to active X11 session for the desktop tab (VA-86)' (#93) from feat/VA-86-x11-session-attach into main
    7f0978e feat(agent): attach to active X11 session for the desktop tab
    9c37bd5 Merge pull request 'feat(kvm): report host display manager in kvm_displays reply' (#92) from feat/VA-91-display-manager-detection into main
    63d3db3 feat(kvm): report host display manager in kvm_displays reply
    20ab582 Merge pull request 'feat(gui): Windows assistance GUI - named-pipe IPC, Session 0 launch, capture exclusion (VA-56)' (#91) from feat/VA-56-windows-assistance-gui into main
    d20e86c feat(gui): Windows assistance GUI - named-pipe IPC, Session 0 launch, capture exclusion (VA-56)
    ca46ca9 Merge pull request 'feat(agent): remote self-uninstall over the control channel (VA-87)' (#90) from feat/VA-87-remote-self-uninstall into main
    d820695 feat(agent): remote self-uninstall over the control channel (VA-87)
    4b8a69c Merge pull request 'feat(agent): run system install as root and attach to active session (VA-84)' (#89) from feat/VA-84-system-root-session-attach into main
    bb58cb3 feat(agent): run system install as root and attach to active session (VA-84)
    8359b0f Merge pull request 'feat(agent): Wayland scroll via portal NotifyPointerAxisDiscrete (VA-83)' (#88) from fix/VA-83-wayland-scroll-axis into main
    28c0cb5 feat(agent): Wayland scroll via portal NotifyPointerAxisDiscrete (VA-83)
    be749fe Merge pull request 'feat(agent): Wayland screen capture via dlopen PipeWire (VA-82)' (#87) from fix/VA-82-pipewire-dlopen into main
    4afdb20 Merge branch 'main' into fix/VA-82-pipewire-dlopen
    e892215 feat(agent): Wayland screen capture via dlopen PipeWire (no hard link)
    0431c4b feat(agent): hand-rolled SPA POD codec for dlopen PipeWire consumer
    addfd09 Merge pull request 'fix(package): stable tracks SemVer releases, latest tracks main' (#85) from fix/VA-78-agent-channels-stable-latest into main
    e4648a0 fix(package): stable tracks SemVer releases, latest tracks main
    041492a Merge pull request 'fix(agent): stop silent black X11 capture fallback on Wayland (VA-80)' (#84) from fix/VA-80-wayland-capture into main
    d5c66a6 Merge pull request 'test(kvm): prove tile stream ships only changed tiles (idle => zero)' (#83) from verify/VA-79-tile-diff-changed-only into main
    7a3b4e1 test(kvm): prove tile stream ships only changed tiles (idle => zero)
    2a7e436 fix(agent): stop silent black X11 capture fallback on Wayland
    eadcd78 Merge pull request 'fix(agent): present client cert on relay dial (relay is mTLS-only) (VA-77)' (#82) from fix/VA-77-relay-mtls-client-cert into main
    89432f1 fix(agent): present client cert on relay dial (relay is mTLS-only)
    52618a9 Merge pull request 'fix(agent): hand-roll wss:// relay dial with pinned-CA TLS (VA-76)' (#81) from fix/VA-76-relay-wss-tls-dial into main
    ebc14c7 fix(agent): hand-roll wss:// relay dial with pinned-CA TLS
    530c4cb Merge pull request 'chore: Sync the checks and justfile recipes' (#80) from chore/sync-checks-justfile into main
    2a2cc26 Merge branch 'main' into chore/sync-checks-justfile
    74cd41e Merge pull request 'feat(agent): wipe spent enrollment material; install bundle via stdin (VA-75)' (#79) from feat/VA-75-enroll-wipe-stdin into main
    4f90782 feat(agent): wipe spent enrollment material; install bundle via stdin
    2561f71 Merge pull request 'feat(dev): mTLS enrollment dev loop; retire dev-insecure plain-WS' (#78) from feat/VA-74-dev-mtls-enroll-bootstrap into main
    28e7094 feat(dev): mTLS enrollment dev loop; retire dev-insecure plain-WS
    989f141 Merge pull request 'feat(agent): token-bootstrapped mTLS enrollment; remove .vagent + handshake (VA-67)' (#77) from feat/VA-67-token-enroll-mtls into main
    2f19ca9 feat(agent): token-enroll mTLS identity; drop .vagent + handshake
    e14b5e5 Merge pull request 'fix(build): install make in release builder for vendored openssl' (#76) from fix/VA-73-builder-install-make into main
    7d3d92e fix(build): install make in release builder for vendored openssl
    3a0df85 Merge pull request 'fix(terminal): skip PTY tests when child spawn fails, not just openpty (VA-71)' (#75) from chore/checks-workflow-776d46a3 into main
    7c14c12 fix(terminal): skip PTY tests when child spawn fails, not just openpty (VA-71)
    776d46a Merge pull request 'feat(store): consolidate config + data + identity into encrypted SQLite (VA-68)' (#74) from feat/VA-68-encrypted-sqlite-store into main
    e89e652 test(netprobe): use reserved address for unreachable-port probe (VA-69)
    32f1c19 feat(store): consolidate config + data + identity into encrypted SQLite (VA-68)
    065e299 Merge pull request 'fix(dev): rename dev seed to .vagent and target /api/v1/agent (VA-66)' (#73) from fix/VA-66-dev-vagent-rename-and-path into main
    5092263 Merge pull request 'fix(dev): complete .vagent rename and point dev seed at /api/v1/agent (VA-66)' (#72) from fix/VA-66-dev-tooling-vagent-rename-cert-pin into main
    b6dd4db fix(dev): rename dev seed to .vagent and target /api/v1/agent
    58662b0 fix(dev): complete .vagent rename and point dev seed at /api/v1/agent (VA-66)
    06bbb76 Merge pull request 'docs(distribution): name real fetcher owner psa-systems-private' (#71) from fix/VA-65-fetcher-owner-doc into main
    d282fa8 docs(distribution): name real fetcher owner psa-systems-private
    3baff72 chore: Sync the checks and justfile recipes
    765bfcf Merge pull request 'fix(ci): derive publish channel from trigger to end 409 race' (#69) from fix/GOV-14-trigger-derived-publish-channels into main
    7373767 Merge branch 'main' into fix/GOV-14-trigger-derived-publish-channels
    4a87812 Merge pull request 'refactor: purge mesh/MeshCentral naming, rename .msh to .vagent (VS-42)' (#70) from feature/refactor-vervain into main
    596b15d refactor: purge mesh/MeshCentral naming, rename .msh to .vagent
    2e8fc0b fix(ci): derive publish channel from trigger to end 409 race
    d958b79 Merge pull request 'fix(terminal): skip PTY tests when no PTY can be allocated (VA-64)' (#68) from fix/VA-64-pty-tests-skip-without-pty into main
    cbc1f2c Merge pull request 'docs(distribution): publish the real agent signing recipient' (#67) from docs/fill-signing-recipient into main
    8c805bc fix(terminal): skip PTY tests when no PTY can be allocated
    592747d docs(distribution): publish the real agent signing recipient
    17a28ff Merge pull request 'feat(signing): sign agent binaries with age key + XEdDSA (VA-62)' (#66) from feat/VA-62-age-xeddsa-signer into main
    f76467b fix(signing): harden secret-key handling from review
    b275e73 feat(signing): sign agent binaries with age key + XEdDSA
    abfcc01 Merge pull request 'VA-60: publish minisign-signed meshagent- matching the server fetcher contract' (#65) from feat/VA-60-publish-meshagent into main
    462f620 docs(fetcher): correct VERVAIN_AGENT_FETCHER_* env names against the server (VA-60)
    1963253 feat(ci): publish meshagent- matching the server fetcher contract (VA-60)
    52cdfcf Merge pull request 'VA-58: architect agent build + minisign signing pipeline (key custody, deployment models, rotation)' (#64) from docs/VA-58-signing-architecture into main
    8a4b59e feat(signing): vervain-agent signing-keygen + rotation runbook (VA-58)
    5c7c7fb docs(signing): architect agent build + minisign signing pipeline (VA-58)
    d14d4d8 Merge pull request 'feat(ci): publish minisign-signed meshagent- to the Forgejo package' (#63) from feat/VA-57-minisign-signed-packages into main
    5cf2260 feat(ci): publish minisign-signed meshagent- to the Forgejo package
    5b5b6dd Merge pull request 'feat(justfile): add dev-clean / dev-clean-all teardown recipes' (#62) from feat/dev-clean-recipes into main
    e7d67b0 feat(justfile): add dev-clean / dev-clean-all teardown recipes
    e5a348f Merge pull request 'VA-24: native assistance-mode GUI in egui (Linux first)' (#61) from feat/VA-24-agent-gui into main
    2f2a921 fix(gui): address VA-24 review findings
    da2f590 feat(gui): native assistance-mode GUI in egui, Linux first (VA-24)
    f830087 Merge pull request 'VA-14: TPM 2.0-backed agent identity (Linux)' (#60) from feat/VA-14-tpm-identity into main
    326e675 fix(identity): address VA-14 TPM review findings
    c054221 feat(identity): TPM 2.0-backed agent key on Linux (VA-14)
    c19462d Merge pull request 'VA-53: idempotent buildx builder setup in build-package.yml' (#59) from fix/VA-53-buildx-idempotent into main
    2eed1fc fix(ci): make the buildx builder setup idempotent across runs
    ef48f99 Merge pull request 'VA-13: apply staged self-update on Windows' (#58) from feat/VA-13-windows-self-update into main
    ede7b46 fix(update): address VA-13 Windows self-update review findings
    0cd08d7 Merge pull request 'VA-11: Windows KVM via DXGI Desktop Duplication + SendInput' (#57) from feat/VA-11-windows-kvm into main
    e4fd54a feat(update): apply staged self-update on Windows (VA-13)
    f736d37 fix(kvm): address VA-11 Windows review findings
    960fb51 docs(roadmap): mark VA-11 Windows KVM implemented
    181b3bd feat(kvm): Windows KVM via DXGI Desktop Duplication + SendInput (VA-11)
    edf1356 Merge pull request 'VA-52: catch a stale Cargo.lock in the PR check (--locked)' (#56) from fix/VA-52-ci-locked-build into main
    280471b fix(ci): build with --locked in the PR check to catch a stale Cargo.lock
    bf96d55 Merge pull request 'VA-10: WebRTC data-channel tunnel upgrade' (#55) from feat/VA-10-webrtc-datachannel into main
    494731f fix(rtc): address VA-10 review findings
    993c3f0 feat(rtc): WebRTC data-channel tunnel upgrade (VA-10)
    f747915 Merge pull request 'VA-9: host the agent as a Windows service (SCM)' (#54) from feat/VA-9-windows-service into main
    59c0a98 fix(windows): address VA-9 service review findings
    b6bfd58 feat(windows): host the agent as a Windows service (SCM)
    573d4a4 Merge pull request 'VA-51: make generic package upload idempotent on 409' (#53) from fix/VA-51-generic-upload-idempotent into main
    6dbc7ad fix(ci): make generic package upload idempotent on 409

    Downloads
  • v0.1.0 ef8cad339c

    v0.1.0
    Some checks failed
    Publish crates / cargo publish (Forgejo Cargo registry) (push) Successful in 12s
    Build Linux package / Build vervain-agent and publish generic package (push) Failing after 1m4s
    Check / clippy + fmt + tests (push) Successful in 1m48s
    Stable

    David released this 2026-06-08 16:43:15 +02:00 | 234 commits to main since this release

    Changelog

    b1fb44b Merge pull request 'Release v0.1.0' (#32) from release/v0.1.0 into main
    d2d861c Release v0.1.0
    7e9de03 Merge pull request 'feat(release): adopt standard create-release recipe + workflow (VA-32)' (#28) from feat/create-release-va-32 into main
    79e6197 Merge branch 'main' into feat/create-release-va-32
    058a07e Merge pull request 'docs: sync docs with encrypted settings store (VA-33)' (#31) from docs/encrypted-settings-store-VA-33 into main
    c407830 docs: sync README, ROADMAP, design doc with the encrypted settings store (VA-33)
    673bd66 Merge pull request 'docs(config): design encrypted local-settings store (VA-29)' (#29) from plan/encrypted-settings-store-VA-29 into main
    89946be Merge pull request 'feat(config): encrypted local-settings store replacing .msh (VA-33)' (#30) from feat/encrypted-settings-store-VA-33 into main
    8f2f1ea fix(config): address VA-33 review (read-only check, no orphan secret)
    81b1f27 feat(config): encrypted local-settings store replacing .msh (VA-33)
    42270ca docs(config): point design doc at impl ticket VA-33
    5bc5efc docs(config): design encrypted local-settings store (VA-29)
    b6c270a feat(release): adopt standard create-release recipe + workflow (VA-32)
    625991d Merge pull request 'feat(justfile): add group attrs (DEV-331)' (#27) from feat/justfile-groups-DEV-331 into main
    df443c4 feat(justfile): add group attrs (DEV-331)
    63102ca Merge pull request 'chore(justfile): group recipes for just --list (VA-31)' (#26) from chore/justfile-groups-va-31 into main
    49408c4 chore(justfile): group recipes for just --list (VA-31)
    be05181 Merge pull request 'feat(mcp,kvm): publish to Forgejo Cargo registry + image attachments' (#25) from feat/cargo-registry-publish into main
    d5373ac feat(mcp,kvm): publish to Forgejo Cargo registry + image attachments
    6618c7a Merge pull request 'chore(rebrand): replace mesh with vervain (VA-28)' (#24) from chore/vervain-rebrand-va-28 into main
    9d101ef chore(rebrand): replace mesh with vervain (VA-28)
    5dbe307 Merge pull request 'feat(mcp): mutating tools + consent + audit (VA-27)' (#23) from feat/mcp-mutating-va-27 into main
    95634d1 feat(mcp): mutating tools + consent + audit (VA-27)
    bacea99 Merge pull request 'feat(vnc-native): in-process RFB 003.008 server (VA-21)' (#21) from feat/vnc-native-va-21 into main
    fd5df55 Merge remote-tracking branch 'origin/main' into feat/vnc-native-va-21
    d8f4c96 Merge pull request 'feat(tunnel): MCP read-only server tunnel mode (VA-26)' (#22) from feat/mcp-readonly-va-26 into main
    bcb619a feat(tunnel): MCP read-only server tunnel mode (VA-26)
    ea1ab27 feat(vnc-native): in-process RFB 003.008 server (VA-21)
    1bd398f Merge pull request 'feat(tunnel): RDP bridge tunnel mode (VA-20)' (#20) from feat/rdp-bridge-va-20 into main
    1aeb2fc Merge branch 'main' into feat/rdp-bridge-va-20
    482a7b1 feat(tunnel): RDP bridge tunnel mode (VA-20)
    678736d Merge pull request 'feat(tunnel): VNC bridge tunnel mode (VA-19)' (#19) from feat/vnc-bridge-va-19 into main
    acf14d1 feat(tunnel): VNC bridge tunnel mode (VA-19)
    cfeae7c Merge pull request 'fix(tests): make services + tcpforward tests robust under DinD' (#18) from fix/test-flakes-container-env into main
    ad54bc1 Merge branch 'main' into fix/test-flakes-container-env
    d342c75 fix(justfile): pass --build to compose run to silence pull-access warning
    591aa63 fix(tests): make services + tcpforward tests robust under DinD
    6fdeaf7 Merge pull request 'feat(process): resolve uid -> username from /etc/passwd in processlist (VA-5)' (#16) from feat/uid-to-username-va-5 into main
    3ba0291 Merge branch 'main' into feat/uid-to-username-va-5
    bee4096 Merge pull request 'docs(tunnel): refresh stale TODO markers on usage-mode docstring (VA-1, VA-3, VA-4)' (#17) from docs/tunnel-mode-stale-comments into main
    3b9d90d docs(tunnel): refresh stale (TODO) markers on usage-mode docstring (VA-1, VA-3, VA-4)
    3e6ca5a feat(process): resolve uid -> username from /etc/passwd in processlist (VA-5)
    da0ed3d Merge pull request 'docs: refresh ROADMAP and file outstanding work (VA-1..18)' (#15) from docs/roadmap-refresh-2026-05-16 into main
    0dc99b3 docs: refresh ROADMAP for 2026-05-16 snapshot
    dd8318c Merge pull request 'chore: sync .gitignore with other repos' (#14) from chore/sync-gitignore into main
    8f08594 chore: sync .gitignore with other repos
    aad3ab2 Merge pull request 'chore: add install-hooks + pre-commit recipes' (#13) from chore/pre-commit-hook into main
    c6f009d chore: add install-hooks + pre-commit recipes
    8e81e3c Merge pull request 'ci: build from rust-builder-* (rust 1.94)' (#12) from chore/rust-builder-1.94 into main
    26608d8 ci: build from rust-builder-* (rust 1.94)
    d751f9c Merge pull request 'ci: bump actions/checkout to v5' (#11) from chore/checkout-v5 into main
    1d66c1c ci: bump actions/checkout to v5
    cbcf299 Merge pull request 'chore: display version, git hash, and build date in meshagent' (#10) from chore/version-display into main
    34d23b1 chore: display version, git hash, and build date in meshagent
    804165c Merge pull request 'feat: build meshagent and publish as a Forgejo generic package' (#9) from feat/linux-package-build into main
    c0f4199 feat: build meshagent and publish as a Forgejo generic package
    0c232ab Merge pull request 'fix: silence clippy warnings denied as errors in CI' (#8) from fix/clippy-warnings into main
    9c77181 fix: silence clippy warnings denied as errors in CI
    498a340 Merge pull request 'style: cargo fmt --all' (#7) from fix/ci-docker-check-context into main
    32fe8a7 style: cargo fmt --all
    9c25a43 Merge pull request 'ci: copy source into check image instead of bind-mounting' (#6) from fix/ci-docker-check-context into main
    4597bdd ci: copy source into check image instead of bind-mounting
    77d97e9 Merge pull request 'ci: run checks in Docker' (#5) from ci/docker-check into main
    86839aa ci: run checks in Docker
    f525ed7 Merge pull request 'feat/tunnel-dialer' (#4) from feat/tunnel-dialer into main
    581951d feat: wasm meshcore sandbox + loadcore action
    88736c6 feat(install): production installer (system + per-user) for the agent
    790cf84 chore: ignore run/meshagent-host.db sled scratch dir
    3bf8b18 feat(P11): tunnel files copy + move handlers; comment refreshes
    c61be48 fix(kvm): gate Wayland portal stack behind a wayland-portal cargo feature
    40a5a3c chore(dispatch): refresh OOB-update signing-key doc comment
    7357915 chore(oobupdate): retire stale TODO; document the wiring path
    6ddc994 feat(files): handle uploadhash for resume/skip detection
    d8781ed feat: agent msg handlers for alertbox / messagebox
    1af2279 feat: agent msg handlers for cpuinfo, pskill, openUrl, serviceStart/Stop/Restart
    6c1edb0 feat: msg/getclip + msg/setclip via wl-clipboard / xclip
    8b29509 feat: bump default desktop framerate from 5fps to 30fps; honour SPA frametimer
    fbb0e0f feat: PipeWire ScreenCast consumer for high-fps Wayland frames
    8cdd292 feat: portal RemoteDesktop input on Wayland (KDE/GNOME mouse + keyboard)
    3d22d89 chore: cache grim-unavailable to silence per-frame fallback log
    a45fbb5 feat: xdg-desktop-portal Screenshot fallback for KDE/GNOME Wayland capture
    dd47ca9 chore: dev-host artifacts move to run-host/
    7b928d5 feat: agent Desktop tunnel via X11 (XTEST input + meshagent_kvm tile streaming)
    5f271fb fix: just dev-host shares container identity so the SPA sees one device
    eabe08a chore: just dev-host runs the agent natively without Docker
    68b3136 feat: full Files panel protocol over relay (mkdir, mkfile, rm, rename, download, upload, find)
    b93230a feat: agent Files panel ls over relay (usage=4, 5)
    a1d2ff4 feat: terminal tunnel honours initial options + xterm.onResize directives
    435c56a fix: agent tunnel terminal drops non-control text instead of piping to PTY
    060a6c5 feat: agent msg/tunnel dialer + Terminal protocol over /meshrelay.ashx
    077ba25 Merge pull request 'feat: agent JSON text-frame dispatch and msg/* handlers' (#3) from feat/agent-msg-dispatch into main
    2a274ad Merge pull request 'chore: re-render meshagent.msh against current dev port (4302)' (#2) from chore/dev-port-fix into main
    2100a61 chore: re-render meshagent.msh against current dev port (4302)
    b5f432c feat: agent JSON text-frame dispatch and msg/* handlers
    356638b Merge pull request 'feat(meshagent): batch agent feature parity pass' (#1) from feat/agent-parity-batch into main
    d9c2783 feat(meshagent): batch agent feature parity pass
    80751a3 feat: Initial commit

    Downloads