Skip to content

Update @github/copilot to 1.0.55-6#1471

Merged
stephentoub merged 3 commits into
mainfrom
update-copilot-1.0.55-6
May 27, 2026
Merged

Update @github/copilot to 1.0.55-6#1471
stephentoub merged 3 commits into
mainfrom
update-copilot-1.0.55-6

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

Automated update of @github/copilot to version 1.0.55-6.

Changes

  • Updated @github/copilot in nodejs/package.json and test/harness/package.json
  • Re-ran all code generators (scripts/codegen)
  • Formatted generated output

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 May 27, 2026 21:55
@stephentoub stephentoub requested a review from a team as a code owner May 27, 2026 21:55
Copilot AI review requested due to automatic review settings May 27, 2026 21:55
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Automated dependency bump of @github/copilot to 1.0.55-6, followed by regenerated RPC/API bindings across SDKs to reflect upstream schema changes (notably the new *.action.invoke canvas action namespace).

Changes:

  • Updated @github/copilot version in Node/test harness manifests and lockfiles.
  • Regenerated multi-language RPC bindings introducing session.canvas.action.invoke (and canvas.action.invoke) APIs and updated request/response types.
  • Updated .NET/Go/Rust generated RPC surfaces to expose the new canvas action sub-namespace.
Show a summary per file
File Description
test/harness/package.json Bumps @github/copilot devDependency version.
test/harness/package-lock.json Updates lockfile entries for @github/copilot and platform packages.
nodejs/package.json Bumps @github/copilot dependency version.
nodejs/package-lock.json Updates lockfile entries for @github/copilot and platform packages.
nodejs/samples/package-lock.json Updates sample lockfile to @github/copilot@^1.0.55-6.
nodejs/src/generated/rpc.ts Regenerated TS RPC surface; introduces canvas.action.invoke / session.canvas.action.invoke namespaces and handler signature changes.
python/copilot/generated/rpc.py Regenerated Python RPC surface; adds CanvasActionApi for session-side invocation.
go/rpc/zrpc.go Regenerated Go RPC surface; adds CanvasActionApi and renames provider invoke handler/method names.
rust/src/generated/api_types.rs Regenerated Rust API types and RPC method constants for *.action.invoke.
rust/src/generated/rpc.rs Regenerated Rust RPC client; adds canvas().action().invoke(...).
dotnet/src/Generated/Rpc.cs Regenerated .NET RPC client; adds CanvasActionApi and renames provider invoke handler/method names.

Copilot's findings

Files not reviewed (4)
  • go/rpc/zrpc.go: 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: 2/11 changed files
  • Comments generated: 4

