Skip to content

Merge latest master into feature/compose - #41670

Merged
Blue (OneBlue) merged 103 commits into
feature/composefrom
user/oneblue/merge-master-2
Sep 22, 2026
Merged

Blue (OneBlue) merged 103 commits into
feature/composefrom
user/oneblue/merge-master-2

Conversation

@OneBlue

Copy link
Copy Markdown
Collaborator

Summary of the Pull Request

This change merges the latest master into feature/compose

PR Checklist

  • Closes: Link to issue #xxx
  • Communication: I've discussed this with core contributors already. If work hasn't been agreed, this work might be rejected
  • Tests: Added/updated if needed and all pass
  • Localization: All end user facing strings can be localized
  • Dev docs: Added/updated if needed
  • Documentation updated: If checked, please file a pull request on our docs repo and link it here: #xxx

Detailed Description of the Pull Request / Additional comments

Validation Steps Performed

Feng Wang (chemwolf6922) and others added 30 commits August 26, 2026 11:04
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>
)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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>
…ncorrectly disabled- #41648 (#41648)

Co-authored-by: Catalin-Emil Fetoiu <cfetoiu@microsoft.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
Co-authored-by: WSL localization <noreply@microsoft.com>
Copilot AI lite review requested due to automatic review settings September 22, 2026 00:01
@OneBlue
Blue (OneBlue) requested review from a team as code owners September 22, 2026 00:01
@OneBlue Blue (OneBlue) changed the title User/oneblue/merge master 2 Sep 22, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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 Low severity

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
@OneBlue
Blue (OneBlue) merged commit 5077ca3 into feature/compose Sep 22, 2026
7 checks passed
@OneBlue
Blue (OneBlue) deleted the user/oneblue/merge-master-2 branch September 22, 2026 01:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment