Conversation
Co-authored-by: edburns <75821+edburns@users.noreply.github.com>
Copilot stopped work on behalf of
edburns due to an error
August 5, 2026 20:34
edburns
marked this pull request as ready for review
August 5, 2026 21:26
Contributor
There was a problem hiding this comment.
Pull request overview
Extends Java test coverage across both subprocess and InProcess transports.
Changes:
- Runs all Surefire and Failsafe tests under the InProcess profile.
- Routes E2E environment configuration through
InProcessEnvGuard. - Skips tests requiring subprocess-specific behavior.
Show a summary per file
| File | Description |
|---|---|
java/sdk/pom.xml |
Configures InProcess test execution. |
E2ETestContext.java |
Adds InProcess environment handling. |
SkipInProcess.java |
Exposes the execution condition. |
RequireInProcess.java |
Exposes the execution condition. |
SlashCommandsIT.java |
Skips subprocess-only integration tests. |
RpcServerMiscE2ETest.java |
Skips incompatible account-flow test. |
PerSessionAuthTest.java |
Skips incompatible auth-isolation test. |
CopilotClientTest.java |
Skips selected transport-specific tests. |
ClientOptionsE2ETest.java |
Skips subprocess argument-forwarding tests. |
Review details
Suppressed comments (2)
java/sdk/pom.xml:631
- Failsafe also needs a fork for its configured environment variables to take effect. With
forkCount=0, neitherCOPILOT_SDK_DEFAULT_CONNECTIONnorCOPILOT_CLI_PATHis injected, so removing the<includes>filter merely runs all ITs on the default transport rather than providing InProcess parity.
<forkCount>0</forkCount>
java/sdk/src/test/java/com/github/copilot/E2ETestContext.java:373
- An explicit non-InProcess connection must win over the ambient default, matching
CopilotClient's transport-selection contract. CurrentlyRuntimeConnection.forStdio()/forTcp()falls through to the environment check, socreateClient(options)treats it as InProcess, omits the context's stdio settings, and mutates the native environment even though the client will use the explicit connection.
RuntimeConnection connection = options.getConnection();
if (connection instanceof InProcessRuntimeConnection) {
return true;
}
String defaultConnection = System.getenv("COPILOT_SDK_DEFAULT_CONNECTION");
- Files reviewed: 9/9 changed files
- Comments generated: 3
- Review effort level: Balanced
This comment has been minimized.
This comment has been minimized.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
Cross-SDK Consistency Review ✅All 13 changed files are confined to the Java SDK (
No public API changes were made — the PR adds InProcess test-mode routing and skip annotations purely within the Java test layer. No cross-SDK consistency issues found. This change does not need to be mirrored in other SDKs (Node.js, Python, Go, .NET, Rust).
|
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.
<includes>restriction in-Pinprocessprofile so all ITs runE2ETestContext.createClient()/createClient(options)to detect InProcess mode and route env vars throughInProcessEnvGuardinstead ofcliPath/environment/cwd; addedCOPILOT_SDK_DEFAULT_CONNECTION=inprocessto surefire env vars and forkCount/parallel settings in the inprocess profileClientOptionsE2ETest, parts ofCopilotClientTest,PerSessionAuthTest,RpcServerMiscE2ETest,SlashCommandsIT) with@SkipInProcess("reason")mvn compile test-compilesucceedsmvn clean verify -Pinprocess/mvn clean verifyruns not completed due to time constraints — recommend running in CI to confirm full parity before merge