Skip to content

docs: propose Windows 365 for Agents backend design - #1619

Open
tbyfield wants to merge 3 commits into
mainfrom
users/tbyfield/w365a-design
Open

tbyfield wants to merge 3 commits into
mainfrom
users/tbyfield/w365a-design

Conversation

@tbyfield

@tbyfield tbyfield commented Oct 29, 2026 •

Copy link
Copy Markdown

📖 Description

Adds a proposed design for an experimental Windows 365 for Agents (W365A) backend and links it from the development documentation. No implementation changes.

🔗 References

Refs #1615

🔍 Validation

  • git diff --check origin/main...HEAD — passed.
  • Runtime tests not run (documentation-only).

✅ 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)

Implementation, Copilot-instruction and Cargo.lock checks are not applicable to this design-only PR. CLA status has not been verified.

📋 Issue Type

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

Refs #1615

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 29, 2026 21:24
@azure-pipelines

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

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 design treats transport loss or a remote error as normal execution completion with exit code -1, obscuring structured error and outcome-uncertainty details while colliding with a valid Windows exit code.

1 open issue
What changed in this PR

Proposes an experimental Windows 365 for Agents backend for MXC’s container lifecycle operations, supporting the remote Cloud PC workflow described in #1615. This PR changes documentation only.

Changes:

  • Defines reservation, readiness, command execution, release, and failure-recovery behavior.
  • Specifies development-contract settings, security boundaries, staged delivery, and planned CI and manual validation.
  • Links the proposal from the development documentation.
File Description
docs/​development/​README.md Adds a link to the backend proposal.
docs/​development/​architecture/​designs/​1615-w365a-backend/​README.md Defines the proposed backend’s scope, lifecycle, contracts, security, and validation plan.

Review effort: Balanced

Refs #1615

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 29, 2026 22:28

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 checkout mismatch assertion discards a valid session ID needed for stop/deprovision cleanup, so the error handling must preserve that identity or attempt release while retaining it if cleanup fails.

No open issues 🎉

1 previously missed issue

In code that hasn't changed since last review

Medium severity Preserve reservation identity when checkout computer ID mismatches

docs/​development/​architecture/​designs/​1615-w365a-backend/​README.md:414

[P2] When checkout returns a valid sessionId but a different computerId, this assertion discards a known reservation identity, leaving the caller without the ID required by stop/deprovision. Keep execution refused, but preserve an identity for cleanup in the structured error, or attempt release and retain that identity if cleanup fails. Align the identity and recovery sections with that choice, and distinguish this recoverable mismatch from a lost or malformed session ID in the fixture.

1 resolved since last review

Review effort: Balanced

Refs #1615

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 29, 2026 22:50

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

Service-owner confirmation of pooled-ID equivalence and delegated-identity omission rules remains pending, alongside maintainer agreement on deferred nightly live validation and infrastructure ownership.

No open issues 🎉

Review effort: Balanced

@tbyfield
tbyfield marked this pull request as ready for review October 29, 2026 22:55
@tbyfield
tbyfield requested a review from a team as a code owner October 29, 2026 22:55
Comment on lines +55 to +66
The agent or client application invokes MXC's `provision` operation; the W365A
backend requests a Cloud PC reservation from the service and returns its
container ID. The application then invokes `start`, which polls the service
until the Cloud PC is ready or reports a failure. It invokes `exec` for each
command using that same ID. MXC sends the commands to DesktopControl.Exec on
the Cloud PC to retrieve the internal project, run its Windows build, and
inspect the build results.
The source checkout and build outputs remain available between commands;
the agent host needs neither direct repository access nor the Windows toolchain.
The agent or client application collects the required results through command
output and invokes `deprovision` through MXC in final cleanup, retaining the
reservation ID if release fails.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

note: tbyfield looks like we're missing a api.md file to show the usage of this feature:
See: https://github.com/microsoft/mxc/blob/main/docs/development/guides/authoring-a-new-feature.md#write-the-spec

This will let us see how users are expected to use the new backend in the SDKs.

@bbonaby Branden Bonaby (bbonaby) added the Feature-Spec-In-Review Label for feature spec PRs that are currently in review label Oct 30, 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

Feature-Spec-In-Review Label for feature spec PRs that are currently in review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants