Skip to content

Update @github/copilot to 1.0.60#1597

Merged
stephentoub merged 5 commits into
mainfrom
update-copilot-1.0.60
Jun 8, 2026
Merged

Update @github/copilot to 1.0.60#1597
stephentoub merged 5 commits into
mainfrom
update-copilot-1.0.60

Conversation

@github-actions

@github-actions github-actions Bot commented Jun 7, 2026

Copy link
Copy Markdown
Contributor

Automated update of @github/copilot to version 1.0.60.

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 7, 2026 18:53
@stephentoub stephentoub requested a review from a team as a code owner June 7, 2026 18:53
Copilot AI review requested due to automatic review settings June 7, 2026 18:53

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

Updates the monorepo’s @github/copilot dependency to 1.0.60 and refreshes all generated SDK protocol surfaces (session events + RPC types) across Node.js, Python, Go, Rust, .NET, and Java to match the updated schema.

Changes:

  • Bumped @github/copilot to ^1.0.60 in Node.js packages and the test harness, updating lockfiles accordingly.
  • Regenerated session-event models across languages (adds session.canvas.closed, apiCallId, hook error source, and docstring updates).
  • Regenerated Java RPC/SDK types and updated Java’s reference-impl version property.
Show a summary per file
File Description
test/harness/package.json Bump harness devDependency on @github/copilot to ^1.0.60.
test/harness/package-lock.json Lockfile update for @github/copilot@1.0.60 (+ minor metadata reordering).
nodejs/package.json Bump Node.js SDK dependency on @github/copilot to ^1.0.60.
nodejs/package-lock.json Lockfile update for @github/copilot@1.0.60 and platform optional deps.
nodejs/samples/package-lock.json Update sample lockfile dependency to @github/copilot@^1.0.60.
nodejs/src/generated/session-events.ts Regenerated TS session events (new session.canvas.closed, apiCallId, hook/source, doc updates).
python/copilot/generated/session_events.py Regenerated Python session events/types (new SESSION_CANVAS_CLOSED, api_call_id, hook/source, doc updates).
rust/src/generated/session_events.rs Regenerated Rust session events/types (new SessionCanvasClosed, api_call_id, hook/source, doc updates).
go/zsession_events.go Regenerated Go re-export wiring for new session event types.
go/rpc/zsession_events.go Regenerated Go RPC session-event types (new canvas closed, APICallID, hook/source, doc updates).
go/rpc/zsession_encoding.go Update Go session-event decoding to handle session.canvas.closed.
go/rpc/zrpc_encoding.go Regenerated Go RPC JSON (new unions + source now string where applicable + session list entry decoding).
dotnet/src/Generated/SessionEvents.cs Regenerated .NET session events (new canvas closed, ApiCallId, hook/source, doc updates).
java/pom.xml Update Java ref-impl version property to ^1.0.60.
java/scripts/codegen/package.json Bump Java codegen dependency on @github/copilot to ^1.0.60.
java/scripts/codegen/package-lock.json Lockfile update for Java codegen dependency to @github/copilot@1.0.60.
java/src/generated/java/com/github/copilot/generated/session events: SubagentStartedEvent.java Generated comment tweak for model field.
java/src/generated/java/com/github/copilot/generated/session events: SubagentFailedEvent.java Generated comment tweak for model field.
java/src/generated/java/com/github/copilot/generated/SessionIdleEvent.java Updated idle-event docstring.
java/src/generated/java/com/github/copilot/generated/SessionEvent.java Add session.canvas.closed subtype registration.
java/src/generated/java/com/github/copilot/generated/SessionCanvasClosedEvent.java New generated session event for canvas close.
java/src/generated/java/com/github/copilot/generated/HookEndError.java Add hook error source field.
java/src/generated/java/com/github/copilot/generated/AssistantMessageEvent.java Add assistant message apiCallId field.
java/src/generated/java/com/github/copilot/generated/rpc/ServerRpc.java Add plugins namespace accessor.
java/src/generated/java/com/github/copilot/generated/rpc/ServerPluginsApi.java New generated server-level plugins API.
java/src/generated/java/com/github/copilot/generated/rpc/ServerPluginsMarketplacesApi.java New generated server-level plugin marketplaces API.
java/src/generated/java/com/github/copilot/generated/rpc/ServerSessionsApi.java Adds/extends server-level sessions APIs (open, remote control, polling, etc.).
java/src/generated/java/com/github/copilot/generated/rpc/SessionUiApi.java Add ephemeralQuery to session-scoped UI API.
java/src/generated/java/com/github/copilot/generated/rpc/SessionUiEphemeralQueryParams.java New generated params record for UI ephemeral query.
java/src/generated/java/com/github/copilot/generated/rpc/SessionUiEphemeralQueryResult.java New generated result record for UI ephemeral query.
java/src/generated/java/com/github/copilot/generated/rpc/SessionTelemetryApi.java Add getEngagementId to session telemetry API.
java/src/generated/java/com/github/copilot/generated/rpc/SessionTelemetryGetEngagementIdParams.java New generated params record for telemetry engagement ID.
java/src/generated/java/com/github/copilot/generated/rpc/SessionTelemetryGetEngagementIdResult.java New generated result record for telemetry engagement ID.
java/src/generated/java/com/github/copilot/generated/rpc/SessionShellApi.java Add user-requested execute/cancel RPCs.
java/src/generated/java/com/github/copilot/generated/rpc/SessionShellExecuteUserRequestedParams.java New generated params record for user-requested shell execution.
java/src/generated/java/com/github/copilot/generated/rpc/SessionShellExecuteUserRequestedResult.java New generated result record for user-requested shell execution.
java/src/generated/java/com/github/copilot/generated/rpc/SessionShellCancelUserRequestedParams.java New generated params record for cancelling user-requested shell execution.
java/src/generated/java/com/github/copilot/generated/rpc/SessionShellCancelUserRequestedResult.java New generated result record for cancelling user-requested shell execution.
java/src/generated/java/com/github/copilot/generated/rpc/SessionPlanApi.java Add readSqlTodos to session plan API.
java/src/generated/java/com/github/copilot/generated/rpc/SessionPlanReadSqlTodosParams.java New generated params record for reading SQL todos.
java/src/generated/java/com/github/copilot/generated/rpc/SessionPlanReadSqlTodosResult.java New generated result record for reading SQL todos.
java/src/generated/java/com/github/copilot/generated/rpc/PlanSqlTodosRow.java New generated row type for SQL todos results.
java/src/generated/java/com/github/copilot/generated/rpc/SessionMetadataApi.java Add activity() endpoint binding.
java/src/generated/java/com/github/copilot/generated/rpc/SessionMetadataActivityParams.java New generated params record for session activity.
java/src/generated/java/com/github/copilot/generated/rpc/SessionMetadataActivityResult.java New generated activity result type.
java/src/generated/java/com/github/copilot/generated/rpc/SessionMetadataSnapshotResult.java Add workspace user_named field.
java/src/generated/java/com/github/copilot/generated/rpc/SessionMetadataContextInfoResult.java Docstring update for context limit.
java/src/generated/java/com/github/copilot/generated/rpc/SessionSendParams.java Tighten source type from opaque to String with documented format.
java/src/generated/java/com/github/copilot/generated/rpc/SessionOptionsUpdateParams.java Add/retarget several typed fields (provider/sandbox/capabilities, etc.).
java/src/generated/java/com/github/copilot/generated/rpc/SessionCapability.java New generated enum of session capability flags.
java/src/generated/java/com/github/copilot/generated/rpc/SessionContext.java Update type description for session context.
java/src/generated/java/com/github/copilot/generated/rpc/ModelCapabilitiesOverride.java Docstring update.
java/src/generated/java/com/github/copilot/generated/rpc/OptionsUpdateReasoningSummary.java New generated enum for reasoning summary mode.
java/src/generated/java/com/github/copilot/generated/rpc/OptionsUpdateContextTier.java New generated enum for context tier.
java/src/generated/java/com/github/copilot/generated/rpc/OptionsUpdateAdditionalContentExclusionPolicy*.java New generated types for additional content exclusion policies.
java/src/generated/java/com/github/copilot/generated/rpc/ProviderConfig*.java New generated typed BYOK provider configuration surface.
java/src/generated/java/com/github/copilot/generated/rpc/SandboxConfig*.java New generated resolved sandbox configuration surface.
java/src/generated/java/com/github/copilot/generated/rpc/RemoteControlConfig*.java New generated remote-control configuration surface.
java/src/generated/java/com/github/copilot/generated/rpc/RemoteSessionMetadata*.java New generated remote session metadata shapes.
java/src/generated/java/com/github/copilot/generated/rpc/McpHostState.java New generated host-level MCP state type.
java/src/generated/java/com/github/copilot/generated/rpc/McpServerFailureInfo.java New generated MCP failure info type.
java/src/generated/java/com/github/copilot/generated/rpc/McpServerNeedsAuthInfo.java New generated MCP needs-auth info type.
java/src/generated/java/com/github/copilot/generated/rpc/McpAllowedServer.java New generated allowed-server type for MCP policy.
java/src/generated/java/com/github/copilot/generated/rpc/McpFilteredServer.java New generated filtered-server type for MCP policy.
java/src/generated/java/com/github/copilot/generated/rpc/McpTools.java New generated MCP tool listing item type.
java/src/generated/java/com/github/copilot/generated/rpc/SessionMcpApi.java Add multiple new session MCP operations (listTools, reloadWithConfig, start/stop/restart, etc.).
java/src/generated/java/com/github/copilot/generated/rpc/SessionMcpListToolsParams.java New generated params record for MCP tool listing.
java/src/generated/java/com/github/copilot/generated/rpc/SessionMcpListToolsResult.java New generated result record for MCP tool listing.
java/src/generated/java/com/github/copilot/generated/rpc/SessionMcpReloadWithConfigParams.java New generated params record for MCP reload-with-config.
java/src/generated/java/com/github/copilot/generated/rpc/SessionMcpReloadWithConfigResult.java New generated result record for MCP reload-with-config.
java/src/generated/java/com/github/copilot/generated/rpc/SessionMcpConfigureGitHubParams.java New generated params record for configuring GitHub MCP.
java/src/generated/java/com/github/copilot/generated/rpc/SessionMcpConfigureGitHubResult.java New generated result record for configuring GitHub MCP.
java/src/generated/java/com/github/copilot/generated/rpc/SessionMcpRegisterExternalClientParams.java New generated params record for registering external MCP clients.
java/src/generated/java/com/github/copilot/generated/rpc/SessionMcpUnregisterExternalClientParams.java New generated params record for unregistering external MCP clients.
java/src/generated/java/com/github/copilot/generated/rpc/SessionMcpStartServerParams.java New generated params record for starting an MCP server.
java/src/generated/java/com/github/copilot/generated/rpc/SessionMcpStopServerParams.java New generated params record for stopping an MCP server.
java/src/generated/java/com/github/copilot/generated/rpc/SessionMcpRestartServerParams.java New generated params record for restarting an MCP server.
java/src/generated/java/com/github/copilot/generated/rpc/SessionMcpIsServerRunningParams.java New generated params record for checking MCP server running state.
java/src/generated/java/com/github/copilot/generated/rpc/SessionMcpIsServerRunningResult.java New generated result record for checking MCP server running state.
java/src/generated/java/com/github/copilot/generated/rpc/SessionMcpOauthApi.java Add MCP OAuth respond RPC binding.
java/src/generated/java/com/github/copilot/generated/rpc/SessionMcpOauthRespondParams.java New generated params record for MCP OAuth respond.
java/src/generated/java/com/github/copilot/generated/rpc/SessionMcpListResult.java Extend MCP list result with host-level state.
java/src/generated/java/com/github/copilot/generated/rpc/SessionsOpen*.java New generated types for sessions.open result/progress/status.
java/src/generated/java/com/github/copilot/generated/rpc/SessionsRemoteControl.java New generated remote-control request/result types.
java/src/generated/java/com/github/copilot/generated/rpc/SessionsPollSpawnedSessions*.java New generated result/event types for spawned-session polling.
java/src/generated/java/com/github/copilot/generated/rpc/SessionsRegisterExtensionToolsOnSession*.java New generated types for extension tool registration.
java/src/generated/java/com/github/copilot/generated/rpc/SessionsGetBoardEntryCount*.java New generated params/result types for board entry count.
java/src/generated/java/com/github/copilot/generated/rpc/SessionsGetRemoteControlStatusResult.java New generated remote-control status wrapper type.
java/src/generated/java/com/github/copilot/generated/rpc/SessionsConfigureSessionExtensionsParams.java New generated params record for configuring session extensions.
java/src/generated/java/com/github/copilot/generated/rpc/Plugins*.java New generated plugin management request/result types.
java/src/generated/java/com/github/copilot/generated/rpc/Marketplace*.java New generated marketplace info/result types.
java/src/generated/java/com/github/copilot/generated/rpc/InstalledPluginInfo.java New generated installed-plugin info type.
java/src/generated/java/com/github/copilot/generated/rpc/LocalSessionMetadataValue.java New generated local session metadata value type.
java/src/generated/java/com/github/copilot/generated/rpc/SessionsListResult.java Update sessions.list result to List<Object> discriminated by isRemote.

