fix(agent): Desktop tab capture/WebRTC + cross-device self-update (VA-103) #105
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/VA-103-desktop-tab-session-fixes"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes surfaced while getting the Desktop tab working against a live deployment. Tracked in #VA-103. Two commits.
fix(agent): unblock Desktop tab capture and WebRTC data channel
active_session.rs): resolveXAUTHORITYfrom the running X server's-authargument via/proc/<pid>/cmdline. An SDDM greeter (cookie under/run/sddm/xauth_*) previously resolved toNone, so X11 capture could not authenticate to:0and the tab was black. Also corrected docs that mislabeled a greeter asNoActiveSession(a root agent attaches to the greeter for unattended pre-login access).vervain-agent-rtc): switch the answerer toMulticastDnsMode::QueryOnlyso a browser's<uuid>.localhost candidates are resolved rather than discarded.Disabledleft zero remote candidates and ICE never paired on a LAN. Adds a regression test.tunnel.rs): callStreamState::invalidate()on both WebRTC transport transitions (WS to data channel, and failback) so a static screen still ships a full keyframe over the newly active transport instead of leaving the viewer black.main.rs): the defaultEnvFilterusedvervain-agent=debug(hyphen) which never matched the crate targetvervain_agent, silently suppressing the agent's owndebug!. Corrected tovervain_agent.justfile):build-releasecopies the release binaries out of thedev-vervain-agent-targetnamed volume to./dist, which is otherwise invisible from the host.fix(update): copy-fallback for cross-device binary swap
swap_in_placeused a barestd::fs::rename, which failsEXDEVwhen the staged update and the target are on different filesystems (e.g. staged under/tmp, applied to/usr/local/bin). Adds an EXDEV fallback: copy into a temp in the target's own directory, then atomic-rename, preserving the atomic replace and the exec bit. Adds unit tests.Verification
just pre-commitgreen (fmt, clippy--deny warnings, build, workspace tests, Windows check, TPM test). The capture and WebRTC fixes were confirmed on live hosts; the EXDEV fallback was exercised across a real filesystem boundary.Not included (follow-up)
The greeter/X11 path here only covers the pre-login case. A logged-in user on these hosts is a KWin Wayland session, whose consent-free capture needs a root-level DRM/KMS scanout backend plus
uinputinjection. That is planned in #VA-104.