Skip to content

[WSLC] Proxy Pt. 1: Update SDK to 3.0.5 - #1679

Open
Elliot (theelliotm) wants to merge 3 commits into
mainfrom
user/emichlin/wslc-proxy-1-sdk
Open

Elliot (theelliotm) wants to merge 3 commits into
mainfrom
user/emichlin/wslc-proxy-1-sdk

Conversation

@theelliotm

@theelliotm Elliot (theelliotm) commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

📖 Description

First PR in the WSLC built-in proxy stack (#1625). Updates the WSLC SDK to 3.0.5, which adds the session network, container network, capability and host loopback APIs the later PRs use. The minimum supported WSL runtime is now 3.0.5.

  • Pin WSLC_SDK_VERSION and the package SHA-256 to 3.0.5, and regenerate wslcsdk_sys.rs from the 3.0.5 header. WslcNetworkFlags is added as a flags enum.
  • Add generate-wslc-bindings.ps1 -Check to the runbook's validation step.
  • Update the prerequisite error message and getting-started guide to WSL 3.0.5.
  • Replace the vendored 3.0.3 fallback package with 3.0.5.

🔗 References

Refs #1462
Spec: #1625

🔍 Validation

On ARM64 with WSL 3.0.5.0 (e7ef9a88) and WSLC_SDK_PATH set to the local 3.0.5 SDK build:

  • cargo build -p wxc --features wslc --release: passed
  • cargo build -p mxc-sdk --bin wxc-wslc-daemon --features wslc --release: passed
  • cargo test -p mxc-sdk --features wslc --lib wslc (includes the ABI size checks): passed
  • cargo fmt --all -- --check: passed
  • cargo build -p mxc-sdk --features wslc --lib without WSLC_SDK_PATH: passed. It downloaded the published 3.0.5 package from the MxcDependencies feed and verified its pinned hash. With the feed unreachable, it fell back to the vendored 3.0.5 package and verified the same hash.
  • generate-wslc-bindings.ps1 -Check (vendored 3.0.5 package, clang 22.1.3): passed (committed bindings are current)
  • cargo test -p mxc-sdk --features wslc --lib prerequisite_error: passed
  • cargo clippy -p mxc-sdk --features wslc --all-targets -- -D warnings: passed
  • pwsh tests/scripts/run_wslc_all_tests.ps1 (create-and-run, lifecycle, proxy and stdin suites): passed. The two tar-import tests skipped because their local tars weren't present.

Not run: x64.

✅ Checklist

  • Signed the Contributor License Agreement
  • Linked to an issue
  • For features or changes requiring a spec: linked the issue with maintainer-applied feature-accepted
  • For implementation: linked the required approved and merged design/API spec, or explained why no spec is required
  • Feature issue remains open unless this PR completes all agreed implementation, validation, and documentation
  • Updated documentation (if applicable)
  • Updated Copilot instructions (if build, architecture, or conventions changed)
  • If this PR changes Cargo.lock, the dependency-feed-check check passes (see pull request builds)

📋 Issue Type

  • Bug fix
  • Feature
  • Task
Microsoft Reviewers: Open in CodeFlow

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

@theelliotm
Elliot (theelliotm) requested a balanced review from Copilot November 5, 2026 02:36
@theelliotm
Elliot (theelliotm) force-pushed the user/emichlin/wslc-proxy-1-sdk branch from abcd46d to 8a61cb8 Compare November 5, 2026 02:38
@theelliotm
Elliot (theelliotm) changed the base branch from user/emichlin/wslc-builtin-proxy to main November 5, 2026 02:38

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The unpublished SDK has no pinned, reproducible artifact, and blocked Windows CI with ARM64-only validation leaves published-artifact ABI consistency and x64 compatibility requiring maintainer confirmation.

No open issues 🎉

What changed in this PR

Updates the WSLC SDK to 3.0.5 as preparation for the built-in networking proxy described in #1625. This adds bindings for later work without changing backend behavior.

Changes:

  • Pins SDK 3.0.5 and regenerates bindings for network, capability, and host-loopback APIs.
  • Adds -HeaderPath support for generating bindings from unpublished SDK headers.
  • Documents the temporary requirement for a local SDK through WSLC_SDK_PATH until 3.0.5 is published.
File Description
src/​mxc-sdk/​src/​backends/​wslc/​common/​wslcsdk_sys.rs Regenerates SDK types, layouts, and function bindings for 3.0.5.
src/​mxc-sdk/​build/​wslc_common/​README.md Updates SDK version and documents local-build requirements.
src/​mxc-sdk/​build/​build_wslc_common.rs Pins the SDK version to 3.0.5.
scripts/​generate-wslc-bindings.ps1 Supports explicit headers and generates network flags as bitfields.
docs/​development/​build-and-test/​wslc-sdk-bindings.md Documents binding generation for unpublished SDK versions.
docs/​backends/​wslc/​wslc-state-aware.md Updates the SDK version cited in the daemon rationale.

Review effort: Balanced

Copilot AI balanced review requested due to automatic review settings November 5, 2026 02:39
@theelliotm Elliot (theelliotm) changed the title WSLC: update SDK to 3.0.5 [WSLC] Proxy Pt. 1: Update SDK to 3.0.5 Nov 5, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The 3.0.5 SDK bump lacks a pinned SHA-256, so clean WSLC builds and both Windows CI architectures will still fail verification even after publication.

1 open issue

Review effort: Balanced

Comment thread src/mxc-sdk/build/build_wslc_common.rs Resolved

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The FFI/ABI update was validated only against an unpublished local ARM64 SDK, leaving published 3.0.5 header/DLL parity and x64 WSLC compatibility dependent on maintainer verification.

1 open issue

Review effort: Balanced

Copilot AI balanced review requested due to automatic review settings November 10, 2026 22:15
Elliot (theelliotm) and others added 2 commits November 10, 2026 14:17
Pin WSLC_SDK_VERSION 3.0.5 and regenerate bindings from the 3.0.5 header. 3.0.5 is unpublished, so builds need WSLC_SDK_PATH; generate-wslc-bindings.ps1 gains -HeaderPath. Remove the vendored 3.0.3 package.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c3f64c2c-9005-43eb-a803-a91fb7265c5b
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c3f64c2c-9005-43eb-a803-a91fb7265c5b
@theelliotm
Elliot (theelliotm) force-pushed the user/emichlin/wslc-proxy-1-sdk branch from f294536 to 22fd716 Compare November 10, 2026 22:17

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Both Windows native DLLs and ABI sizes change, but live-host validation covers only ARM64, leaving x64 create-and-run and lifecycle compatibility unverified.

No open issues 🎉

1 resolved since last review

Review effort: Balanced

Copilot AI balanced review requested due to automatic review settings November 10, 2026 22:18
@theelliotm
Elliot (theelliotm) marked this pull request as ready for review November 10, 2026 22:19
@theelliotm
Elliot (theelliotm) requested a review from a team as a code owner November 10, 2026 22:19

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The native SDK update changes FFI layouts and bundles both architectures, but runtime validation covers only ARM64, leaving x64 WSLC execution against the packaged 3.0.5 SDK unverified.

No open issues 🎉

Review effort: Balanced

Comment thread src/mxc-sdk/build/build_wslc_common.rs Resolved
Comment thread scripts/generate-wslc-bindings.ps1 Resolved
@microsoft-github-policy-service microsoft-github-policy-service Bot added the Needs-Author-Feedback Waiting for additional information or action from the issue or pull-request author. label Nov 10, 2026
Update the prerequisite error, its test and the getting-started guide to the
3.0.5 minimum. Remove -HeaderPath so bindings are generated only from the
vendored package, and add -Check to the runbook's validation step.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c3f64c2c-9005-43eb-a803-a91fb7265c5b
Copilot AI balanced review requested due to automatic review settings November 11, 2026 00:26

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The guidance incorrectly presents WSL 3.0.5 as a universal SDK requirement, although only proxied mode requires it, potentially directing users with compatible hosts to unnecessary updates or source builds.

1 open issue

Review effort: Balanced

## Step 1 — Install WSL 3.0.5+

The WSLC SDK requires WSL version 3.0.3 or later. Update WSL to the latest
The WSLC SDK requires WSL version 3.0.5 or later. Update WSL to the latest

@theelliotm Elliot (theelliotm) Nov 11, 2026 •

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will be a minimum version bump like all other bumps. There is currently no functionality for version-gating features/testing related to the WSLC SDK.

@microsoft-github-policy-service microsoft-github-policy-service Bot added Needs-Attention Requires attention or a decision from the MXC maintainers. and removed Needs-Author-Feedback Waiting for additional information or action from the issue or pull-request author. labels Nov 11, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Needs-Attention Requires attention or a decision from the MXC maintainers.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants