SDK verification and acceptance
Execution record dated 2026-09-22. Automated checks, actual app/server runs and target-device acceptance have distinct scope.
Test environment
Android SDK 0.2.0-rc.2: Android 16/API 36.1 ARM64 emulator, business sample and standalone support app. Linux SDK preview: Ubuntu 24.04 ARM64 containers, normal user, Xvfb X11 and nested GNOME 46 Wayland. Desktop tests use 2 CPU / 2 GiB limits.
Additional CI passed on Ubuntu 24.04 AMD64: Go race/X11, actual C ABI and C/Go example execution, and SDK ZIP packaging. Android CI also passed Maven debug/R8 builds for both apps and the documentation-only consumer. Physical GPU/OEM qualification is separate.
Android execution coverage
| Layer | Result and scope |
|---|---|
| Unit/lifecycle | 37 passed: configuration, HTTP contracts, state, duplicate start, permission denial, rotation, late results and protected input. |
| On-device instrumentation | 4 functional scenarios passed: real MediaProjection/WebRTC video, input, rotation, reconnect, view-only and user/operator/OS stop. Backend/signaling use local fixtures. |
| Actual TURN | Decoded video and input passed on direct, UDP, TCP and TLS paths; relay/relay candidates verified for TURN. |
| Delivered-app execution | Both debug apps and QA-signed R8 releases installed and run. Production backend/WSS/web viewer verified video, input and operator stop; same-signature updates preserved codes. |
| Documentation consumer | The complete documented Activity compiled in a separate project against only the Maven SDK, in debug/R8 release. Both samples built with the published dependency. |
Linux execution coverage
| Layer | Result and scope |
|---|---|
| Public Go/C SDK | Start/Status/Identity/Stop/Wait/Done, exclusive ownership, persistence, redaction, root rejection and invalid JSON/path/URL checks. Separate Go module compiled against the public API. |
| C/Go examples | Actual enrollment/WSS/web-terminal Bash round trips, Enter shutdown and identity-preserving restart. Regression passed after fixing C example shutdown on SIGURG. |
| Terminal/Fleet/maintenance | Race checks covered PTY, resize, shutdown, backpressure, Fleet command bounds/timeouts and maintenance exclusion. No Fleet command was sent to a customer device. |
| X11 | Real VP8 video/remote input and 800×600 JPEG capture passed. |
| Wayland | Real GNOME portal consent, video and uppercase/symbol/Korean input passed. Denial blocked control while preserving terminal. An initial paste/Enter ordering failure is recorded below. |
| TURN | Actual relay/relay terminal round trips passed over UDP, TCP and TLS. |
| Separate xSpan regression | Clean ARMv5 cross-build, five native codec/entropy/process/identity/product checks and Go gateway/relay race checks passed. No physical reader firmware/RFID qualification in this run. |
Observed limits and performance
For a 12-second measurement at a 1600px/30fps target, decoded rates were about 30.1fps direct, 16.8fps UDP, 8.9fps TCP and 4.6fps TLS. These describe this emulator/network, not an SLA or product guarantee. Proxy, latency and congestion conditions matter.
Remaining product-specific acceptance
- Android: qualify shipping models/OS, physical 16 KB page devices, OEM battery/accessibility policies, lock/reboot and actual IME/WebView/scanner hardware.
- Linux: separately qualify target glibc/distribution and physical ARM64/AMD64 GPU, multimonitor, keyboard layouts, login/logout/reboot and long-running operation.
- Customer environment: verify account/tenant policy, proxy/store networks/enterprise firewalls, signed updates/recovery, business impact and logging policy.