2.5 KiB
Native Windows harness
Build and run the Rust harness natively on Windows. No Python, WSL2 or Docker is required for the explicit sandbox-off desktop profile. Node.js is needed to build TypeScript/Electron apps, not to execute an embedded Rust harness.
Build
Install the pinned Rust toolchain, Visual Studio C++ Build Tools and Windows SDK. ARM64 dependencies also need Clang. Use a native Windows build host:
cd harness
cargo build --release --locked -p openworker-sdk --bin openworker-harness
cargo build --release --locked -p native-tools-runtime
If Clang is not on PATH, add the architecture-appropriate Visual Studio LLVM
directory. The helper tests/windows-build.ps1 supports workspace checks and
builds, but inspect its toolchain paths for your installation.
The SDK host is target/release/openworker-harness.exe. Build on the same target
architecture as the intended app. Rust/MSVC builds may require the corresponding
Visual C++ Redistributable; validate it in your installer and clean-machine tests.
Execution boundary
Use Sandbox::Off / sandbox: "off" explicitly for this Windows desktop profile.
The Rust workspace in this branch does not provide a Windows kernel sandbox.
NVIDIA OpenShell is the Linux reference execution environment; it is not silently
substituted or disabled on Windows.
Approvals remain independent of execution location. Host Rust callbacks and host MCP processes have the host account's privileges. Working-directory selection alone is not file-system confinement. Owned process Job Objects manage lifecycle, not a security boundary against hostile code.
State directories use Windows ACL protection. Secure static provider credentials use DPAPI; short-lived access tokens stay in memory. See provider authentication.
Integrate
Start with the desktop QuickStart or Arcade Studio. For device and computer-use tools, see the custom host example.
cargo test --locked -p openworker-sdk --features test-support --test provider_auth
cargo test --locked -p notification-tools -p device-tools -p computer-tools --lib
npm --prefix typescript-sdk ci
npm --prefix typescript-sdk test
Desktop capture/input tests require explicit user consent and an isolated test window. A passing scripted test or ARM64 VM run is not physical x64/OEM hardware certification. Signed installer, clean-machine and partner-specific acceptance remain separate release gates.