Copilot's findings

Files not reviewed (8)
  • go/rpc/zrpc_encoding.go: Language not supported
  • go/rpc/zsession_encoding.go: Language not supported
  • go/rpc/zsession_events.go: Language not supported
  • go/zsession_events.go: Language not supported
  • java/scripts/codegen/package-lock.json: Language not supported
  • nodejs/package-lock.json: Language not supported
  • nodejs/samples/package-lock.json: Language not supported
  • test/harness/package-lock.json: Language not supported
  • Files reviewed: 4/151 changed files
  • Comments generated: 0

- scripts/codegen/go.ts: also match discriminator method name on the
  discriminator property itself, so sum types with a single variant
  (e.g. PermissionDecisionNoResult) get the sealing method.
- scripts/codegen/python.ts: add reorderPythonDataclassFields pass that
  moves required fields before optional ones (Python dataclass rule).
- Regenerate Go/Python/Java artifacts and adapt E2E tests across all
  SDKs to the updated RPC surface.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

This comment has been minimized.

- nodejs/test/e2e/rpc_remote.e2e.test.ts: re-run prettier --write to
  fix a small indent in waitForCondition call.
- python/e2e/test_rpc_server_e2e.py: move LocalSessionMetadataValue
  into its correct alphabetical position in the from copilot.rpc
  import block (ruff I001).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

