Update @github/copilot to 1.0.76-0 - #2100
Open
github-actions[bot] wants to merge 7 commits into
Open
Conversation
- Updated nodejs and test harness dependencies - Re-ran code generators - Formatted generated code
stephentoub
approved these changes
Jul 28, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
Updates @github/copilot to 1.0.76-0 and regenerates SDK protocol types.
Changes:
- Updates Node, test-harness, and Java codegen dependencies.
- Regenerates Node, Go, and Java event/RPC models.
- Adds factory, scheduling, history rewind, queue, shell, workspace, and content-exclusion protocol surfaces.
Show a summary per file
| File(s) | Description |
|---|---|
nodejs/package.json, nodejs/samples/package-lock.json |
Updates Node runtime dependency. |
test/harness/package.json, test/harness/package-lock.json |
Updates harness runtime dependency. |
nodejs/src/generated/session-events.ts |
Regenerates session event types. |
java/pom.xml |
Updates reference implementation version. |
java/scripts/codegen/package.json, java/scripts/codegen/package-lock.json |
Updates Java codegen dependency. |
java/src/generated/java/com/github/copilot/generated/{AssistantMessageEvent,AssistantReasoningEvent,AssistantUsageEvent,FactoryRunUpdatedEvent,ModelCallFailureEvent,ModelCallStartEvent,ScheduleOrigin,SessionEvent,SessionResumeEvent,SessionScheduleCreatedEvent,SystemMessageEvent,ToolExecutionCompleteEvent,ToolExecutionStartEvent,UserMessageEvent}.java |
Regenerates Java event models. |
java/src/generated/java/com/github/copilot/generated/rpc/{BuiltInModelCatalogEntry,ConnectParams,ContentExclusionPathCheck,FactoryAgentSummary,FactoryCurrentPhase,FactoryDeclaredLimits,FactoryExecuteParams,FactoryPhaseObservation,FactoryPhaseStatus,FactoryProgressLine,FactoryProgressPage,FactoryRunConsumed,FactoryRunLimits,FactoryRunResult,FactoryRunSummary,FactoryRunTerminal}.java |
Adds and updates generated RPC models. |
java/src/generated/java/com/github/copilot/generated/rpc/{HistoryFileRestoreSkipReason,HistoryRewindChangeType,HistoryRewindFilePreview,HistoryRewindMode,HistoryRewindOutcome,HistoryRewindPoint,HistoryRewindUnavailableReason,HistorySkippedFileRestore}.java |
Adds history-rewind models. |
java/src/generated/java/com/github/copilot/generated/rpc/{ModelsGetBuiltInCatalogResult,SendMessageItem,ServerModelsApi,ServerSessionsApi,SessionsDeleteParams,SessionsGetMetadataParams,SessionsGetMetadataResult,SessionsListNonEmptySessionIdsParams,SessionsListNonEmptySessionIdsResult}.java |
Regenerates server RPC APIs. |
java/src/generated/java/com/github/copilot/generated/rpc/{SessionCancelAllBackgroundAgentsParams,SessionContentExclusionApi,SessionContentExclusionCheckPathsParams,SessionContentExclusionCheckPathsResult,SessionInterruptMainTurnParams,SessionInterruptMainTurnResult,SessionRpc,SessionSendParams,SessionSendSystemNotificationParams}.java |
Expands session RPC surfaces. |
java/src/generated/java/com/github/copilot/generated/rpc/{SessionFactoryAgentParams,SessionFactoryApi,SessionFactoryGetRunDetailParams,SessionFactoryGetRunDetailResult,SessionFactoryGetRunProgressParams,SessionFactoryGetRunProgressResult,SessionFactoryJournalGetParams,SessionFactoryJournalPutParams,SessionFactoryListRunsParams,SessionFactoryListRunsResult,SessionFactoryLogParams,SessionFactoryResumeParams,SessionFactoryResumeResult}.java |
Adds factory observability and resume RPCs. |
java/src/generated/java/com/github/copilot/generated/rpc/{SessionFsSqliteQueryParams,SessionFsSqliteQueryResult,SessionFsSqliteTransactionError,SessionFsSqliteTransactionErrorClass,SessionFsSqliteTransactionParams,SessionFsSqliteTransactionResult,SessionFsSqliteTransactionStatement}.java |
Adds SQLite transaction protocol types. |
java/src/generated/java/com/github/copilot/generated/rpc/{SessionHistoryApi,SessionHistoryListRewindPointsParams,SessionHistoryListRewindPointsResult,SessionHistoryPreviewRewindParams,SessionHistoryPreviewRewindResult,SessionHistoryRewindParams,SessionHistoryRewindResult,SessionHistoryTruncateResult}.java |
Adds rewind APIs and truncation status. |
java/src/generated/java/com/github/copilot/generated/rpc/{SessionMcpApi,SessionMcpOauthApi,SessionMcpOauthRespondParams,SessionMcpOauthRespondResult,SessionMcpStartServerParams}.java |
Updates MCP startup and OAuth RPCs. |
java/src/generated/java/com/github/copilot/generated/rpc/{SessionOptionsUpdateParams,SessionPermissionsApi,SessionPermissionsResetSessionApprovalsParams}.java |
Updates session options and permissions. |
java/src/generated/java/com/github/copilot/generated/rpc/{SessionQueueApi,SessionQueueBeginDeferredIdleDrainParams,SessionQueueBeginDeferredIdleDrainResult,SessionQueueConsumeSystemNotificationsParams,SessionQueueConsumeSystemNotificationsResult,SessionQueueDeferSessionIdleParams,SessionQueueEnqueueResumePendingParams,SessionQueueEnqueueResumePendingResult,SessionQueueFinishDeferredIdleDrainParams,SessionQueueFinishDeferredIdleDrainResult,SessionQueueHasPendingParams,SessionQueueHasPendingResult,SessionQueueProcessParams,SessionQueueSnapshotParams,SessionQueueSnapshotResult}.java |
Adds native queue orchestration RPCs. |
java/src/generated/java/com/github/copilot/generated/rpc/{SessionScheduleAddAtParams,SessionScheduleAddAtResult,SessionScheduleAddCronParams,SessionScheduleAddCronResult,SessionScheduleAddParams,SessionScheduleAddResult,SessionScheduleAddSelfPacedParams,SessionScheduleAddSelfPacedResult,SessionScheduleApi,SessionScheduleHasSelfPacedParams,SessionScheduleHasSelfPacedResult,SessionScheduleHydrateParams,SessionScheduleRearmSelfPacedParams,SessionScheduleRearmSelfPacedResult}.java |
Adds scheduling RPCs. |
java/src/generated/java/com/github/copilot/generated/rpc/{SessionWorkspacesAddSummaryParams,SessionWorkspacesAddSummaryResult,SessionWorkspacesApi,SessionWorkspacesAutopilotObjectiveExistsParams,SessionWorkspacesAutopilotObjectiveExistsResult,SessionWorkspacesDeleteAutopilotObjectiveParams,SessionWorkspacesDeleteAutopilotObjectiveResult,SessionWorkspacesDiffResult,SessionWorkspacesEnsureParams,SessionWorkspacesEnsureResult,SessionWorkspacesReadAutopilotObjectiveParams,SessionWorkspacesReadAutopilotObjectiveResult,SessionWorkspacesTruncateSummariesParams,SessionWorkspacesTruncateSummariesResult,SessionWorkspacesUpdateMetadataParams,SessionWorkspacesUpdateMetadataResult,SessionWorkspacesWriteAutopilotObjectiveParams,SessionWorkspacesWriteAutopilotObjectiveResult}.java |
Expands workspace RPC models. |
java/src/generated/java/com/github/copilot/generated/rpc/{ShellInitProfile,ShellInitScript,ShellInitScriptShell,ShellOptions,UIExitPlanModeResponse,WorkspaceDiffFileChange}.java |
Updates shell, plan, and diff models. |
go/zsession_events.go |
Exposes new generated event aliases. |
go/rpc/zsession_encoding.go |
Decodes factory update events. |
go/rpc/zrpc_encoding.go |
Updates generated union and option decoding. |
Review details
Files not reviewed (8)
- go/rpc/zrpc_encoding.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/167 changed files
- Comments generated: 0
- Review effort level: Medium
This comment has been minimized.
This comment has been minimized.
CI was red across all six SDKs after the @github/copilot bump. All failures
were build/typecheck breakages from the regenerated wire types.
1. New `sessionFs.sqliteTransaction` RPC
The CLI added `sessionFs.sqliteTransaction` to the SessionFs client handler
interface, so every hand-written provider adapter stopped satisfying it
(TS2741 / Go interface mismatch / ty invalid-return-type / CS0535). Rust
dispatches by method name so it still compiled, but silently had no handler.
Added a required `transaction` member to the SQLite provider interface in
each language plus the adapter plumbing:
- nodejs: `SessionFsSqliteStatement`, `SessionFsSqliteTransactionFailure`,
`SessionFsSqliteProvider.transaction`, adapter `sqliteTransaction`
- go: `SessionFSSqliteProvider.SqliteTransaction`,
`SessionFSSqliteTransactionFailure`
- python: `SessionFsSqliteProvider.sqlite_transaction`,
`SessionFsSqliteTransactionFailure`
- dotnet: `ISessionFsSqliteProvider.TransactionAsync`,
`SessionFsSqliteStatement`, `SessionFsSqliteTransactionException`
- rust: `SessionFsSqliteProvider::sqlite_transaction`,
`SessionFsSqliteTransactionError`, dispatch arm
Provider errors and "sqlite not supported" both surface as a *result-level*
classified error (busyOrLocked / fatal / postCommitAmbiguous) rather than a
transport error, since the runtime uses the class for retry decisions.
In-repo test providers were updated with real BEGIN IMMEDIATE / COMMIT /
ROLLBACK implementations.
2. Rust codegen bug for primitive RPC results
`session.cancelAllBackgroundAgents` has an inline `{"type":"integer"}`
result. `getResultTypeName()` named it `SessionCancelAllBackgroundAgentsResult`,
but the type-emitting loops in scripts/codegen/rust.ts only handled
enum/array/map/object schemas, so no alias was emitted (E0425). Added
`rustScalarType` / `emitRustScalarAlias` and regenerated.
3. Java records gained components
- `SessionOptionsUpdateParams`: `shell`, `eventsLogIncludesSubagents`
- `SessionHistoryTruncateResult`: `checkpointCleanupFailed`,
`checkpointCleanupError`
- `AssistantMessageEventData`: `rte`
Fixed the positional constructor call sites in CopilotClient and two tests.
4. Collateral wire changes
- `permissions.resetSessionApprovals` now takes a params object (Go + Rust
e2e call sites)
- `UIExitPlanModeResponse` gained `defer_implementation` (Rust struct literal)
Generated by Copilot
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: e615d062-bcb7-431e-aa9c-d3e47405723a
Adding PermissionsResetSessionApprovalsRequest to these use blocks changed how nightly rustfmt reflows them. Matches `cargo +nightly-2026-04-14 fmt --all -- --config-path .rustfmt.nightly.toml`, which both the Rust SDK Tests fmt check and the codegen verify job run. Generated by Copilot Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: e615d062-bcb7-431e-aa9c-d3e47405723a
This comment has been minimized.
This comment has been minimized.
…76-0
Two follow-ups from the CLI bump:
* The Go e2e sqlite provider is a stub (no cgo sqlite dependency) that returned a canned {id, name} row for every SELECT. The runtime now reads its own inbox_entries bookkeeping table through the SessionFS sqlite provider and deserializes those rows into typed structs, so it rejected the canned row with 'Invalid inbox row: missing field recipient_session_id'. Scope the canned row to the `items` table the test actually models and return an empty result set for everything else.
* permissions.resetSessionApprovals now takes a params object, which is a required argument in the generated Python API. Pass PermissionsResetSessionApprovalsRequest() at the e2e call site (the Go and Rust call sites were already updated).
Generated by Copilot
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: e615d062-bcb7-431e-aa9c-d3e47405723a
This comment has been minimized.
This comment has been minimized.
The "should kill shell process" e2e test exists in all five SDKs, but only Node, Python and Rust destroy the session at the end of it. Go tears the whole client down with client.ForceStop() and .NET simply ended at the last assert, so neither ever exercised session.destroy after a session.shell.exec. That gap is why Go and .NET stayed green on CLI 1.0.76-0 while Node, Python and Rust hang: the hang is in session.destroy after a shell exec, and the two green SDKs never made the call. Adding the teardown makes all five cover the same sequence. Verified locally against the same CLI binary (1.0.76-0, sha256 b8bfad2c...): with the added Disconnect(), the Go test hangs past a 3-minute timeout where it previously passed in seconds. The same test passes on CLI 1.0.73. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: e615d062-bcb7-431e-aa9c-d3e47405723a
The runtime team confirmed this method is marked `visibility: internal` in the shared API contract: its `client` and `transport` fields are live in-process MCP SDK instances that cannot be serialized over JSON-RPC. No SDK exposes it as a typed method, and the Rust test drove it through a raw `call_session_rpc` with placeholder JSON objects that could never satisfy that contract. It passed on CLI 1.0.73 only because the old TypeScript dispatch happened to route internal methods generically. 1.0.76-0 routes the method through the Rust native registry, where the host-effect switch has no case for it, so it now returns -32603 "Unsupported native session host effect". That is correct behaviour, not a regression, so the test is removed along with its now-orphaned snapshot and a note recording why the gap is deliberate. Both `call_session_rpc` and `is_mcp_server_running` remain in use by other tests in the file, so no helper became dead. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: e615d062-bcb7-431e-aa9c-d3e47405723a
This comment has been minimized.
This comment has been minimized.
pytest-timeout has been a declared dev dependency for a while but was never configured, and the Python job sets no timeout-minutes either. When CLI 1.0.76-0 introduced a session.destroy deadlock, five of the six Python jobs sat in_progress for hours instead of failing, producing no diagnostic signal at all and holding runners until GitHub's 6-hour job limit. Setting timeout = 300 makes a deadlocked test fail in five minutes with a full stack dump pointing at the blocked call, which is how the other SDKs already behave (Node uses 30s/60s/180s per test, Go bounds the package at 20m). The value is deliberately generous: the whole Python suite completes in about 10 minutes, so no individual test comes close to 300s. Verified locally that pytest honours the setting from pyproject.toml and that it interrupts a hanging test with a traceback. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: e615d062-bcb7-431e-aa9c-d3e47405723a
Contributor
Author
Cross-SDK Consistency Review ✅This PR is an automated Feature coverage:
|
| SDK | Interface method | Failure type | Status |
|---|---|---|---|
| Node.js | transaction(statements) |
SessionFsSqliteTransactionFailure class |
✅ Added |
| Python | sqlite_transaction(statements) |
SessionFsSqliteTransactionFailure exception |
✅ Added |
| Go | SqliteTransaction(statements) |
*SessionFSSqliteTransactionFailure error |
✅ Added |
| .NET | TransactionAsync(statements, ct) |
SessionFsSqliteTransactionException |
✅ Added |
| Rust | sqlite_transaction(statements) |
SessionFsSqliteTransactionError |
✅ Added |
| Java | N/A — Java doesn't expose SessionFsProvider as a user-facing API |
— | ✅ N/A |
API naming consistency
- Method names follow each language's convention (camelCase/snake_case/PascalCase) ✅
- All SDKs expose
SessionFsSqliteStatement/SessionFsSqliteTransactionErrorClass✅ - Failure classification (
busyOrLocked/postCommitAmbiguous/fatal) is consistent across all SDKs ✅ - Adapter-level error propagation pattern (result-level error, not transport error) is consistent ✅
No cross-SDK consistency issues found. The new SQLite transaction feature is implemented uniformly across all applicable SDKs.
Generated by SDK Consistency Review Agent for #2100 · sonnet46 55.4 AIC · ⌖ 5.52 AIC · ⊞ 6.6K · ◷
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automated update of
@github/copilotto version1.0.76-0.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.