feat(tunnel): VNC bridge tunnel mode (VA-19) #19
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/vnc-bridge-va-19"
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?
Summary
Closes VA-19. Adds
USAGE_VNC = 6to the rendezvous tunnel dispatcher. On open, the agent picks a free ephemeral port on 127.0.0.1, spawnsx11vnc(X11) orwayvnc(Wayland) bound to loopback, waits up to 5 s for the helper to accept, and then proxies bytes both ways between the relay WS and the helper's TCP socket. Helper selection is environment-driven;WAYLAND_DISPLAYwins overDISPLAYbecause Plasma-on-Wayland hosts often still export an XwaylandDISPLAY.The agent never speaks RFB. Auth is the rendezvous tunnel's own auth plus the loopback bind; helpers run with
-nopw/ no built-in auth.What's in the diff
crates/meshagent/src/host/vnc.rs(new): helper detection, ephemeral-port pick, helper spawn withkill_on_drop, readiness poll, and the bidirectional pump (run+ the standalonepumpfor tests).crates/meshagent/src/host/tunnel.rs:USAGE_VNCconstant, dispatch arm, docstring entry, andpub(super) control_echoso the new module reuses the existing rtt-probe parser. Also adds#![allow(clippy::doc_overindented_list_items)]at the module level to unblock CI (clippy 1.94 flags the hand-alignedn -> ...list in the crate docstring; reformatting would obscure the layout).crates/meshagent/src/host/mod.rs: register the new module.README.md: new "Runtime dependencies" section listingx11vnc/wayvncas optional per-tunnel-mode helpers.Test plan
cargo test --workspace --lib(17 lib tests + 7 new vnc tests pass).cargo clippy --workspace --all-targets -- --deny warnings(clean).cargo fmt --all --check(clean).just pre-commit(full docker check: fmt + clippy + build + tests, all green).USAGE_VNC = 6tunnel.