This comment has been minimized.

The 1.0.60 schema introduces OptionsUpdateReasoningSummary and
SessionOpenOptionsReasoningSummary, structurally identical to the shared
ReasoningSummary enum. quicktype's enum-merging path (independent of
combineClasses) collapsed them into a single locally-defined
`class ReasoningSummary(Enum)` that shadowed the import from
session_events at the top of rpc.py. ModelSwitchToRequest.to_dict()
then called `to_enum(ReasoningSummary, x)` against the local class
while session.py constructed values via the imported one, so the
isinstance check inside to_enum failed and the unit test
TestSessionConfigForwarding.test_set_model_sends_correct_rpc broke.

Add a small post-processing step that strips locally-emitted enum
classes whose name and value set exactly match a name imported from
.session_events. The existing aliases at the end of rpc.py
(OptionsUpdateReasoningSummary = ReasoningSummary etc.) now resolve to
the imported enum, restoring isinstance equality across the SDK.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions github-actions Bot mentioned this pull request Jun 8, 2026
The previous change to `goDiscriminatorMethodName` over-broadly flagged
collisions whenever the discriminator property's natural Go name matched the
chosen method name, even on multi-variant unions where the discriminator field
is elided or renamed to `Discriminator` on the emitted variant structs.

The result was 98 unnecessary `Kind()` -> `xxxKind()` method renames across
8 multi-variant unions (PermissionPromptRequest, PermissionDecision,
AgentRegistrySpawnResult, SlashCommandInvocationResult, UserToolSessionApproval,
PermissionsLocationsAddToolApprovalDetails, and the two ApproveFor* variants).

