Repository navigation
Merge latest master into feature/compose - #41670
Merged
Merged
Conversation
Mirrored route tracking used an incomplete comparator that considered only route class, destination address, and metric. Distinct routes with different prefix lengths or next hops could therefore be treated as equivalent and silently omitted. The fix preserves the existing route-class ordering while using the complete EndpointRoute comparison for route identity. Regression tests cover prefix length, next hop, metric, exact duplicates, and dependency ordering.
This PR adds a "search or file issue on github" suggestion in all user visible errors to: Help users find solutions faster. Collect more user reported issues to help reliability improvements. This PR also updates all tests checking the error message to use a unified function for creating the expected error message.
β¦1430) Cleanup various miscellaneous output divergences Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Save state * Save state * Save state * Cleanup diff
* Save state * Save state * Save state * Add a /verifier option to run-tests.ps1 to run the test under verifier
Co-authored-by: WSL localization <noreply@microsoft.com>
* Fix various arm64 test failures * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Fix LF * Format * Cleanup diff --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
wslc: match column order, status text, and json shape for container list Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: WSL localization <noreply@microsoft.com>
This is an automated release [1]. [1] https://gitlab.archlinux.org/archlinux/archlinux-wsl/-/blob/main/.gitlab-ci.yml
Update the remaining parser test call site to use ArgumentOverrides after the Argument::Create API change. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com> Copilot-Session: eb7946ff-cc0b-4ff1-a059-571334b1c988
β¦led (#41491) In systemd v261, the systemd's tmpfiles.d/x11.conf was changed from D! to D. systemd/systemd@5474cad. This means the systemd-tmpfiles command will try to execute it when called out of the boot sequence. In the linked issue's case, it's called by the post install script by dpkg. This will fail as the wsl override is not in place when systemd is disabled. This PR enables the wsl override file generation for all distros with wslg enabled, regardless of if the distro boots with systemd.
* Fix unvalidated TerminalProfileSize when importing a distribution _ProcessImportResultMessage constructed the terminal profile string_view using the message-supplied TerminalProfileSize without validating it against the received buffer length. Use the bounds-checked two-argument span::subspan() overload (matching the existing ShortcutIconSize handling a few lines above) so an inconsistent size value throws instead of producing a string_view that runs past the end of the buffer. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 35281c30-3d08-4f05-8c84-2ce4711023d5 * format source --------- Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 35281c30-3d08-4f05-8c84-2ce4711023d5
* Bump WSL DeviceHost to 1.2.62 Co-authored-by: damanm24 <9593793+damanm24@users.noreply.github.com> * Correct WSL DeviceHost version to 1.2.62-0 Co-authored-by: damanm24 <9593793+damanm24@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: damanm24 <9593793+damanm24@users.noreply.github.com>
Enable unity build repo-wide via WSL_UNITY_BATCH_SIZE Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Tega Ajise <tegaajise@Tegas-MacBook-Pro-2.local>
* Harden Windows macros against dangling-else ambiguity * Harden Windows macros against dangling-else ambiguity
β¦41504) * Fix dangling-else bugs in FAIL_FAST_IF and EMIT_USER_WARNING macros Both macros were bare if-statements without do/while(0) guards, causing the dangling else problem when used as a single statement under an if. * Fix dangling-else bugs in FAIL_FAST_IF and EMIT_USER_WARNING macros * harden EMIT_USER_WARNING macro on Windows against dangling-else * Fix dangling-else bugs in FAIL_FAST_IF and EMIT_USER_WARNING macros
* Fix test to be more resilient * Make WSL1 more lenient, make WSL2 exact
β¦sion" (#41331) (#41515) Temporarily reverting the identity-based plugin folder mount change (both the WslCoreVm.cpp behavior change and the accompanying MountFolderAccess test coverage) introduced in #41331. This reverts commit 78b9cf2. Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The installer log files were collected before the log collection starts. Which will miss the user repro. This PR moves it after the user repro.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: WSL localization <noreply@microsoft.com>
In mirrored mode, handle route update as add instead of replace Remove usage of route update as it can overwrite routes on other interfaces. add tests that verify host routing changes are correctly reflected in Linux --------- Co-authored-by: Catalin-Emil Fetoiu <cfetoiu@microsoft.com>
β¦PN is running (#41638) * Don't fail the UnitTests::Warnings test case if GlobalSecureAccess VPN is running * Cleanup diff * Fix test
* Wait for wslservice to be started when running tests * Fail on timeout * Improve check * Format
In 2.9.8, the distro processes are separated into their own cgroups. But they remain in the same cgroup namespace. That caused compatibility issues with softwares that assume a fixed systemd cgroup layout. For example, rootless docker and nerdctl. Fixes on Moby and nertctl are being worked on. However, to avoid issues with other software, WSL's cgroup handling should also be improved. This PR creates new cgroup namespaces for the distros. So, to the non-critical distro processes, the systemd cgroup layout stays the same as before. This PR also introduces a cgroup structure change to accomplish this. The systemd init is moved from wsl-user/distro-N/systemd to wsl-user/distro-N. And the initialization of the distro-N controllers is handled by systemd instead. The processes are also moved into the non-systemd cgroup in systemdless distros. This makes sure that sub-group controllers can be enabled in the distro root. Cgroup v2 is now enforced when distro isolation is enabled. Instead of constructing an unusable cgroup v1 layout when cgroup v1 and distro isolation are both enabled.
Before this change, an additional 10ms delay was added in the port tracker loop presumably to make the main loop slower than the worker loop. So, the worker result does not get super dated. This is not reliable. And the 10ms delay also slows down every consecutive bind call. This PR refactors the thread synchronization method. So, the timing between those two loops is more deterministic. And removes the performance penalty for all bind calls.
Co-authored-by: WSL localization <noreply@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
β¦41619) * Move objects shared by wslc.exe and the tests to src/windows/common Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Link yaml-cpp, advapi32 and Crypt32 into common Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Drop yaml-cpp, advapi32 and crypt32 from wslclib now that common provides them Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Move wslc code in common under common/wslc and namespace CLI types as wslc::cli Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Save state * Use proper arrays * Format * Add new tests * Cleanup tests * Cleanup diff * Format * Apply PR feedback * Apply PR feedback * Format * Apply PR feedback * Move logging call * Apply PR feedback * Apply PR feedback
Co-authored-by: WSL localization <noreply@microsoft.com>
* Add WSLC network lifecycle events * Localize pending network prune errors * Fix network operation wait ownership and cleanup ordering * Fix prune event correlation after timed-out * Fix network event rollback and timeout recovery * Format * Forward Docker network events directly * Restore lock_guard after removing event waits * fix test * align event stream test helpers after merge * feedback
β¦n init messages (#41664)
Co-authored-by: WSL localization <noreply@microsoft.com>
Contributor
There was a problem hiding this comment.
Copilot review overview
π΅ Needs a closer look
The merge pulls in wide-ranging, cross-component changes (service/CLI, Windows UI, Linux init, build, and docs), and the scope is large enough that it needs focused human validation despite the targeted review comments.
Review effort: Lite
Findings: 7
Open (7)
What changed in this PR
This merge brings feature/compose up to date with the latest master, pulling in a broad set of WSLC (WSL Containers) CLI/service improvements, test updates, and accompanying documentation/build system changes across the repo.
Changes:
- Expands WSLC CLI/service capabilities (e.g., new/updated commands and flags, event streaming, container sizing/details, confirmation prompts) and refactors supporting infrastructure (terminal/IO/handle abstractions, schemas, SDK surfaces).
- Updates/extends Windows and Linux test suites to align with new behavior and improve coverage.
- Adds/updates WSL Settings OOBE UI for containers and publishes a new βWSL security modelβ doc; adjusts build configuration (unity builds, delay-load, CodeQL XAML precompile target, pipeline binlogs).
| File | Description |
|---|---|
| tools/βtest/βgenerate-test-data.ps1 | Export additional WSLC test image tar |
| tools/βdevops/βrequirements.txt | Bump GitPython pin |
| test/βwindows/βWSLCComposeTests.cpp | Update Inspect() signature usage |
| test/βwindows/βwslc/βWSLCVolumeMountUnitTests.cpp | Canonicalize cwd in mount parsing test |
| test/βwindows/βwslc/βWSLCCLITmpfsParserUnitTests.cpp | Align mount type constant usage |
| test/βwindows/βwslc/βWSLCCLIImageDigestUnitTests.cpp | Add image digest formatting unit tests |
| test/βwindows/βwslc/βParserTestCases.h | Update Argument::Create call patterns |
| test/βwindows/βwslc/βe2e/βWSLCE2EVolumeRemoveTests.cpp | Normalize stderr formatting helper usage |
| test/βwindows/βwslc/βe2e/βWSLCE2ESessionEnterTests.cpp | Normalize stderr formatting helper usage |
| test/βwindows/βwslc/βe2e/βWSLCE2ENetworkCreateTests.cpp | Normalize error output expectations |
| test/βwindows/βwslc/βe2e/βWSLCE2EImageTagTests.cpp | Normalize error output expectations |
| test/βwindows/βwslc/βe2e/βWSLCE2EImageSaveTests.cpp | Add image load quiet flag E2E test |
| test/βwindows/βwslc/βe2e/βWSLCE2EHelpers.h | Update helper declarations/types |
| test/βwindows/βwslc/βe2e/βWSLCE2EContainerStopTests.cpp | Add stop βcontinue after failureβ E2E |
| test/βwindows/βwslc/βe2e/βWSLCE2EContainerRemoveTests.cpp | Add remove βcontinue after failureβ E2E |
| test/βwindows/βwslc/βe2e/βWSLCE2EContainerLogsTests.cpp | Add logs --details E2E coverage |
| test/βwindows/βwslc/βe2e/βWSLCE2EContainerKillTests.cpp | Add kill βcontinue after failureβ E2E |
| test/βwindows/βwslc/βe2e/βWSLCE2EContainerExecTests.cpp | Normalize error output expectations |
| test/βwindows/βwslc/βe2e/βWSLCE2EContainerAttachTests.cpp | Normalize error output expectations |
| test/βwindows/βwslc/βe2e/βTestImageRegistry.h | Add session invalidation API |
| test/βwindows/βwslc/βe2e/βTestImageRegistry.cpp | Implement session invalidation |
| test/βwindows/βwslc/βCMakeLists.txt | Clarify PCH behavior for WSLC tests |
| test/βwindows/βSimpleTests.cpp | Normalize error output expectations |
| test/βwindows/βPlan9Tests.cpp | Fix comment spelling |
| test/βwindows/βMountTests.cpp | Normalize error output expectations |
| test/βwindows/βInstallerTests.cpp | Normalize error output expectations |
| test/βwindows/βCommon.h | Update test helpers (handles, formatting, APIs) |
| test/βwindows/βCMakeLists.txt | Add Plan9ProtocolTests + include paths |
| test/βlinux/βunit_tests/βsocket.c | Fix comment spelling |
| test/βlinux/βunit_tests/βlxtfs.c | Adjust arch conditional for syscall number |
| test/βlinux/βunit_tests/βdev_pt.c | Fix comment spelling |
| test/βlinux/βunit_tests/βdev_pt_2.c | Fix comment spelling |
| src/βwindows/βwslsettings/βViews/βOOBE/βWSLContainerPage.xaml.cs | Add containers OOBE page code-behind |
| src/βwindows/βwslsettings/βViews/βOOBE/βWSLContainerPage.xaml | Add containers OOBE page UI |
| src/βwindows/βwslsettings/βViews/βOOBE/βShellPage.xaml | Add navigation item for containers OOBE |
| src/βwindows/βwslsettings/βViewModels/βOOBE/βWSLContainerViewModel.cs | Add containers OOBE view model |
| src/βwindows/βwslsettings/βStyles/βCommonStyles.xaml | Add βNewFeatureβ InfoBadge style |
| src/βwindows/βwslsettings/βServices/βPageService.cs | Register containers page/view model |
| src/βwindows/βwslsettings/βdirectory.build.targets.in | Ensure CodeQL/XAML output path exists |
| src/βwindows/βwslsettings/βCMakeLists.txt | Add new containers hero image + sources |
| src/βwindows/βwslsettings/βApp.xaml.cs | Register DI services for new page/view model |
| src/βwindows/βwslrelay/βCMakeLists.txt | Add delay-load linker settings |
| src/βwindows/βwslinstaller/βstub/βCMakeLists.txt | Disable unity build for MIDL proxy TU |
| src/βwindows/βwslinstall/βDllMain.cpp | Improve async deployment error reporting |
| src/βwindows/βwslhost/βCMakeLists.txt | Add delay-load linker settings |
| src/βwindows/βwsldevicehoststub/βCMakeLists.txt | Disable unity build for MIDL proxy TU |
| src/βwindows/βwslcsession/βWSLCSessionRuntime.cpp | Use shared WSLC process timeout constants |
| src/βwindows/βwslcsession/βWSLCProcessIO.h | Switch to HandleWrapper for typed handles |
| src/βwindows/βwslcsession/βWSLCProcessControl.cpp | Remove unused parameter name |
| src/βwindows/βwslcsession/βWSLCProcess.h | Switch GetStdHandle() to HandleWrapper |
| src/βwindows/βwslcsession/βWSLCProcess.cpp | Switch GetStdHandle() return type |
| src/βwindows/βwslcsession/βWSLCComposeSession.cpp | Update Inspect() signature usage |
| src/βwindows/βwslcsession/βServiceProcessLauncher.h | Switch std handle type to HandleWrapper |
| src/βwindows/βwslcsession/βServiceProcessLauncher.cpp | Adjust handle return semantics |
| src/βwindows/βwslcsession/βmain.cpp | Clear WinRT factory cache on exit |
| src/βwindows/βwslcsession/βDockerHTTPClient.h | Extend APIs (size, stat, inspect options) |
| src/βwindows/βwslcsession/βCMakeLists.txt | Add EventStore + delay-load linker settings |
| src/βwindows/βWslcSDK/βwslcsdk.h | Add new WSLC HRESULT codes |
| src/βwindows/βWslcSDK/βwinrt/βWslcService.cpp | Disambiguate WinRT type names |
| src/βwindows/βWslcSDK/βwinrt/βwslcsdk.idl | Add ContainerDeleted enum value |
| src/βwindows/βWslcSDK/βwinrt/βCMakeLists.txt | Skip unity build for generated module TU |
| src/βwindows/βwslc/βtasks/βVolumeTasks.cpp | Add prune confirmation + output tweaks |
| src/βwindows/βwslc/βtasks/βSessionTasks.h | Add system info/events tasks declarations |
| src/βwindows/βwslc/βtasks/βRegistryTasks.cpp | Adjust namespace qualification |
| src/βwindows/βwslc/βtasks/βNetworkTasks.cpp | Add prune confirmation + label formatting |
| src/βwindows/βwslc/βtasks/βContainerTasks.h | Add RestartContainers task declaration |
| src/βwindows/βwslc/βtasks/βCommonTasks.h | Add shared confirmation task declaration |
| src/βwindows/βwslc/βtasks/βCommonTasks.cpp | Implement shared confirmation prompt logic |
| src/βwindows/βwslc/βservices/βWarningCallback.h | Add CLI terminal integration for warnings |
| src/βwindows/βwslc/βservices/βVolumeService.h | Adjust namespace qualification |
| src/βwindows/βwslc/βservices/βVolumeService.cpp | Adjust namespace qualification |
| src/βwindows/βwslc/βservices/βSessionService.h | Add event stream support types/APIs |
| src/βwindows/βwslc/βservices/βNetworkService.h | Adjust namespace qualification |
| src/βwindows/βwslc/βservices/βNetworkService.cpp | Adjust namespace qualification |
| src/βwindows/βwslc/βservices/βImageService.h | Expand image list/delete/push/pull APIs |
| src/βwindows/βwslc/βservices/βImageProgressCallback.h | Adjust namespace qualification |
| src/βwindows/βwslc/βservices/βImageProgressCallback.cpp | Adjust namespace qualification |
| src/βwindows/βwslc/βservices/βImageModel.h | Add digest + deleted image entry schema |
| src/βwindows/βwslc/βservices/βConsoleService.h | Switch to HandleWrapper for non-tty relay |
| src/βwindows/βwslc/βservices/βComposeService.h | Adjust namespace qualification |
| src/βwindows/βwslc/βservices/βBuildImageCallback.h | Adjust namespace qualification |
| src/βwindows/βwslc/βservices/βBuildImageCallback.cpp | Adjust namespace qualification |
| src/βwindows/βwslc/βcore/βExecutionContextData.h | Add confirmation data slots |
| src/βwindows/βwslc/βcore/βExceptions.h | Add unknown option + terminate exception |
| src/βwindows/βwslc/βcore/βEnvironmentOptions.h | Add span-based bindings overload |
| src/βwindows/βwslc/βcore/βEnvironmentOptions.cpp | Implement span-based bindings overload |
| src/βwindows/βwslc/βcore/βCLIExecutionContext.h | Refactor args/terminal/error reporting APIs |
| src/βwindows/βwslc/βcore/βCLIExecutionContext.cpp | Implement terminal options + error reporting |
| src/βwindows/βwslc/βcommands/βVolumeRemoveCommand.cpp | Update Argument::Create call pattern |
| src/βwindows/βwslc/βcommands/βVolumePruneCommand.cpp | Add force/filter/all descriptions |
| src/βwindows/βwslc/βcommands/βVolumeListCommand.cpp | Update argument descriptors/limits |
| src/βwindows/βwslc/βcommands/βVolumeInspectCommand.cpp | Update required+limit options |
| src/βwindows/βwslc/βcommands/βVolumeCreateCommand.cpp | Update argument limit options |
| src/βwindows/βwslc/βcommands/βVolumeCommand.h | Move to CreateCommands() pattern |
| src/βwindows/βwslc/βcommands/βVolumeCommand.cpp | Move to CreateCommands() pattern |
| src/βwindows/βwslc/βcommands/βVersionCommand.h | Adjust Terminal namespace exposure |
| src/βwindows/βwslc/βcommands/βVersionCommand.cpp | Adjust CLI namespace usage |
| src/βwindows/βwslc/βcommands/βSystemInfoCommand.cpp | Add system info command |
| src/βwindows/βwslc/βcommands/βSystemEventsCommand.cpp | Add system events command |
| src/βwindows/βwslc/βcommands/βSystemCommand.h | Add system subcommands declarations |
| src/βwindows/βwslc/βcommands/βSystemCommand.cpp | Register system subcommands |
| src/βwindows/βwslc/βcommands/βSettingsCommand.h | Move to CreateCommands() pattern |
| src/βwindows/βwslc/βcommands/βSettingsCommand.cpp | Move to CreateCommands() pattern |
| src/βwindows/βwslc/βcommands/βSessionRunCommand.cpp | Update argument required/desc |
| src/βwindows/βwslc/βcommands/βSessionListCommand.cpp | Update verbose argument description |
| src/βwindows/βwslc/βcommands/βSessionEnterCommand.cpp | Update global arg usage + argument defs |
| src/βwindows/βwslc/βcommands/βSessionCommand.h | Move to CreateCommands() pattern |
| src/βwindows/βwslc/βcommands/βSessionCommand.cpp | Move to CreateCommands() pattern |
| src/βwindows/βwslc/βcommands/βRootCommand.h | Move to CreateCommands() pattern |
| src/βwindows/βwslc/βcommands/βRootCommand.cpp | Register new commands + global args refactor |
| src/βwindows/βwslc/βcommands/βRegistryCommand.h | Move to CreateCommands() pattern |
| src/βwindows/βwslc/βcommands/βRegistryCommand.cpp | Move to CreateCommands() pattern |
| src/βwindows/βwslc/βcommands/βNetworkRemoveCommand.cpp | Update Argument::Create call pattern |
| src/βwindows/βwslc/βcommands/βNetworkPruneCommand.cpp | Add force/filter descriptions |
| src/βwindows/βwslc/βcommands/βNetworkListCommand.cpp | Update argument descriptors/limits |
| src/βwindows/βwslc/βcommands/βNetworkInspectCommand.cpp | Update required+limit options |
| src/βwindows/βwslc/βcommands/βNetworkDisconnectCommand.cpp | Mark args required |
| src/βwindows/βwslc/βcommands/βNetworkCreateCommand.cpp | Update required/desc/limit options |
| src/βwindows/βwslc/βcommands/βNetworkConnectCommand.cpp | Update required/limit options |
| src/βwindows/βwslc/βcommands/βNetworkCommand.h | Move to CreateCommands() pattern |
| src/βwindows/βwslc/βcommands/βNetworkCommand.cpp | Move to CreateCommands() pattern |
| src/βwindows/βwslc/βcommands/βInspectCommand.cpp | Add inspect --size argument |
| src/βwindows/βwslc/βcommands/βImageTagCommand.cpp | Mark args required |
| src/βwindows/βwslc/βcommands/βImageSaveCommand.cpp | Update required+limit options |
| src/βwindows/βwslc/βcommands/βImageRemoveCommand.cpp | Update required+limit options |
| src/βwindows/βwslc/βcommands/βImagePushCommand.cpp | Add all-tags + quiet args |
| src/βwindows/βwslc/βcommands/βImagePullCommand.cpp | Add all-tags + quiet args |
| src/βwindows/βwslc/βcommands/βImagePruneCommand.cpp | Add force/filter/all descriptions |
| src/βwindows/βwslc/βcommands/βImageLoadCommand.cpp | Add image load --quiet |
| src/βwindows/βwslc/βcommands/βImageListCommand.cpp | Add list all + digests args |
| src/βwindows/βwslc/βcommands/βImageInspectCommand.cpp | Update required+limit options |
| src/βwindows/βwslc/βcommands/βImageImportCommand.cpp | Mark import file required |
| src/βwindows/βwslc/βcommands/βImageCommand.h | Move to CreateCommands() pattern |
| src/βwindows/βwslc/βcommands/βImageCommand.cpp | Move to CreateCommands() pattern |
| src/βwindows/βwslc/βcommands/βImageBuildCommand.cpp | Update required/limit/desc options |
| src/βwindows/βwslc/βcommands/βContainerStopCommand.cpp | Update required/limit/desc options |
| src/βwindows/βwslc/βcommands/βContainerStatsCommand.cpp | Update optional+limit options |
| src/βwindows/βwslc/βcommands/βContainerStartCommand.cpp | Mark container id required |
| src/βwindows/βwslc/βcommands/βContainerRestartCommand.cpp | Add container restart command |
| src/βwindows/βwslc/βcommands/βContainerRemoveCommand.cpp | Update required+limit options |
| src/βwindows/βwslc/βcommands/βContainerPruneCommand.cpp | Add prune filter/force args |
| src/βwindows/βwslc/βcommands/βContainerLogsCommand.cpp | Add logs --details argument |
| src/βwindows/βwslc/βcommands/βContainerListCommand.cpp | Add list --size argument |
| src/βwindows/βwslc/βcommands/βContainerKillCommand.cpp | Update required+limit options |
| src/βwindows/βwslc/βcommands/βContainerInspectCommand.cpp | Add inspect --size argument |
| src/βwindows/βwslc/βcommands/βContainerExportCommand.cpp | Update required+desc options |
| src/βwindows/βwslc/βcommands/βContainerExecCommand.cpp | Update required/limit/desc options |
| src/βwindows/βwslc/βcommands/βContainerCpCommand.cpp | Add cp follow-link + quiet args |
| src/βwindows/βwslc/βcommands/βContainerCommand.h | Move to CreateCommands() + add restart |
| src/βwindows/βwslc/βcommands/βContainerCommand.cpp | Register restart subcommand |
| src/βwindows/βwslc/βcommands/βContainerAttachCommand.cpp | Mark container id required |
| src/βwindows/βwslc/βcommands/βComposeCommand.h | Move to CreateCommands() pattern |
| src/βwindows/βwslc/βcommands/βComposeCommand.cpp | Update compose path arg definition |
| src/βwindows/βwslc/βCMakeLists.txt | Adjust unity build + delay-load config |
| src/βwindows/βwslc/βarguments/βArgumentValidation.h | Remove ValidateFilter declaration |
| src/βwindows/βwslc/βarguments/βArgumentValidation.cpp | Add Timeout validation; remove ValidateFilter |
| src/βwindows/βservice/βstub/βCMakeLists.txt | Disable unity build for MIDL proxy TU |
| src/βwindows/βservice/βinc/βWSLCShared.idl | Add logs/details + list/size flags |
| src/βwindows/βservice/βexe/βWSLCSessionManagerFactory.cpp | Use CATCH_RETURN() for COM factory |
| src/βwindows/βservice/βexe/βWslCoreVm.h | Add guarded plugin Plan9 server member |
| src/βwindows/βservice/βexe/βWslCoreTcpIpStateTracking.h | Refactor route ordering comparator |
| src/βwindows/βservice/βexe/βPluginManager.cpp | Change ProcessGetFd to return SOCKET |
| src/βwindows/βservice/βexe/βLxssUserSessionFactory.cpp | Use CATCH_RETURN() for COM factory |
| src/βwindows/βservice/βexe/βLxssUserSession.cpp | Fix typo + correct span slicing |
| src/βwindows/βservice/βexe/βLxssInstance.cpp | Update LX_INIT_CREATE_PROCESS flags/message |
| src/βwindows/βservice/βexe/βHcsVirtualMachine.h | Add Plan9 server member |
| src/βwindows/βlibwsl/βCMakeLists.txt | Add delay-load linker settings |
| src/βwindows/βinc/βWslPluginApi.h | Update fd API to SOCKET + docs |
| src/βwindows/βinc/βwslc_schema.h | Add inspect size fields + events schema |
| src/βwindows/βinc/βdocker_schema.h | Add archive stat + size fields + list extras |
| src/βwindows/βcommon/βwslutil.h | Improve COMOutputHandle socket cleanup + TryParse |
| src/βwindows/βcommon/βWslSecurity.cpp | Add redirection trust mitigation + rename var |
| src/βwindows/βcommon/βWSLCProcessLauncher.h | Switch std handle type to HandleWrapper |
| src/βwindows/βcommon/βWSLCProcessLauncher.cpp | Switch GetStdHandle() return type |
| src/βwindows/βcommon/βWslCoreNetworkEndpointSettings.h | Add fallback gateway declaration |
| src/βwindows/βcommon/βWslCoreNetworkEndpointSettings.cpp | Centralize fallback gateway computation |
| src/βwindows/βcommon/βWslClient.cpp | Rename prompt helper function |
| src/βwindows/βcommon/βWSLCContainerEntry.h | Add safe container entry array ownership type |
| src/βwindows/βcommon/βwslc/βWSLCSessionDefaults.h | Add shared runtime timeout constants |
| src/βwindows/βcommon/βwslc/βservices/βWinCredStorage.h | Add WinCred backend interface |
| src/βwindows/βcommon/βwslc/βservices/βICredentialStorage.h | Add credential storage interface/factory |
| src/βwindows/βcommon/βwslc/βservices/βICredentialStorage.cpp | Implement backend selection |
| src/βwindows/βcommon/βwslc/βservices/βFileCredStorage.h | Add DPAPI-encrypted file backend schema |
| src/βwindows/βcommon/βwslc/βmodels/βContainerModel.h | Expand container model + output schema |
| src/βwindows/βcommon/βwslc/βmodels/βContainerModel.cpp | Align mount type constant usage |
| src/βwindows/βcommon/βwslc/βcli/βTerminal.h | Move Terminal into ::cli + add Confirm/Flush |
| src/βwindows/βcommon/βwslc/βcli/βTerminal.cpp | Implement Confirm; namespace move |
| src/βwindows/βcommon/βwslc/βcli/βTableOutput.cpp | Namespace move to ::cli |
| src/βwindows/βcommon/βwslc/βcli/βOutputChannel.h | Namespace move to ::cli |
| src/βwindows/βcommon/βwslc/βcli/βOutputChannel.cpp | Namespace move to ::cli |
| src/βwindows/βcommon/βwslc/βcli/βInputChannel.h | Namespace move to ::cli |
| src/βwindows/βcommon/βwslc/βcli/βInputChannel.cpp | Namespace move to ::cli |
| src/βwindows/βcommon/βtimestamp.hpp | Add invariant time formatting APIs |
| src/βwindows/βcommon/βstring.hpp | Add reclaimed-space precision + Ellipsis API |
| src/βwindows/βcommon/βstring.cpp | Implement Ellipsis with ICU codepoint widths |
| src/βwindows/βcommon/βNatNetworking.cpp | Fix comment spelling |
| src/βwindows/βcommon/βMountSpecParsing.h | Use WSLCMountType from shared header |
| src/βwindows/βcommon/βHandleIO.h | Expand HandleWrapper + increase buffer size |
| src/βwindows/βcommon/βfilesystem.hpp | Add staging dir + POSIX basename helpers |
| src/βwindows/βcommon/βfilesystem.cpp | Implement staging dir + POSIX basename |
| src/βwindows/βcommon/βExecutionContext.h | Make macros safe in statement contexts |
| src/βshared/βinc/βprettyprintshared.h | Make string pretty-print bounds-safe |
| src/βshared/βinc/βgslhelpers.h | Fix comment spelling |
| src/βshared/βconfigfile/βconfigfile.cpp | Adjust escape parsing behavior |
| src/βlinux/βplan9/βp9protohelpers.h | Replace FAIL_FAST with exception path |
| src/βlinux/βplan9/βp9log.h | Make logging resilient to invalid strings |
| src/βlinux/βnetlinkutil/βRoutingTable.cpp | Remove unsupported Update route operation |
| src/βlinux/βinit/βWslDistributionConfig.h | Replace cgroup path with namespace fd |
| src/βlinux/βinit/βWslDistributionConfig.cpp | Adjust config parsing flags |
| src/βlinux/βinit/βwaitablevalue.h | Improve value move semantics |
| src/βlinux/βinit/βutil.h | Refactor cgroup namespace/move APIs |
| src/βlinux/βinit/βplan9.h | Update server signature/ownership |
| src/βlinux/βinit/βGnsPortTracker.h | Refactor event queue/types + remove future |
| src/βlinux/βinit/βGnsEngine.cpp | Remove Update route handling |
| src/βlinux/βinit/βdrvfs.cpp | Fix ro handling in mount option conversion |
| src/βlinux/βinit/βconfig.h | Refactor env block creation signature |
| src/βlinux/βinc/βlxwil.h | Make macros safe in statement contexts |
| SECURITY.md | Add repository-specific WSL security model section |
| packages.config | Bump DeviceHost + TestData packages |
| msipackage/βpackage.wix.in | Register new COM interface IID |
| intune/βzh-TW/βWSL.adml | Localization tweak (quotes/wording) |
| intune/βzh-CN/βWSL.adml | Localization tweak (wording) |
| doc/βmkdocs.yml | Add security model page to nav |
| doc/βdocs/βtechnical-documentation/βwslservice.exe.md | Fix paths to moved sources |
| doc/βdocs/βtechnical-documentation/βsecurity.md | Add new security model doc |
| doc/βdocs/βindex.md | Link to security model doc |
| doc/βdocs/βapi-reference/βc/βerror-codes.md | Document new WSLC error codes |
| distributions/βvalidate-modern.py | Relax template mode + add /usr/share/wsl path |
| distributions/βrequirements.txt | Bump GitPython pin |
| CMakeLists.txt | Enable global unity build configuration |
| .pipelines/βbuild-job.yml | Emit MSBuild binlogs from cmake builds |
| .github/βworkflows/βdocumentation.yml | Bump deploy-pages action version |
| .github/βCODEOWNERS | Update default/code area owners |
π‘ Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
21
to
24
| namespace wsl::windows::wslc::services { | ||
|
|
||
| using namespace wsl::windows::wslc::cli; | ||
| class ConsoleService |
Comment on lines
24
to
+27
| namespace wsl::windows::wslc::services { | ||
|
|
||
| using namespace wsl::windows::wslc::cli; | ||
|
|
Comment on lines
22
to
25
| namespace wsl::windows::wslc::services { | ||
|
|
||
| using namespace wsl::windows::wslc::cli; | ||
| struct NetworkService |
Comment on lines
20
to
23
| namespace wsl::windows::wslc::services { | ||
|
|
||
| using namespace wsl::windows::wslc::cli; | ||
| struct SessionInformation |
Comment on lines
22
to
25
| namespace wsl::windows::wslc::services { | ||
|
|
||
| using namespace wsl::windows::wslc::cli; | ||
| struct VolumeService |
Comment on lines
9
to
13
| namespace wsl::windows::wslc::services { | ||
|
|
||
| using namespace wsl::windows::wslc::cli; | ||
|
|
||
| // Adapts the service IWarningCallback COM sink onto the CLI Terminal so the CLI, not the |
Comment on lines
+15
to
+21
| #include "CLIExecutionContext.h" | ||
|
|
||
| using wsl::windows::wslc::execution::CLIExecutionContext; | ||
|
|
||
| namespace wsl::windows::wslc::task { | ||
| void ConfirmAction(CLIExecutionContext& context); | ||
| } // namespace wsl::windows::wslc::task |
Ben Hillis (benhillis)
approved these changes
Sep 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.

Summary of the Pull Request
This change merges the latest master into feature/compose
PR Checklist
Detailed Description of the Pull Request / Additional comments
Validation Steps Performed