feat(gui): Windows assistance GUI - named-pipe IPC, Session 0 launch, capture exclusion (VA-56) #91
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/VA-56-windows-assistance-gui"
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?
What
Brings the assistance-mode GUI to Windows (VA-56), the follow-up to VA-24's Linux slice. The per-user egui process now cross-compiles for
x86_64-pc-windows-gnu, and the Session 0 service launches and drives it.Changes
vervain-agent-gui
glow, egui,tray-icon, notify-rust, tokio) builds everywhere; the Linux-only backends (eframewayland/x11,gtk) move into acfg(target_os = "linux")table; Windows addswindows-sys+raw-window-handle.tokionamed pipe on Windows.serveis generic over the stream;connectis per-platform (named-pipe client retries onERROR_PIPE_BUSY).TrayIcon, builds it on the first frame, pollsMenuEvent, and refreshes on state change. Icon/menu helpers shared.SetWindowDisplayAffinity(hwnd, WDA_EXCLUDEFROMCAPTURE)on the winit HWND, retried until the handle exists.default_socket_path()returns the pipe name on Windows.vervain-agent
clientgeneric overAsyncRead + AsyncWrite.vervain-agent assistanceinto the active console session via the VA-11kvm::windows::session::spawn_in_active_session(CreateProcessAsUser) primitive; the GUI connects back over the pipe. Skipped when run interactively.gui_ipcmodule, theassistancesubcommand + early routing, the server start, and the in-process consent preference for Windows.CI (check.Dockerfile): re-include
vervain-agent-guiin the windows-gnu cross-check (drop--exclude), and add a windows-gnuagent-guicheck so the named-pipe server, Session 0 launch, and consent path keep compiling.Acceptance criteria
vervain-agent-guibuilds on Windows withapp;vervain-agent --features agent-guibuilds on Windows.protowire types shared with the unix path.CreateProcessAsUser) and the GUI connects back. (code; runtime per below)host/consent.rsprompts over IPC.WDA_EXCLUDEFROMCAPTURE. (code; runtime per below)vervain-agent --features agent-gui, windows-gnu, releasestrip = "symbols"), under the 20 MB target.vervain-agent-guire-included in the windows-gnu CI cross-check.sc query, reboot survival, uninstall idempotency) manually.Verification
In the windows-gnu builder image:
cargo check --workspace --target x86_64-pc-windows-gnu --locked(whole workspace incl. the GUI).cargo check -p vervain-agent -p vervain-agent-gui --features agent-gui --target x86_64-pc-windows-gnu --locked.cargo clippy -p vervain-agent -p vervain-agent-gui --features agent-gui -- --deny warnings(Linux).cargo fmt --all --check;cargo test -p vervain-agent-gui --lib(3 pass).Follow-ups (noted, not in scope)
SECURITY_ATTRIBUTESand theCreateEnvironmentBlockUSERPROFILE/APPDATA fix the kvm primitive already flags.#VA-56