{{ message }}
Redesign process transport options for v2 - #2536
Draft
SteveSandersonMS wants to merge 1 commit into
Draft
Conversation
SteveSandersonMS
force-pushed
the
copilot-sdk-2523-process-transport
branch
from
September 4, 2026 16:33
d37b73a to
e16c5cd
Compare
Move process-scoped launch settings from shared client options onto the out-of-process runtime connections across SDKs. Update docs, changelog migration notes, tests, and snapshots for the new v2 API boundary. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
SteveSandersonMS
force-pushed
the
copilot-sdk-2523-process-transport
branch
from
September 4, 2026 16:39
e16c5cd to
2d358e0
Compare
Contributor
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
Closes #2523.
This PR implements the v2 process/transport configuration boundary across SDKs by moving SDK-managed process launch settings off shared client options and onto the out-of-process runtime connection/transport APIs that actually spawn a runtime process.
Current-main findings
Before editing, I refreshed and inspected the latest
origin/mainand the issue context from #2523, parent #2522, superseded tracker #1934, and linked historical issues/PRs. Currentmainalready contains the compatible in-process groundwork from #1930/#1976 for many first-class options, but the client-wide process launch APIs remained present and could still be configured for transports where they are inapplicable. This PR carries forward the remaining maintainer-intended v2 cleanup from #1934/#2523 rather than treating it as optional design exploration.Breaking changes and migration
CopilotClientOptions.WorkingDirectoryandCopilotClientOptions.Environment; moved them to stdio/TCP out-of-process runtime connections. RenamedChildProcessRuntimeConnectiontoOutOfProcessRuntimeConnection.ClientOptions.WorkingDirectoryandClientOptions.Env; moved them toStdioConnectionandTCPConnection. The unexported child-process helper is renamed to out-of-process terminology.CopilotClientOptions.cwd/setCwdandCopilotClientOptions.environment/setEnvironment; moved them toStdioRuntimeConnectionandTcpRuntimeConnectionasworkingDirectoryandenvironment. Java has no shared child-process base class, so this intentionally uses the two concrete out-of-process connection types.workingDirectoryandenv; moved them to the renamedOutOfProcessRuntimeConnectionbase used by stdio/TCP connections. RenamedChildProcessRuntimeConnectionaccordingly.working_directoryandenv; moved them to the renamedOutOfProcessRuntimeConnectionbase used by stdio/TCP connections. RenamedChildProcessRuntimeConnectionaccordingly.program, prefix/raw args,extra_args,working_directory,env, andenv_removefromClientOptionstoOutOfProcessOptionscarried by the process-spawning transport variants.Transport::Externaldoes not expose process launch options because the SDK does not own that process.The changelog and SDK READMEs include before/after examples for the migration path.
Runtime follow-up
The SDK-side API cleanup is implemented here. Runtime-side per-client host environment consumption remains tracked separately in #2533, the consolidated follow-up for runtime work required by #2523. This PR does not embed or acquire runtime artifacts and does not take lifecycle/SQLite work from #2524/#2525.
Validation
origin/mainbefore final rebase.getCwd,setCwd,.cwd,CopilotClientOptions.environment,getEnvironment,setEnvironment) after the migration../mvnw test-compile jar:jar,./mvnw -pl sdk verify -Dskip.test.harness=true, and./mvnw -pl sdk spotless:checkfor the environment-only phase. The follow-up cwd/full cross-SDK validation is intentionally left to CI because local E2E/Maven runs were prohibitively expensive in this sandbox.