Skip to content

Move lifecycle routing to executor arguments - #1256

Open
Gudge (MGudgin) wants to merge 2 commits into
user/gudge/rust-sdk-operation-apifrom
user/gudge/rust-sdk-operation-cli
Open

Gudge (MGudgin) wants to merge 2 commits into
user/gudge/rust-sdk-operation-apifrom
user/gudge/rust-sdk-operation-cli

Conversation

@MGudgin

@MGudgin Gudge (MGudgin) commented Sep 23, 2026

Copy link
Copy Markdown
Member

📖 Description

This PR moves state-aware lifecycle routing out of executor-bound JSON and into
explicit wxc-exec command-line arguments. Raw exact JSON APIs continue to
use their registered phase-bearing contracts.

Details

  • Add --operation provision|start|exec|stop|deprovision to wxc-exec.
  • Add --sandbox-id for non-provision lifecycle operations.
  • Preserve exact phase-specific validation by overlaying CLI routing onto a
    temporary source document before exact parsing and normalization.
  • Reject caller-supplied phase and sandboxId fields instead of silently
    overriding them.
  • Update the Node lifecycle SDK to pass operation and identity separately.
  • Document the distinction between raw exact JSON and executor CLI transport.

This is PR 3 of 3 in the state-aware operation API stack.

🔗 References

🔍 Validation

  • Rust formatting, wxc_common, wxc, all-feature mxc_engine and mxc-sdk
    tests, Rustdoc, and changed-crate clippy passed.
  • Node SDK unit tests passed.
  • 60 versioning tests and all schema/codegen/config gates passed.
  • 323 .NET tests passed; 27 backend-dependent tests were skipped.
  • git diff --check

✅ Checklist

📋 Issue Type

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

Gudge and others added 2 commits September 23, 2026 14:42
This PR changes the state-aware executor transport so lifecycle operation and
existing sandbox identity are passed as command-line arguments while the raw
exact JSON APIs retain their phase-bearing contracts.

Details

* Add `--operation` and `--sandbox-id` routing to `wxc-exec` and reject
  lifecycle routing fields supplied in executor-bound JSON.
* Preserve exact phase-specific parsing by overlaying CLI routing onto a
  source-preserving temporary document before normalization.
* Update the Node lifecycle SDK and architecture documentation for the new
  executor transport without changing raw exact API compatibility.

Tests

* Passed Rust formatting, `wxc_common`, `wxc`, all-feature `mxc_engine` and
  `mxc-sdk` tests, Rustdoc, and changed-crate clippy with warnings denied.
* Passed Node SDK tests, 60 versioning tests and all schema/codegen/config
  gates, and 323 .NET tests with 27 backend-dependent skips.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 1d91874d-feea-4a33-b183-67d506ae61b5
Generated-with: gpt-5.6-sol
This PR updates the state-aware lifecycle walkthrough so executor-bound JSON
omits operation and sandbox identity and shows their command-line routing.

Details

* Remove `phase` and `sandboxId` from the five executor payload examples.
* Show the matching `--operation` and `--sandbox-id` arguments for each call.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 1d91874d-feea-4a33-b183-67d506ae61b5
Generated-with: gpt-5.6-sol
@MGudgin
Gudge (MGudgin) requested a review from a team as a code owner September 23, 2026 22:24
@azure-pipelines

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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

:shipit:

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

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants