Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 2 additions & 14 deletions dotnet/test/E2E/PendingWorkResumeE2ETests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,7 @@ public class PendingWorkResumeE2ETests(E2ETestFixture fixture, ITestOutputHelper
private static readonly TimeSpan PendingWorkTimeout = TimeSpan.FromSeconds(60);
private const string SharedToken = "pending-work-resume-shared-token";

// Skipped after the runtime 1.0.56 bump. Runtime PR #9040 (commit b8e1220b45) changed
// SDKServer.handleConnectionClosed to tear down the session when the last RPC client
// disconnects, so the in-memory pending permission request is gone before the resumed
// client can satisfy it and HandlePendingPermissionRequest returns success=false. This
// test models same-process ForceStop+resume; it needs to be redesigned to either keep
// an owner connected (warm resume) or to model a true process restart against the
// persisted session state.
[Fact(Skip = "Runtime 1.0.56 cleans up the session on last-client disconnect (copilot-agent-runtime PR #9040), so the in-memory pending request is gone before resume can satisfy it. Test needs redesign.")]
[Fact]
public async Task Should_Continue_Pending_Permission_Request_After_Resume()
{
var originalPermissionRequest = new TaskCompletionSource<PermissionRequest>(TaskCreationOptions.RunContinuationsAsynchronously);
Expand Down Expand Up @@ -95,12 +88,7 @@ static string ResumePermissionTool([Description("Value to transform")] string va
$"ORIGINAL_SHOULD_NOT_RUN_{value}";
}

// Skipped for the same reason as Should_Continue_Pending_Permission_Request_After_Resume:
// runtime 1.0.56 (copilot-agent-runtime PR #9040) tears down the session when the last
// RPC client disconnects, so the in-memory pending external tool call is gone before
// the resumed client can satisfy it. Needs redesign to keep an owner connected (warm)
// or to model true process-restart resume from persisted state.
[Fact(Skip = "Runtime 1.0.56 cleans up the session on last-client disconnect (copilot-agent-runtime PR #9040), so the in-memory pending tool call is gone before resume can satisfy it. Test needs redesign.")]
[Fact]
public async Task Should_Continue_Pending_External_Tool_Request_After_Resume()
{
var originalToolStarted = new TaskCompletionSource<string>(TaskCreationOptions.RunContinuationsAsynchronously);
Expand Down
17 changes: 0 additions & 17 deletions go/internal/e2e/pending_work_resume_e2e_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,6 @@ func TestPendingWorkResumeE2E(t *testing.T) {
ctx := testharness.NewTestContext(t)

t.Run("should continue pending permission request after resume", func(t *testing.T) {
// Skipped after the runtime 1.0.56 bump. Runtime PR #9040 (commit b8e1220b45)
// changed SDKServer.handleConnectionClosed to tear down the session when the
// last RPC client disconnects, so the in-memory pending permission request is
// gone before the resumed client can satisfy it and HandlePendingPermissionRequest
// returns Success=false. This test models same-process ForceStop+resume; it
// needs to be redesigned to either keep an owner connected (warm resume) or to
// model a true process restart against the persisted session state.
t.Skip("Runtime 1.0.56 cleans up the session on last-client disconnect (copilot-agent-runtime PR #9040), so the in-memory pending request is gone before resume can satisfy it. Test needs redesign.")

ctx.ConfigureForTest(t)

_, cliURL := startTcpServer(t, ctx)
Expand Down Expand Up @@ -147,14 +138,6 @@ func TestPendingWorkResumeE2E(t *testing.T) {
})

t.Run("should continue pending external tool request after resume", func(t *testing.T) {
// Skipped for the same reason as "should continue pending permission request
// after resume": runtime 1.0.56 (copilot-agent-runtime PR #9040) tears down
// the session when the last RPC client disconnects, so the in-memory pending
// external tool call is gone before the resumed client can satisfy it. Needs
// redesign to keep an owner connected (warm) or to model true process-restart
// resume from persisted state.
t.Skip("Runtime 1.0.56 cleans up the session on last-client disconnect (copilot-agent-runtime PR #9040), so the in-memory pending tool call is gone before resume can satisfy it. Test needs redesign.")

ctx.ConfigureForTest(t)

_, cliURL := startTcpServer(t, ctx)
Expand Down
72 changes: 36 additions & 36 deletions nodejs/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion nodejs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
"author": "GitHub",
"license": "MIT",
"dependencies": {
"@github/copilot": "^1.0.57-2",
"@github/copilot": "^1.0.57-3",
"vscode-jsonrpc": "^8.2.1",
"zod": "^4.3.6"
},
Expand Down
2 changes: 1 addition & 1 deletion nodejs/samples/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 2 additions & 15 deletions nodejs/test/e2e/pending_work_resume.e2e.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -166,14 +166,7 @@ describe("Pending work resume", async () => {
return `localhost:${port}`;
}

// Skipped after the runtime 1.0.56 bump. Runtime PR #9040 (commit b8e1220b45)
// changed SDKServer.handleConnectionClosed to tear down the session when the
// last RPC client disconnects, so the in-memory pending permission request is
// gone before the resumed client can satisfy it and handlePendingPermissionRequest
// returns success=false. This test models same-process ForceStop+resume; it needs
// to be redesigned to either keep an owner connected (warm resume) or to model
// a true process restart against the persisted session state.
it.skip(
it(
"should continue pending permission request after resume",
{ timeout: TEST_TIMEOUT_MS },
async () => {
Expand Down Expand Up @@ -246,13 +239,7 @@ describe("Pending work resume", async () => {
}
);

// Skipped for the same reason as "should continue pending permission request
// after resume": runtime 1.0.56 (copilot-agent-runtime PR #9040) tears down the
// session when the last RPC client disconnects, so the in-memory pending external
// tool call is gone before the resumed client can satisfy it. Needs redesign to
// keep an owner connected (warm) or to model true process-restart resume from
// persisted state.
it.skip(
it(
"should continue pending external tool request after resume",
{ timeout: TEST_TIMEOUT_MS },
async () => {
Expand Down
27 changes: 0 additions & 27 deletions python/e2e/test_pending_work_resume_e2e.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,20 +128,6 @@ async def _safe_force_stop(client: CopilotClient) -> None:


class TestPendingWorkResume:
# Skipped after the runtime 1.0.56 bump. Runtime PR #9040 (commit b8e1220b45)
# changed SDKServer.handleConnectionClosed to tear down the session when the last
# RPC client disconnects, so the in-memory pending permission request is gone
# before the resumed client can satisfy it and handle_pending_permission_request
# returns success=False. This test models same-process force_stop+resume; it
# needs to be redesigned to either keep an owner connected (warm resume) or to
# model a true process restart against the persisted session state.
@pytest.mark.skip(
reason=(
"Runtime 1.0.56 cleans up the session on last-client disconnect "
"(copilot-agent-runtime PR #9040), so the in-memory pending request "
"is gone before resume can satisfy it. Test needs redesign."
)
)
async def test_should_continue_pending_permission_request_after_resume(
self, ctx: E2ETestContext
):
Expand Down Expand Up @@ -222,19 +208,6 @@ def resumed_tool_handler(args):
finally:
await _safe_force_stop(server)

# Skipped for the same reason as
# test_should_continue_pending_permission_request_after_resume: runtime 1.0.56
# (copilot-agent-runtime PR #9040) tears down the session when the last RPC
# client disconnects, so the in-memory pending external tool call is gone before
# the resumed client can satisfy it. Needs redesign to keep an owner connected
# (warm) or to model true process-restart resume from persisted state.
@pytest.mark.skip(
reason=(
"Runtime 1.0.56 cleans up the session on last-client disconnect "
"(copilot-agent-runtime PR #9040), so the in-memory pending tool call "
"is gone before resume can satisfy it. Test needs redesign."
)
)
async def test_should_continue_pending_external_tool_request_after_resume(
self, ctx: E2ETestContext
):
Expand Down
Loading
Loading