Repository navigation
Remove the unused Node subprocess spawn helper - #1547
Merged
Merged
Conversation
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The removed implementation has no active consumers or supported exports, and the deleted tests cover only retired functionality.
No open issues 🎉
What changed in this PR
Removes the unused Node subprocess launch implementation left behind by the migration to in-process v1 APIs, without changing supported exports.
Changes:
- Deletes retired launch helpers, logging code, and their tests.
- Removes unused internal types and executable discovery helpers.
- Updates documentation to describe v1 operations and experimental-backend restrictions.
| File | Description |
|---|---|
src/mxc-sdk/src/backends/isolation_session/common/one_shot.rs |
Removes retired API names from a comment. |
sdk/node/tests/unit/sandbox.test.ts |
Removes retired helper tests. |
sdk/node/tests/unit/logger.test.ts |
Deletes logger tests. |
sdk/node/src/v1/types.ts |
Removes unused internal constants and alias validation. |
sdk/node/src/v1/platform.ts |
Removes unused macOS executable discovery. |
sdk/node/src/logger.ts |
Deletes the unused file logger. |
sdk/node/src/helper.ts |
Deletes subprocess launch helpers. |
sdk/node/package.json |
Removes the deleted logger test from the unit command. |
docs/development/guides/authoring-a-new-feature.md |
Replaces obsolete SDK experimental-option guidance. |
docs/development/architecture/versioning.md |
Documents v1 experimental-backend restrictions. |
docs/development/architecture/container-lifecycle.md |
Clarifies experimental authorization. |
docs/development/architecture/backends/isolation-session/oneshot.md |
References Node v1 create-and-run operations. |
docs/backends/nanvix/nanvix.md |
Directs experimental MicroVM usage to the CLI. |
Review effort: Balanced
This PR deletes sdk/node/src/helper.ts, the subprocess launch path behind the retired spawnSandboxFromConfig family. Nothing in the package imported it after the in-process v1 APIs replaced that path, so only its own tests still exercised it. Docs that still described spawnSandboxFromConfig or an SDK experimental option now describe the v1 behaviour. Details * Delete helper.ts, the FileLogger it alone used, and internal-only v1 leftovers: ContainmentTypes, LegacyContainmentAliases, ExperimentalBackends, legacyConfigAliasUnsupportedReason and findSeatbeltExecutable. * Remove the resolveExecutableAndArgs tests and logger tests. * Document that published v1 SDKs never authorize experimental backends, so MicroVM and other experimental features run through wxc-exec --experimental. * Point the IsolationSession one-shot note at the Node v1 create-and-run operations and drop removed APIs from a Rust comment. Tests * Node SDK tsc build and unit-test build passed; node --test over the test:unit file list: 438 tests, 420 passed, 18 skipped, 0 failed. * cargo fmt --all -- --check and git diff --check passed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: ce647283-a4dd-44d4-995a-3e0ac8f5d574 Generated-with: claude-opus-5.5
Gudge (MGudgin)
force-pushed
the
user/gudge/remove_node_spawn_helper
branch
from
October 21, 2026 22:35
f5b0d94 to
1db94cf
Compare
Comment on lines
+409
to
+411
| Their create-and-run and container lifecycle operations always pass the native | ||
| entry points' `experimental` argument as off, so a request that selects an | ||
| experimental backend fails with `backend_unavailable`. Exercise experimental |
Branden Bonaby (bbonaby)
approved these changes
Oct 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

This PR deletes
sdk/node/src/helper.ts, the subprocess launch path behind the retiredspawnSandboxFromConfigfamily. #1385 replaced that path with the in-process v1 APIs and #1479 removed its last importer. Since then nothing in the package has imported it, and the packageexportsmap (.,./v1,./package.json) never exposed it, so only its own unit tests still exercised it. Docs that still describedspawnSandboxFromConfigor an SDK-level experimental option now describe the v1 behaviour.Details
helper.ts, theFileLoggerit alone used, and internal-only v1 leftovers (ContainmentTypes,LegacyContainmentAliases,ExperimentalBackends,legacyConfigAliasUnsupportedReason,findSeatbeltExecutable). None is exported from@microsoft/mxc-sdk/v1.resolveExecutableAndArgsandFileLoggerunit tests and droplogger.test.jsfromtest:unit.experimental = falseto the native entry points, the .NET switch is private, and Node v1 rejectsmicrovm. So MicroVM and other experimental features run throughwxc-exec --experimental(versioning.md,nanvix.md, the authoring guide,container-lifecycle.md§7.2).References
helper.tsimporter)spawnSandboxFromConfigTests
npx --no-install tsc -p .insdk/node: passed.npx --no-install tscinsdk/node/tests/unit: passed.node --test --test-reporter=tap <the test:unit file list>insdk/node: 438 tests, 420 passed, 18 skipped, 0 failed.cargo fmt --all -- --checkinsrc: passed.git diff --check: passed.Microsoft Reviewers: Open in CodeFlow