[Playground] Add MicroVM/Hyperlight FS+Network scenarios and harden raw-config#373
Merged
Conversation
- Add MicroVM (NanVix) scenarios: hello, stdlib, fibonacci, large output, exit code, error, timeout - Add PowerShell 5.1 scenarios for Windows Sandbox - Unified WS/MicroVM execution path via runSandboxRaw - MicroVM containment handler: Python-only runtime, hidden policy, auto-experimental - MicroVM CWD resolution to nanvixd binary directory - Runtime dropdown filtering per containment backend - Dev sidebar and JSON panels show raw config for both backends - Remove diagnostic logging Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add Hyperlight containment backend to SDK types and ExperimentalBackends - Add Hyperlight option to playground containment dropdown - Add 11 Hyperlight test scenarios (quick tests, error cases, networking, filesystem) - Fix platform check bypass: skipPlatformCheck now skips both platform support checks in helper.ts (was only skipping one) - Hide Advanced settings (Isolation, System settings) for VM backends - Hide Desktop UI Access section for VM backends (Win32k is irrelevant) - Update permissions summary to show VM-level isolation instead of misleading Files/Internet/Desktop toggles - Update platform badge to show backend-appropriate message instead of Windows build version warning for HL/MV - Merge scenario network policy into raw config for HL scenarios Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: danbugs <danilochiarlone@gmail.com>
…aw-config - Add networking/filesystem pseudo-shells and new MicroVM/Hyperlight scenarios (FS write/read+list, stdlib breadth, numpy, memory, socket API, net stdlib, HTTP allow/block). - Extract buildRawBackendConfig() shared by runSandbox() and updateDevSidebar() so the dev preview matches what is actually sent. - Hyperlight default-block: emit network.defaultPolicy=block when scenario does not opt in, in both built-config and raw-JSON paths (closes a default-allow regression). MicroVM/NanVix left untouched since it rejects defaultPolicy=block. - MicroVM FS scenarios now mount a dedicated C:\Users\Public\MXCPlaygroundTests subdir, pre-created via mxc.ensureDirs, with try/finally cleanup so no debris is copied back. Abort the run if ensureDirs fails. - Restore PTY line buffering and strip trailing CR from CRLF chunks. - Run All filter pulls in pseudo-shell scenarios when python is selected on a raw backend (MicroVM/Hyperlight). - Keep networking/filesystem options hidden in AppContainer/WS/other modes so they cannot be selected outside MicroVM/Hyperlight. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
ee71a14 to
70c6e5a
Compare
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Agent-Logs-Url: https://github.com/microsoft/mxc/sessions/41f8f439-6a8a-44d7-a1d8-3ba7b078ed66 Co-authored-by: huzaifa-d <16077119+huzaifa-d@users.noreply.github.com>
- Playground: reuse buildRawBackendConfig() in showJsonPanel() so the JSON
preview matches what is actually sent (was building a minimal {containment,
process} object that omitted scenario filesystem mounts and the Hyperlight
default-block injection).
- Playground: preserve blank lines in PTY output for fidelity with stdout
(still strip trailing CR from CRLF).
- Playground: update stale MicroVM/Hyperlight comments to reflect that the
policy-generator UI is hidden, but scenarios can still set filesystem and
network in the raw config.
- Playground main: derive arch/target-triple dynamically when locating
nanvixd.exe (was hardcoded to x64 + flat target dir) and fail early with
an actionable error if not found.
- SDK helper: keep the microvm Windows-only guard active even when
`skipPlatformCheck` is set; it's a hard backend requirement (WHP/Hyper-V)
not a build-version compatibility check.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- sdk/helper.ts: drop the inner shadowing redeclaration of `isExperimental`; reuse the variable from the outer scope (already in scope on line 147). - sdk/platform.ts: `dism /online` typically requires elevation, so on a non-elevated session the catch silently cached Windows Sandbox as unavailable. Fall back to checking for `%SystemRoot%\System32\WindowsSandbox.exe`, which is only present when the Containers-DisposableClientVM feature is enabled and is readable without admin. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
SohamDas2021
approved these changes
May 21, 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.
.github/copilot-instructions.md.Summary
Adds MicroVM and Hyperlight backends, adds new filesystem and networking scenarios, and fixes several correctness issues uncovered by code review.
Scenarios
networking/filesystempseudo-shells to categorise Python-backed scenarios that exercise net/FS surface (badges, labels, and dropdown options added; hidden outside MicroVM/Hyperlight).mv-fs-write-read,mv-fs-list-dir(mount a dedicatedC:\Users\Public\MXCPlaygroundTestssubdir withtry/finallycleanup),mv-stdlib-broad,mv-memory.