Skip to content

Update @github/copilot to 1.0.64-3#1752

Merged
stephentoub merged 4 commits into
mainfrom
update-copilot-1.0.64-3
Jun 23, 2026
Merged

Update @github/copilot to 1.0.64-3#1752
stephentoub merged 4 commits into
mainfrom
update-copilot-1.0.64-3

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

Automated update of @github/copilot to version 1.0.64-3.

Changes

  • Updated @github/copilot in nodejs/package.json and test/harness/package.json
  • Re-ran all code generators (scripts/codegen)
  • Formatted generated output
  • Updated Java codegen dependency, POM property, and regenerated Java types

Java Handwritten Code Adaptation Plan

If java-sdk-tests CI fails on this PR, follow these steps:

  1. Identify failures: Run mvn clean, mvn verify from java/ locally or check the java-sdk-tests workflow run logs.
  2. Categorize errors:
    • Constructor signature changes (new fields added to generated records)
    • Enum value additions/renames in generated types
    • New event types requiring handler registration
    • Removed or renamed generated types
  3. Fix handwritten source (java/src/main/java/com/github/copilot/sdk/):
    • Update call sites passing positional constructor args to include new fields (typically null for optional new fields).
    • Update switch/if-else over enum values to handle new cases.
    • Register handlers for new event types in CopilotSession.java if applicable.
  4. Fix handwritten tests (java/src/test/java/com/github/copilot/sdk/):
    • Same constructor/enum fixes as above.
    • Add new test methods for new functionality if the change adds user-facing API surface.
  5. Validate: cd java && mvn clean test-compile jar:jar && mvn verify -Dskip.test.harness=true
  6. Format: cd java && mvn spotless:apply
  7. Push fixes to this PR branch.

To automate this, trigger the java-adapt-handwritten-code-to-accept-upgrade-changes agentic workflow instead.

Next steps

When ready, click Ready for review to trigger CI checks.

Created by the Update @github/copilot Dependency workflow.

- Updated nodejs and test harness dependencies
- Re-ran code generators
- Formatted generated code
@stephentoub stephentoub marked this pull request as ready for review June 22, 2026 21:06
@stephentoub stephentoub requested a review from a team as a code owner June 22, 2026 21:06
Copilot AI review requested due to automatic review settings June 22, 2026 21:06
@github-actions

This comment has been minimized.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generated by SDK Consistency Review Agent for issue #1752 · sonnet46 1.9M

Comment thread java/src/generated/java/com/github/copilot/generated/rpc/ServerAccountApi.java Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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/copilot version in Node/test harness and Java codegen dependency inputs.
  • Regenerated protocol types/bindings across SDKs (new fields like requestFingerprint, argumentHint, and new RPCs such as account.* auth helpers and session.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>
@github-actions

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>
@github-actions

Copy link
Copy Markdown
Contributor Author

Cross-SDK Consistency Review

Scope: PR #1752@github/copilot 1.0.64-3 dependency update + codegen regeneration + Node.js handwritten bug fixes.

✅ Generated files — consistent across all SDKs

The regenerated files (rpc.ts, rpc.py, zrpc.go, Rpc.cs, api_types.rs, Java generated types) all correctly reflect the new schema additions (new RPC wrappers for account login/logout, provider model config, etc.). No consistency gaps here.

✅ .NET logging refactors — idiomatic, no cross-SDK action needed

Client.cs and JsonRpc.cs migrate inline logger.LogWarning(...) calls to source-generated [LoggerMessage]-attributed partial methods. This is a .NET-specific best practice and does not need to be mirrored.


⚠️ Node.js handwritten bug fixes — cross-SDK gaps

The changes to nodejs/src/client.ts and nodejs/src/session.ts introduce a _markDisconnected() pattern with two improvements not yet present in the other SDKs:

1. forceStop() now marks in-flight sessions as disconnected

Node.js (new):

// client.ts
for (const session of this.sessions.values()) {
    session._markDisconnected();  // <— NEW: clears all handlers, sets flag
}
this.sessions.clear();

Before this fix, in-flight tool/permission/command handlers could complete after forceStop() and attempt to call rpc.tools.handlePendingToolCall(...) on a closed connection, resulting in error logs. The fix prevents the RPC callbacks from being made at all.

SDK force_stop() / ForceStop() behavior Gap?
Python self._sessions.clear() — no _destroyed = True on sessions ⚠️ Yes
Go c.sessions = make(map[string]*Session) — no signal to sessions ⚠️ Yes
.NET _sessions.Clear() — no DisposeAsync() on sessions ⚠️ Yes
Java sessions.clear() — no isTerminated = true on sessions ⚠️ Yes
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_event does not check _destroyed before dispatching asyncio.ensure_future(self._execute_tool_and_respond(...)). After _destroyed = True is set, a race window exists.
  • Go handleBroadcastEvent and executeToolAndRespond have no disconnection check before calling s.RPC.Tools.HandlePendingToolCall(...). Additionally, Disconnect() doesn't clear handlers if the session.destroy RPC call fails (no defer/finally equivalent around the clears).
  • .NET _eventChannel.Writer.TryComplete() is called early in DisposeAsync(), which naturally stops new events from being enqueued — this is an effective mitigation for the broadcast path. However, ExecuteToolAndRespondAsync doesn't check _isDisposed before calling Rpc.Tools.HandlePendingToolCallAsync(...) on the success path.
  • Java handleBroadcastEventAsync does not check isTerminated before dispatching CompletableFuture.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:

  1. Python — In force_stop(), set _destroyed = True on each session before clearing self._sessions. Also consider adding a _destroyed check at the top of _handle_broadcast_event.
  2. Go — Wrap the handler-clearing block in Disconnect() in a defer so handlers are always cleared even when the RPC fails. Consider a disconnection check in executeToolAndRespond before the response RPC call.
  3. Java — In forceStop(), set isTerminated = true on each session (atomically under synchronized) before calling sessions.clear().
  4. .NET — The _eventChannel completion already mitigates the broadcast case. Consider adding an if (_isDisposed != 0) return; guard in ExecuteToolAndRespondAsync after the tool result is obtained, similar to the Node.js pattern.

Generated by SDK Consistency Review Agent for issue #1752 · sonnet46 5.5M ·

@stephentoub stephentoub added this pull request to the merge queue Jun 23, 2026
Merged via the queue into main with commit 0b117c1 Jun 23, 2026
42 checks passed
@stephentoub stephentoub deleted the update-copilot-1.0.64-3 branch June 23, 2026 02:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants