Update @github/copilot to 1.0.71#1998
Conversation
- Updated nodejs and test harness dependencies - Re-ran code generators - Formatted generated code
There was a problem hiding this comment.
Pull request overview
Updates @github/copilot from prerelease 1.0.71-2 to stable 1.0.71 and regenerates SDK protocol bindings.
Changes:
- Updates dependency manifests and lockfiles.
- Regenerates cross-language RPC and session-event types.
- Adds hook callbacks, managed settings, server-tool progress, OAuth response, MCP UI, and model pricing types.
Show a summary per file
| File | Description |
|---|---|
test/harness/package.json |
Updates harness dependency. |
test/harness/package-lock.json |
Locks stable runtime packages. |
rust/src/generated/session_events.rs |
Adds generated events and payloads. |
rust/src/generated/rpc.rs |
Updates MCP tool documentation. |
rust/src/generated/api_types.rs |
Adds generated RPC types. |
python/copilot/generated/session_events.py |
Adds generated events and serialization. |
python/copilot/generated/rpc.py |
Adds RPC types and hook registration. |
nodejs/src/generated/session-events.ts |
Adds generated event interfaces. |
nodejs/src/generated/rpc.ts |
Adds RPC types and hook registration. |
nodejs/samples/package-lock.json |
Updates sample dependency lock. |
nodejs/package.json |
Updates Node dependency. |
nodejs/package-lock.json |
Locks stable runtime packages. |
java/src/generated/java/com/github/copilot/generated/SessionManagedSettingsResolvedEvent.java |
Adds managed-settings event. |
java/src/generated/java/com/github/copilot/generated/SessionEvent.java |
Registers new event subtypes. |
java/src/generated/java/com/github/copilot/generated/rpc/SessionOptionsUpdateResult.java |
Adds plugin hook count. |
java/src/generated/java/com/github/copilot/generated/rpc/SessionModelPriceCategory.java |
Adds model pricing type. |
java/src/generated/java/com/github/copilot/generated/rpc/SessionModelListResult.java |
Adds model pricing metadata. |
java/src/generated/java/com/github/copilot/generated/rpc/McpToolUiVisibility.java |
Adds MCP UI visibility enum. |
java/src/generated/java/com/github/copilot/generated/rpc/McpToolUi.java |
Adds MCP UI metadata. |
java/src/generated/java/com/github/copilot/generated/rpc/McpTools.java |
Includes MCP UI metadata. |
java/src/generated/java/com/github/copilot/generated/rpc/HookType.java |
Adds hook type enum. |
java/src/generated/java/com/github/copilot/generated/rpc/HooksInvokeResult.java |
Adds hook response type. |
java/src/generated/java/com/github/copilot/generated/rpc/HookInvokeRequest.java |
Adds hook request type. |
java/src/generated/java/com/github/copilot/generated/McpToolsListChangedEvent.java |
Updates event documentation. |
java/src/generated/java/com/github/copilot/generated/McpResourcesListChangedEvent.java |
Updates event documentation. |
java/src/generated/java/com/github/copilot/generated/McpPromptsListChangedEvent.java |
Updates event documentation. |
java/src/generated/java/com/github/copilot/generated/McpOauthRequiredEvent.java |
Adds OAuth HTTP response. |
java/src/generated/java/com/github/copilot/generated/McpOauthHttpResponse.java |
Adds OAuth response type. |
java/src/generated/java/com/github/copilot/generated/ManagedSettingsResolvedSource.java |
Adds managed-settings source enum. |
java/src/generated/java/com/github/copilot/generated/HeaderEntry.java |
Adds HTTP header type. |
java/src/generated/java/com/github/copilot/generated/AssistantServerToolProgressEvent.java |
Adds server-tool progress event. |
java/scripts/codegen/package.json |
Updates codegen dependency. |
java/scripts/codegen/package-lock.json |
Locks codegen dependencies. |
java/pom.xml |
Updates reference implementation version. |
go/zsession_events.go |
Re-exports new event types. |
go/rpc/zsession_events.go |
Adds generated event models. |
go/rpc/zsession_encoding.go |
Decodes new event payloads. |
go/rpc/zrpc.go |
Adds RPC types and hook registration. |
dotnet/src/Generated/SessionEvents.cs |
Adds generated event models. |
dotnet/src/Generated/Rpc.cs |
Adds RPC types and hook registration. |
Review details
Files not reviewed (8)
- go/rpc/zrpc.go: Generated file
- go/rpc/zsession_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/40 changed files
- Comments generated: 3
- Review effort level: Medium
This comment has been minimized.
This comment has been minimized.
CLI 1.0.71 promoted hooks.invoke to a client-global RPC method with a generated HooksHandler interface. The handwritten SDK still registered its own hooks.invoke handler, which only avoided colliding with the generated one because global handlers were skipped when no LLM/telemetry adapter was set. Make the wiring intentional: add _HooksAdapter implementing the generated HooksHandler protocol (routing HookInvokeRequest.sessionId to the matching session's dispatcher), always register the client-global handlers with the hooks adapter, and remove the redundant handwritten hooks.invoke registrations and dead client-level handler. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: ae226b7f-caf9-46f3-b8c5-b9a21c5d7951
This comment has been minimized.
This comment has been minimized.
CLI 1.0.71 promoted hooks.invoke to a client-global RPC method with a
generated HooksHandler interface. The handwritten SDK registered its own
hooks.invoke handler on the connection, which the generated
registerClientGlobalApiHandlers then shadowed with an unwired handler that
threw "No hooks client-global handler registered" — so hooks never fired.
Wire the existing handleHooksInvoke routing into the generated
clientGlobalHandlers.hooks slot and drop the redundant handwritten
connection.onRequest("hooks.invoke") registration. Behavior is unchanged;
the dispatcher and its payload validation are reused as-is.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ae226b7f-caf9-46f3-b8c5-b9a21c5d7951
This comment has been minimized.
This comment has been minimized.
CLI 1.0.71 promoted hooks.invoke to a client-global RPC method whose generated registration installs a hooks.invoke handler that rejects all invocations unless the Hooks slot is populated. Whenever an LLM inference or telemetry adapter was configured, that generated handler overrode the handwritten hooks.invoke registration and hooks stopped firing (e.g. the sub-agent hook test). Always register the client-global handlers with a hooksAdapter that delegates to the existing per-session dispatcher, and drop the redundant handwritten hooks.invoke registration. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: ae226b7f-caf9-46f3-b8c5-b9a21c5d7951
This comment has been minimized.
This comment has been minimized.
The Copilot CLI serializes hook input `timestamp` as a JSON float
(e.g. `1784203878038.0`). Rust's hand-authored hook input structs typed
`timestamp` as `i64`, so `serde_json::from_value` rejected the float,
`dispatch_hook` returned an error, and the session handler fell back to
an empty `{ "output": {} }` response. Hooks therefore never fired: e.g. a
preToolUse deny was dropped, the CLI executed the tool, and the replayed
conversation diverged ("No cached response" -> 500).
Other SDKs tolerate this incidentally (Go decodes `input` into `any` and
re-marshals, dropping the `.0`); Rust decodes strictly. Type the hook
input `timestamp` fields as `f64` to match the shape the runtime sends.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ae226b7f-caf9-46f3-b8c5-b9a21c5d7951
This comment has been minimized.
This comment has been minimized.
CLI 1.0.71 promoted hooks.invoke to an internal client-global RPC method. The C# codegen still emitted its internal request/result DTOs behind a public IHooksHandler surface, producing CS0050/CS0051 inconsistent-accessibility errors that broke the entire .NET build. It also registered a second, unwired hooks.invoke handler that would shadow the working handwritten one. Filter internal client-global and client-session methods in the C# code generator so no generated interface, handler property, or RPC registration is emitted for internal methods like hooks.invoke. The handwritten SetLocalRpcMethod(hooks.invoke, ...) registration continues to serve hooks. This mirrors, for .NET's static typing, the routing fixes already applied to Node, Python, and Go. Also tolerate hook timestamp epoch milliseconds encoded as either JSON integers or floats in UnixMillisecondsDateTimeOffsetConverter, covering the CLI 1.0.71 float serialization (matching the Rust fix). Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 94a20428-6b0e-4733-a354-0abf2d186320
Cross-SDK Consistency Review ✅This PR is an automated Generated types — New types (
Non-generated fixes:
No inconsistencies found.
|
Automated update of
@github/copilotto version1.0.71.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.