- Updated session control mechanisms to ensure proper handling of remote input and clipboard operations. - Introduced session authorization checks to validate operator permissions before starting desktop sessions. - Improved input injection logic to prevent unauthorized access during active sessions. - Added new capabilities for managing session flags and controls, ensuring a more robust and secure desktop experience. - Enhanced error handling and logging for better traceability of session-related actions.
3.1 KiB
Support Agent conformance verification
Current release status
Stock-client black-box conformance: REQUIRED / MANUAL / NOT PASSED.
GitHub Actions does not download, run, or authenticate a stock desktop client, and it does not use a relay, BetterDesk server, signing credential, branded bundle, or any other external test environment. The automated checks described below validate only repository-local framing, parser, policy, and build contracts. A successful CI run is not evidence of full desktop-client compatibility and must not be used to make a clean-room or compatibility release claim.
Automated CI coverage
The Support Agent CI workflow runs without repository secrets:
- Linux runs
go vet ./...andgo test -race -count=1 ./...forbetterdesk-support-agentand its sharedbetterdesk-agentdependency. - Short, single-worker Go fuzz smoke tests exercise support-agent peer framing, support-agent Annex-B framing, and the shared agent's image, Annex-B, IVF, VP9, and AV1 framing/header readers.
- Windows and macOS run the non-race Go unit suites for both agent modules. Linux additionally runs the X11/Wayland capability-contract tests and Windows runs its capture-strategy contract. These are API/build checks, not desktop runtime tests.
These checks do not require a proprietary client, production credentials, hardware capture devices, FFmpeg/GStreamer, PipeWire, an X11 display, or a network-accessible BetterDesk service.
Required manual black-box lab
Before any compatibility release, a release operator must run and record an isolated black-box lab against each supported stock desktop-client version and each supported host platform. The following scenarios remain required and unpassed until their results are attached to the release record:
- Inbound handshake and relay setup, including malformed, oversized, and truncated frames.
- Authentication failure, unattended password, supervised consent, and 2FA acceptance/rejection behavior.
- Desktop capture, remote input, disconnect, reconnect, and revocation while a session is active.
- Capability negotiation and explicit rejection of unsupported clipboard, files, terminal, audio, multi-monitor, privacy, and restart operations.
- Windows capture/input, Linux X11 capture/input, and pure-Wayland portal and PipeWire behavior; an unavailable capability must be reported as unavailable rather than silently falling back.
For every lab run, retain the client version and checksum, host OS and session type, agent build identifier, server/relay version, tested capability set, packet/test-vector provenance, pass/fail result, and defects found. Run the lab with disposable credentials and data only. Do not add stock-client source, generated artifacts, or copied test fixtures to this repository while carrying out the black-box work.
Release gate
CI failure blocks the release. CI success leaves the black-box gate in the
REQUIRED / MANUAL / NOT PASSED state until the completed lab record and the
provenance evidence required by
support-agent-provenance.md are reviewed.