Uh oh!
There was an error while loading. Please reload this page.
feat(server): typed no-execution-plane environment for workerd profile - #42113
Merged
Conversation
kitlangton
enabled auto-merge (squash)
August 12, 2026 18:44
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 freeto 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.
What
Complete the workerd profile's capability story after #41918 and #42076: a bare location now has a typed no-execution-plane process spawner instead of profile-level process stubs.
Shell and stdio MCP route through the location
Environment. Bare locations fail each operation with a clear location-specific error; attaching a workspace driver automatically supplies the execution plane without changing the profile.How
EnvironmentUnavailableinpackages/core/src/environment/unavailable.ts. ItsChildProcessSpawnerfails with Effect's typedPlatformErrorchannel and the message:This location has no execution plane: no workspace is attached and the host cannot spawn processes.Shell.Servicereplacement, allowing the standard location-scoped Shell service to build.Shell.createinstead of swallowing them in its managing fiber.mcp.stdiocapability flag from core, server options, routes, and the workerd profile. Local MCP servers now attempt connection throughEnvironment.spawnerand record the no-plane error asfailed.flowchart TD L[Location] --> W{workspace attached?} W -->|yes| D[Workspace driver] W -->|no| H[Host spawner] H -->|workerd| N[No-execution-plane spawner] D --> E[Environment.spawner] N --> E E --> S[Shell] E --> M[stdio MCP] N --> F[Typed per-operation PlatformError]Scope
v2.ShellParseimplementation beforeShell.create. This PR does not bypass command parsing or permission analysis; direct Shell service operations and every consumer that reachesEnvironment.spawnerget the typed fallback.Testing
bun installbun typecheckinpackages/corebun typecheckinpackages/serverbun run test test/mcp.test.ts test/environment.test.ts test/tool-shell.test.tsinpackages/core(69 pass, 9 skip)bun run testinpackages/workerd-spike(6 pass, real workerd isolate)bun run probe:workerdinpackages/server(bundle probe OK, 29.9 MiB)bun turbo typecheck --concurrency=3(32 tasks passed)