/// <param name="cancellationToken">The <see cref="CancellationToken"/> to monitor for cancellation requests. The default is <see cref="CancellationToken.None"/>.</param>
/// <returns>Provider-supplied action result.</returns>
Task<object> InvokeActionAsync(CanvasProviderInvokeActionRequest request, CancellationToken cancellationToken = default);
Task<object> InvokeAsync(CanvasProviderInvokeActionRequest request, CancellationToken cancellationToken = default);
Comment thread go/rpc/zrpc.go
Comment on lines +496 to +500
// Canvas action invocation parameters.
// Experimental: CanvasActionInvokeRequest is part of an experimental API and may change or
// be removed.
type CanvasActionInvokeRequest struct {
// Action name to invoke
Comment thread go/rpc/zrpc.go
Comment on lines +12389 to 12393
// Invokes an action on an open canvas instance via the provider.
//
// RPC method: canvas.invokeAction.
// RPC method: canvas.action.invoke.
//
// Parameters: Canvas action invocation parameters sent to the provider.
Comment on lines +13511 to 13515
public async Task<CanvasActionInvokeResult> InvokeAsync(string instanceId, string actionName, object? input = null, CancellationToken cancellationToken = default)
{
ArgumentNullException.ThrowIfNull(instanceId);
ArgumentNullException.ThrowIfNull(actionName);
_session.ThrowIfDisposed();
@jmoseley
Copy link
Copy Markdown
Contributor

From github-app validation against this PR, the generated SDK surfaces look aligned with the new canonical canvas action methods, but there is one Rust source gap blocking cargo check after syncing into github-app.

After syncing this PR into crates/copilot-sdk/, cargo check fails in the SDK crate:

error[E0531]: cannot find unit struct, unit variant or constant `CANVAS_INVOKEACTION` in module `rpc_methods`
   --> crates/copilot-sdk/src/canvas_dispatch.rs:177:22
    |
177 |         rpc_methods::CANVAS_INVOKEACTION => invoke_action(client, &handler, request).await,
    |                      ^^^^^^^^^^^^^^^^^^^ not found in `rpc_methods`

rust/src/generated/api_types.rs now generates rpc_methods::CANVAS_ACTION_INVOKE for canvas.action.invoke, so rust/src/canvas_dispatch.rs likely needs to switch from CANVAS_INVOKEACTION to CANVAS_ACTION_INVOKE as part of this PR.

Related app prep needed for this SDK shape:

  • github-app call site moves to .rpc().canvas().action().invoke(CanvasActionInvokeRequest { ... })
  • stale app docs/comments move from session.canvas.invokeAction to session.canvas.action.invoke
  • github-app’s SDK sync script needs to generate crates/copilot-sdk/cli-version.txt because the new SDK build.rs expects it in vendored/published slots where ../nodejs/package-lock.json is not present

The 1.0.55-6 schema renamed the Canvas action invocation API:

- `CanvasInvokeActionRequest` -> `CanvasActionInvokeRequest`
- `CanvasInvokeActionResult` -> `CanvasActionInvokeResult`
- Host API `canvas.invokeAction(...)` -> `canvas.action.invoke(...)`
- Provider handler `invokeAction`/`invoke_action`/`InvokeAction` ->
  `invoke`/`Invoke`
- Wire methods `session.canvas.invokeAction` / `canvas.invokeAction` ->
  `session.canvas.action.invoke` / `canvas.action.invoke`
- Rust constants `SESSION_CANVAS_INVOKEACTION` / `CANVAS_INVOKEACTION` ->
  `SESSION_CANVAS_ACTION_INVOKE` / `CANVAS_ACTION_INVOKE`

The provider-side request type `CanvasProviderInvokeActionRequest` is
unchanged.

Update the host/provider adapters and tests in Node, Python, Go, .NET, and Rust
to follow the new nested `action` group and renamed handler method.

Also fix a Python codegen bug in `scripts/codegen/python.ts`:
`emitClientSessionApiRegistration` was iterating only top-level methods of
each handler group via `Object.entries(...).filter(isRpcMethod)`, so methods
nested under sub-groups (like `canvas.action.*`) were silently dropped from
the generated `CanvasHandler` Protocol and from
`register_client_session_api_handlers`. Use the existing recursive
`collectRpcMethods` helper and derive the handler method name from the last
segment of the RPC method path, matching how TS/C#/Go/Rust codegens already
flatten nested groups.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown
Contributor Author

Cross-SDK Consistency Review ✅

This automated code-gen update (@github/copilot v1.0.55-6) applies the canvas.invokeActioncanvas.action.invoke rename consistently across all SDK implementations:

SDK Old API New API
Node.js canvas.invokeAction(...) canvas.action.invoke(...)
Python canvas.invoke_action(...) canvas.action.invoke(...)
Go Canvas.InvokeAction(ctx, ...) Canvas.Action().Invoke(ctx, ...)
.NET Canvas.InvokeActionAsync(...) Canvas.Action.InvokeAsync(...)
Rust CANVAS_INVOKEACTION constant CANVAS_ACTION_INVOKE constant

The type renames (CanvasInvokeActionRequestCanvasActionInvokeRequest, CanvasInvokeActionResultCanvasActionInvokeResult) are also applied uniformly across all languages. The sub-namespace grouping (Action / action) follows each language's idiomatic conventions (lazy property in .NET/Go, attribute access in Python/Node.js).

No cross-SDK inconsistencies found.

Generated by SDK Consistency Review Agent for issue #1471 · ● 4.4M ·

In CLI 1.0.55-6 the `session.start` event is dispatched via the asynchronous
`session.event` notification channel, so it may not be delivered to the
`onEvent`/`on_event` callback by the time `createSession` returns.

Update the Node and Python `should receive session events` tests to wait for
the event using `vi.waitFor`/`asyncio.Event`. The .NET and Go equivalents
already use async wait primitives (`TaskCompletionSource`/channel + timeout).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions github-actions Bot mentioned this pull request May 27, 2026
@stephentoub stephentoub added this pull request to the merge queue May 27, 2026
Merged via the queue into main with commit 7780b50 May 27, 2026
43 checks passed
@stephentoub stephentoub deleted the update-copilot-1.0.55-6 branch May 27, 2026 22:57
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.

3 participants