feat: add WSL module to devcontainer-mcp-core#11
Merged
Conversation
Phase 1 — Upgrade rmcp and split tools: - Upgrade rmcp from 0.1 to 1.6 (composable #[tool_router] + #[tool_handler]) - Migrate all tools from #[tool(param)] to Parameters<T> pattern - Split 1200-line monolithic tools.rs into ~40 focused files: tools/devpod/ - 12 files tools/devcontainer/ - 8 files tools/codespaces/ - 8 files tools/auth/ - 4 files - Each tool gets its own #[tool_router] impl block - Backend routers combined hierarchically with + operator Phase 2 — Templated SKILL.md: - Split SKILL.md into skills/ fragments (10 markdown files + 4 tool lists) - build.rs assembles YAML frontmatter + body at build time - Platform-specific sections (WSL) conditionally included on Windows Phase 3 — WSL support (Windows-only): - Add cfg-gated wsl.rs to core crate with list/exec/terminate/shutdown/ set_default + file operations - Add cfg-gated tools/wsl/ with 6 tool files (9 MCP tools total) - WSL skill docs + tool names auto-included on Windows builds via build.rs - Add Windows x64 build job to release.yml All code gated with #[cfg(target_os = "windows")] — zero dead code on Linux/macOS. WSL tools only ship in Windows binaries.
23e218d to
341df09
Compare
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
Adds a WSL (Windows Subsystem for Linux) backend module to
devcontainer-mcp-core, gated behind#[cfg(target_os = "windows")].Changes
crates/devcontainer-mcp-core/src/wsl.rs(new)list()— parseswsl --list --verboseinto structuredWslDistroentriesexec(distro, command)— runs a command inside a WSL distro viawsl -d <distro> -- sh -c <command>terminate(distro)— stops a running distroshutdown()— shuts down all WSL distrosset_default(distro)— sets the default distributionfile_read/file_write/file_edit/file_list— file operations reusingfile_opshelperscli.rsCliBinary::Wslvariant (cfg-gated) mapping to"wsl"commanderror.rsError::WslNotFoundvariant (cfg-gated) with install instructionslib.rspub mod wsl(cfg-gated)All WSL code is excluded on non-Windows targets. Verified with
cargo checkon Linux.