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