From 3641197733689fea24cf1ae0b508ef12d996378d Mon Sep 17 00:00:00 2001 From: Will Glas <35304767+willglas@users.noreply.github.com> Date: Mon, 1 Jun 2026 08:36:25 -0700 Subject: [PATCH 1/3] fix(nodejs): Map suppressResumeEvent to disableResume on the wire The Node.js SDK's resumeSession() sends suppressResumeEvent as-is on the JSON-RPC wire, but the server recognizes the field as disableResume. This aligns with the Rust SDK which already maps suppress_resume_event to disableResume at the serialization boundary. No public API changes - ResumeSessionConfig.suppressResumeEvent remains the user-facing field name. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- nodejs/src/client.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nodejs/src/client.ts b/nodejs/src/client.ts index 0a4943879..8dc35b8d7 100644 --- a/nodejs/src/client.ts +++ b/nodejs/src/client.ts @@ -1338,7 +1338,7 @@ export class CopilotClient { instructionDirectories: config.instructionDirectories, disabledSkills: config.disabledSkills, infiniteSessions: config.infiniteSessions, - suppressResumeEvent: config.suppressResumeEvent, + disableResume: config.suppressResumeEvent, continuePendingWork: config.continuePendingWork, gitHubToken: config.gitHubToken, remoteSession: config.remoteSession, From 83d1c2665b98cfa3d13b2f08fd4e3ebada80da1f Mon Sep 17 00:00:00 2001 From: Will Glas <35304767+willglas@users.noreply.github.com> Date: Mon, 1 Jun 2026 10:02:50 -0700 Subject: [PATCH 2/3] fix(dotnet): Map SuppressResumeEvent to disableResume on the wire The .NET SDK's JsonSerializerDefaults.Web camelCases SuppressResumeEvent to suppressResumeEvent, but the server expects disableResume. Add an explicit JsonPropertyName attribute to produce the correct wire name. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- dotnet/src/Client.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dotnet/src/Client.cs b/dotnet/src/Client.cs index 16c02e887..4e8715bd5 100644 --- a/dotnet/src/Client.cs +++ b/dotnet/src/Client.cs @@ -2385,7 +2385,7 @@ internal record ResumeSessionRequest( bool? EnableHostGitOperations, bool? EnableSessionStore, bool? EnableSkills, - bool? SuppressResumeEvent, + [property: JsonPropertyName("disableResume")] bool? SuppressResumeEvent, bool? Streaming, bool? IncludeSubAgentStreamingEvents, IDictionary? McpServers, From 395decd9d3661add2dd3bee14abc14df9506eed2 Mon Sep 17 00:00:00 2001 From: Will Glas <35304767+willglas@users.noreply.github.com> Date: Mon, 1 Jun 2026 10:02:55 -0700 Subject: [PATCH 3/3] test: Add gitHubToken to suspend E2E test server The createTcpServer() helper was missing gitHubToken, causing the suspend-resume test to fail when COPILOT_HMAC_KEY is unavailable (e.g. fork PRs, local development). This matches the pattern used in pending_work_resume and other multi-client E2E tests. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- nodejs/test/e2e/suspend.e2e.test.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nodejs/test/e2e/suspend.e2e.test.ts b/nodejs/test/e2e/suspend.e2e.test.ts index a3820f739..79e898726 100644 --- a/nodejs/test/e2e/suspend.e2e.test.ts +++ b/nodejs/test/e2e/suspend.e2e.test.ts @@ -6,7 +6,7 @@ import { describe, expect, it, onTestFinished } from "vitest"; import { z } from "zod"; import { approveAll, CopilotClient, defineTool, RuntimeConnection } from "../../src/index.js"; import type { PermissionRequest, PermissionRequestResult, SessionEvent } from "../../src/index.js"; -import { createSdkTestContext } from "./harness/sdkTestContext.js"; +import { createSdkTestContext, DEFAULT_GITHUB_TOKEN } from "./harness/sdkTestContext.js"; const SUSPEND_TIMEOUT_MS = 60_000; const TEST_TIMEOUT_MS = 180_000; @@ -65,6 +65,7 @@ describe("Suspend RPC", async () => { const server = new CopilotClient({ workingDirectory: workDir, env, + gitHubToken: DEFAULT_GITHUB_TOKEN, connection: RuntimeConnection.forTcp({ path: process.env.COPILOT_CLI_PATH, connectionToken: SHARED_TOKEN,