Update @github/copilot to 1.0.64-3#1752
Conversation
- Updated nodejs and test harness dependencies - Re-ran code generators - Formatted generated code
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Generated by SDK Consistency Review Agent for issue #1752 · sonnet46 1.9M
There was a problem hiding this comment.
Pull request overview
This PR bumps the repo’s reference implementation dependency @github/copilot to 1.0.64-3 and regenerates the SDK protocol surface across languages (Node, Python, Go, Rust, .NET, Java) to match the updated schemas.
Changes:
- Updated
@github/copilotversion in Node/test harness and Java codegen dependency inputs. - Regenerated protocol types/bindings across SDKs (new fields like
requestFingerprint,argumentHint, and new RPCs such asaccount.*auth helpers andsession.provider.add). - Updated Java generated records/APIs and Go/Rust/Python/Node/.NET generated protocol files accordingly.
Show a summary per file
| File | Description |
|---|---|
| test/harness/package.json | Bumps harness devDependency @github/copilot to ^1.0.64-3. |
| test/harness/package-lock.json | Updates lockfile entries for @github/copilot and platform packages to 1.0.64-3. |
| nodejs/package.json | Bumps Node SDK dependency @github/copilot to ^1.0.64-3. |
| nodejs/package-lock.json | Updates Node SDK lockfile to @github/copilot@1.0.64-3 and platform packages. |
| nodejs/samples/package-lock.json | Updates sample lockfile dependency to ^1.0.64-3. |
| nodejs/src/generated/session-events.ts | Adds requestFingerprint + ModelCallFailureRequestFingerprint and argumentHint on skills event types. |
| nodejs/src/generated/rpc.ts | Adds new account.* auth RPCs and session.provider.add plus supporting types. |
| python/copilot/generated/session_events.py | Adds request_fingerprint and ModelCallFailureRequestFingerprint; adds argument_hint to skill types. |
| python/copilot/generated/rpc.py | Adds new account auth/login/logout RPC types + provider add types; updates helpers. |
| go/zsession_events.go | Re-exports ModelCallFailureRequestFingerprint in top-level Go session events. |
| go/rpc/zsession_events.go | Adds RequestFingerprint + skill ArgumentHint in Go session-events types. |
| go/rpc/zrpc.go | Adds account auth/login/logout types and session.provider.add request/response types + APIs. |
| go/rpc/zrpc_encoding.go | Updates union encoding/decoding helpers; adds JSON unmarshalling for new auth-related structs. |
| rust/src/generated/session_events.rs | Adds ModelCallFailureRequestFingerprint, request_fingerprint, and skill argument_hint. |
| rust/src/generated/api_types.rs | Adds RPC method constants + new account/provider types (and related doc changes). |
| rust/src/generated/rpc.rs | Adds client RPC methods for account auth/login/logout and session provider add. |
| dotnet/src/Generated/SessionEvents.cs | Adds RequestFingerprint and ModelCallFailureRequestFingerprint; adds ArgumentHint and JSON serializable registration. |
| java/pom.xml | Updates the readonly property mirroring the reference implementation version to ^1.0.64-3. |
| java/scripts/codegen/package.json | Updates Java codegen dependency @github/copilot to ^1.0.64-3. |
| java/scripts/codegen/package-lock.json | Updates Java codegen lockfile to @github/copilot@1.0.64-3. |
| java/src/generated/java/com/github/copilot/generated/session types (multiple) | Adds new generated event/type records (ModelCallFailureRequestFingerprint, skill argumentHint, etc.). |
| java/src/generated/java/com/github/copilot/generated/rpc/SessionProviderApi.java | Adds session.provider.add binding and JSON params override behavior. |
| java/src/generated/java/com/github/copilot/generated/rpc/SessionProviderAddParams.java | Adds params record for provider add (including sessionId, providers, models). |
| java/src/generated/java/com/github/copilot/generated/rpc/SessionProviderAddResult.java | Adds result record for provider add. |
| java/src/generated/java/com/github/copilot/generated/rpc/ServerAccountApi.java | Adds new account RPC bindings (getCurrentAuth, getAllUsers, login, logout). |
| java/src/generated/java/com/github/copilot/generated/rpc/NamedProviderConfig.java | Adds named provider config record used by provider add. |
| java/src/generated/java/com/github/copilot/generated/rpc/ProviderModelConfig.java | Adds provider model config record used by provider add. |
| java/src/generated/java/com/github/copilot/generated/rpc/AccountGetCurrentAuthResult.java | Adds account auth status result record. |
| java/src/generated/java/com/github/copilot/generated/rpc/AccountLoginParams.java | Adds login params record. |
| java/src/generated/java/com/github/copilot/generated/rpc/AccountLoginResult.java | Adds login result record. |
| java/src/generated/java/com/github/copilot/generated/rpc/AccountLogoutParams.java | Adds logout params record. |
| java/src/generated/java/com/github/copilot/generated/rpc/AccountLogoutResult.java | Adds logout result record. |
| java/src/generated/java/com/github/copilot/generated/rpc/Skill.java | Adds argumentHint to skill record. |
| java/src/generated/java/com/github/copilot/generated/rpc/ServerSkill.java | Adds argumentHint to server-skill record. |
| java/src/generated/java/com/github/copilot/generated/SkillsLoadedSkill.java | Adds argumentHint to skills-loaded event type. |
| java/src/generated/java/com/github/copilot/generated/rpc/ModelBillingTokenPrices.java | Updates deprecation wording for fields in generated docs. |
| java/src/generated/java/com/github/copilot/generated/rpc/ModelBillingTokenPricesLongContext.java | Updates deprecation wording for fields in generated docs. |
| java/src/generated/java/com/github/copilot/generated/ModelCallFailureEvent.java | Adds requestFingerprint field to event payload type. |
| java/src/generated/java/com/github/copilot/generated/ModelCallFailureRequestFingerprint.java | Adds request fingerprint event payload record. |
Copilot's findings
Files not reviewed (8)
- go/rpc/zrpc.go: Generated file
- go/rpc/zrpc_encoding.go: Generated file
- go/rpc/zsession_events.go: Generated file
- go/zsession_events.go: Generated file
- java/scripts/codegen/package-lock.json: Generated file
- nodejs/package-lock.json: Generated file
- nodejs/samples/package-lock.json: Generated file
- test/harness/package-lock.json: Generated file
- Files reviewed: 4/39 changed files
- Comments generated: 0
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This comment has been minimized.
This comment has been minimized.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use the non-deprecated maxPromptTokens field in the Rust model billing test so clippy does not fail on deprecated generated fields. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Cross-SDK Consistency ReviewScope: PR #1752 — ✅ Generated files — consistent across all SDKsThe regenerated files ( ✅ .NET logging refactors — idiomatic, no cross-SDK action needed
|
| SDK | force_stop() / ForceStop() behavior |
Gap? |
|---|---|---|
| Python | self._sessions.clear() — no _destroyed = True on sessions |
|
| Go | c.sessions = make(map[string]*Session) — no signal to sessions |
|
| .NET | _sessions.Clear() — no DisposeAsync() on sessions |
|
| Java | sessions.clear() — no isTerminated = true on sessions |
|
| Rust | Structurally different (event loop cancellation token) | ✅ N/A |
All four SDKs do catch the resulting errors (Python catches ProcessExitedError/OSError, .NET catches ObjectDisposedException/IOException, Go silently ignores goroutine errors, Java logs at WARNING), so this is not a crash — but it generates noisy log output during force-stop, which the Node.js fix eliminates.
2. Guards in broadcast event handler and execution callbacks
Node.js (new):
// session.ts — early return if already disconnected
private _handleBroadcastEvent(event: SessionEvent): void {
if (this.disconnected) { return; } // <— NEW
...
}
// After tool handler completes, before calling back to server:
if (this.disconnected) { return; } // <— NEW
await this.rpc.tools.handlePendingToolCall({ requestId, result });Of the other SDKs:
- Python
_handle_broadcast_eventdoes not check_destroyedbefore dispatchingasyncio.ensure_future(self._execute_tool_and_respond(...)). After_destroyed = Trueis set, a race window exists. - Go
handleBroadcastEventandexecuteToolAndRespondhave no disconnection check before callings.RPC.Tools.HandlePendingToolCall(...). Additionally,Disconnect()doesn't clear handlers if thesession.destroyRPC call fails (nodefer/finallyequivalent around the clears). - .NET
_eventChannel.Writer.TryComplete()is called early inDisposeAsync(), which naturally stops new events from being enqueued — this is an effective mitigation for the broadcast path. However,ExecuteToolAndRespondAsyncdoesn't check_isDisposedbefore callingRpc.Tools.HandlePendingToolCallAsync(...)on the success path. - Java
handleBroadcastEventAsyncdoes not checkisTerminatedbefore dispatchingCompletableFuture.runAsync(task, executor).
Suggested follow-up work
These are not blocking issues for this PR (the codegen update is the primary change), but to maintain parity with the Node.js fix:
- Python — In
force_stop(), set_destroyed = Trueon each session before clearingself._sessions. Also consider adding a_destroyedcheck at the top of_handle_broadcast_event. - Go — Wrap the handler-clearing block in
Disconnect()in adeferso handlers are always cleared even when the RPC fails. Consider a disconnection check inexecuteToolAndRespondbefore the response RPC call. - Java — In
forceStop(), setisTerminated = trueon each session (atomically undersynchronized) before callingsessions.clear(). - .NET — The
_eventChannelcompletion already mitigates the broadcast case. Consider adding anif (_isDisposed != 0) return;guard inExecuteToolAndRespondAsyncafter the tool result is obtained, similar to the Node.js pattern.
Generated by SDK Consistency Review Agent for issue #1752 · sonnet46 5.5M · ◷
Automated update of
@github/copilotto version1.0.64-3.Changes
@github/copilotinnodejs/package.jsonandtest/harness/package.jsonscripts/codegen)Java Handwritten Code Adaptation Plan
If
java-sdk-testsCI fails on this PR, follow these steps:mvn clean,mvn verifyfromjava/locally or check thejava-sdk-testsworkflow run logs.java/src/main/java/com/github/copilot/sdk/):nullfor optional new fields).CopilotSession.javaif applicable.java/src/test/java/com/github/copilot/sdk/):cd java && mvn clean test-compile jar:jar && mvn verify -Dskip.test.harness=truecd java && mvn spotless:applyNext steps
When ready, click Ready for review to trigger CI checks.