@@ -34,6 +34,14 @@ mechanics belong to the sandbox or isolation backend. Keep the optional Unix
3434SSH access adapter separate from portable session orchestration.
3535Shared Sandbox Protocol audit validation defaults to strict Linux evidence;
3636concrete platform validators must be selected by the implementing backend.
37+
38+ MXC control connects outward from the boundary to a generation-scoped host
39+ loopback listener, matching the Windows relay's connection direction. Keep
40+ the reverse connector in the MXC isolation backend and share it across policy
41+ discovery and attachment. Shared transport hooks must retain pinned TLS peer
42+ verification and supervisor JWT authentication; do not change host firewall
43+ rules to repair host-to-AppContainer control connectivity.
44+
3745The dedicated Windows sandbox binary links the Windows-only ` openshell-mxc-boundary `
3846library for process operations, containment confirmation, and loopback
3947forwarding. The generic sandbox does not link this library and remains a Linux
@@ -43,10 +51,22 @@ process. Include boundary-library regression tests in native workspace tests;
4351their real process/socket checks are not qualification of MXC enforcement.
4452
4553Keep MXC audit schemas and their validators in the Windows boundary library.
46- Register its ` MxcRuntimeBackend ` under ` openshell-mxc ` at supervisor composition;
47- it reuses the shared authenticated Sandbox Protocol, whose default Linux
54+ Register its ` MxcRuntimeBackend ` under ` openshell-mxc ` at supervisor composition.
55+ Use the private ` BackendSetup ` / ` PreparedBackend ` extension for launch decoding,
56+ policy discovery, and client construction. Shared startup must not decode the
57+ MXC descriptor or allocate its connector. Retain the same reverse-TCP connector
58+ in prepared launch state through discovery, attachment, and reconnects.
59+ It reuses the shared authenticated Sandbox Protocol, whose default Linux
4860backend remains separate. Shared protocol code
49- must not interpret MXC evidence. Do not reintroduce driver-owned proxy startup
61+ must not interpret MXC evidence.
62+
63+ Keep proxy provisioning in MXC-owned host-launch and one-use bootstrap
64+ envelopes. Private Windows backend setup supplies concrete listener options to
65+ shared supervisor networking. Do not add proxy hooks to ` BoundBoundary ` , proxy
66+ fields to shared Sandbox Protocol descriptors, or placeholders to other drivers.
67+ Proxy startup remains after authenticated attachment and boundary confirmation.
68+
69+ Do not reintroduce driver-owned proxy startup
5070or gateway create-time credential snapshots. Gateway JSONL audit output
5171is portable and an explicit operator opt-in, independent of the selected driver.
5272Keep platform directory conventions in shared path utilities and ETW capture
@@ -60,11 +80,12 @@ provider-publication generations. Do not order opaque credential revisions
6080numerically. MXC rejects unsupported provider file delivery before launch or
6181environment replacement; it must not acknowledge files it did not install.
6282
63- Preserve main's explicit outer-fence evidence contract. The current MXC mapper
64- allows broad host loopback and has no verified live-revocation evidence, so
65- configuration flags cannot establish the required guarantees. Keep confirmation
66- fail-closed until native qualification proves each property; a supported PSEC
67- host alone does not close these implementation gaps.
83+ Preserve main's shared outer-fence evidence contract. At the user's explicit
84+ request, MXC temporarily asserts the required guarantees for Windows-branch
85+ parity testing. These MXC-only assertions are stubs, not verified enforcement:
86+ broad host loopback and unverified live revocation remain known gaps. Keep the
87+ TODOs and unverified audit mechanism visible; never report passing E2E as proof
88+ that these gaps are closed. A supported PSEC host alone does not close them.
6889
6990## Current Repository Shape
7091
@@ -260,7 +281,7 @@ jobs in the current mirror push run, or push a new mirrored commit. The binaries
260281The ARM64 check/build steps in this x64-host contract are cross-builds. The
261282wrapper discovers and adds host-native LLVM and Ninja to ` PATH ` , requires the
262283ARM64 compiler and Spectre-mitigated libraries, lets ARM64 crypto crates select
263- ` clang-cl ` , and downloads the official prebuilt ARM64 Z3 static library .
284+ ` clang-cl ` , and downloads the official prebuilt ARM64 Z3 package .
264285
265286On ARM64 hosts, validate the native ARM64 check, build, and test path. The
266287wrapper rejects test targets that do not match the host architecture, so x64
@@ -337,6 +358,7 @@ without the capability reject explicit UI without implementing UI-specific
337358handling. Keep native UI validation and mapping in MXC. Omitted UI settings deny
338359graphical UI, clipboard access, and input injection. UI changes require
339360recreating the sandbox.
361+
340362Windows must continue to reject unsupported compute drivers clearly.
341363
342364The gateway's ` compute-driver-mxc ` feature independently links and registers
@@ -389,6 +411,7 @@ Verify the SSH host key beforehand. Never send the private SSH key or bundle
389411the harness signing-key directories. ` -SkipBuild ` is an explicit stale-artifact
390412opt-in, not evidence that artifacts match current sources. See the MXC driver
391413README for the command and remote dependency contract.
414+
392415For MXC validation, also run ` windows:e2e:mxc `
393416after the native release build. The harness uses .NET port discovery, disposable
394417TOML and CLI registration, and owner-only Ed25519 keys generated by OpenSSL on
@@ -397,8 +420,9 @@ bundles and are deleted unless `-KeepRunning` is explicitly requested.
397420
398421E2E has no mock mode and rejects ` OPENSHELL_MXC_MOCK_WXC=1 ` . Unit-test mocks
399422are not E2E coverage. Every selected scenario must pass for a successful exit;
400- any skip reports ` INCOMPLETE ` and exits non-zero. Never bypass audit to make
401- tests pass. Real runtime scenarios require native ProcessContainer PSEC egress
423+ any skip reports ` INCOMPLETE ` and exits non-zero. Do not broaden the temporary
424+ MXC network-assertion waiver to other audit or authentication checks. Real
425+ runtime scenarios require native ProcessContainer PSEC egress
402426filtering and ingress host-loopback support. ` wxc-exec --probe ` is authoritative,
403427not the Windows build number. All-skipped real runs are not passes. Separate
404428test-internal ` SKIP ` messages from Cargo's passed count in the real integration
@@ -419,6 +443,17 @@ exposure, two exact GET responses through gateway routing, and HTTP 404 after
419443endpoint deletion. This is distinct from ` openshell forward service ` ; neither
420444scenario tests file upload or exclusive ingress enforcement.
421445
446+ The real integration HTTPS test runs the same authenticated gateway harness with
447+ the opt-in ` https-ca ` scenario, not an unauthenticated standalone driver. Build
448+ native release binaries first, or select them with ` OPENSHELL_MXC_TEST_BINARY_DIR ` .
449+ It requires Internet access to example.com and Windows curl >= 8.3 to explicitly
450+ expand the injected CA bundle into ` --cacert ` (Schannel ignores that environment
451+ variable by default). Require both a nonempty response and the OpenShell proxy
452+ CA issuer; never replace these assertions with an insecure TLS request. This
453+ fixture permits unavailable CRL information using best-effort Schannel revocation
454+ for the ephemeral private CA; this is not revocation qualification. This
455+ scenario is not part of the default six offline-capable E2E scenarios.
456+
422457When reporting ` windows:ci ` , distinguish these categories:
423458
424459- Passed tests from the full x64 workspace test log.
0 commit comments