The real natural-name collision case is when the variant struct is a
pre-existing type (already in `ctx.generatedNames`) that retained the
discriminator as a struct field with its natural Go name -- e.g.,
`SessionListEntry`'s `LocalSessionMetadataValue.IsRemote bool` field, which
would clash with an exported `IsRemote() bool` interface method on the union.

This commit narrows the natural-name check to that pre-existing-variant case,
leaving the independent `Discriminator`-rename collision clause unchanged.
Also drops the now-dead `permissionDecisionKind()` helper from the
hand-written `permission_decision_no_result.go`.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor Author

Cross-SDK Consistency Review ✅

This is an automated schema update (@github/copilot 1.0.57 → 1.0.60) that regenerates all six SDK implementations from the same schema source. All changes are applied consistently across Node.js, Python, Go, .NET, Java, and Rust.

Changes verified across all SDKs

Change Node.js Python Go .NET Java Rust
New session.canvas.closed event
New apiCallId field in AssistantMessageData
New source field in HookEndError
SessionIdleData doc update (shell commands)
getPersistedRemoteSteerable removed from E2E tests n/a
New RPC types (plugins, MCP, marketplace, etc.)

Java handwritten code adaptation

The Java handwritten CopilotClient.java correctly adds null placeholders for new SessionOptionsUpdateParams constructor fields (modelCapabilitiesOverrides, reasoningSummary, sessionCapabilities, contextTier), and the test file is updated with an extra null for the new apiCallId field in AssistantMessageEvent.AssistantMessageEventData. These are appropriate manual adaptations following the standard codegen upgrade pattern.

No cross-SDK consistency issues found. All six SDKs are in alignment.

Generated by SDK Consistency Review Agent for issue #1597 · sonnet46 1.7M ·

@stephentoub stephentoub merged commit ba94f95 into main Jun 8, 2026
42 checks passed
@stephentoub stephentoub deleted the update-copilot-1.0.60 branch June 8, 2026 18:20
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