Conversation
Regenerate all six SDK bindings and preserve Rust's forward-compatible Unknown fallback while mapping the protocol's explicit unknown value to UnknownValue. Cover nested schema collisions and generated wire roundtrips. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
SDK Consistency ReviewReviewed the full PR diff (23 files) via the GitHub API. This PR is a coordinated CLI schema update (bump to New/changed fields — present in all 6 SDKs (.NET, Go, Java, Node.js, Python, Rust):
CLI version bump:
Rust-specific codegen fix (
All changes are auto-generated from the CLI schema (or in the case of
|
There was a problem hiding this comment.
Copilot review overview
🔵 Needs a closer look
New generated fields break stable Python positional constructors and exhaustive Rust struct literals.
Review effort: Balanced (auto)
Findings: None
Note
Copilot is running an experiment and ran this review at Balanced.
What changed in this PR
Updates the shared Copilot CLI pin to 1.0.86-2, superseding #2702, and regenerates all SDK protocol surfaces.
Changes:
- Distinguishes explicit Rust
"unknown"values from serde fallbacks. - Adds assisted-approval, reasoning-history, permission-mode, and enterprise-license fields.
- Adds focused Rust generator and serialization coverage.
| File | Description |
|---|---|
scripts/codegen/rust.ts |
Generalizes explicit "unknown" enum handling. |
rust/tests/session_events_test.rs |
Tests explicit and future enum values. |
rust/src/generated/session_events.rs |
Adds regenerated event models and enums. |
rust/src/generated/api_types.rs |
Adds enterprise-license data. |
python/copilot/generated/session_events.py |
Adds regenerated event models. |
python/copilot/generated/rpc.py |
Adds enterprise-license RPC data. |
nodejs/test/rust-codegen.test.ts |
Tests enum collisions and nested enums. |
nodejs/src/generated/session-events.ts |
Adds regenerated event interfaces. |
nodejs/src/generated/rpc.ts |
Adds enterprise-license RPC fields. |
nodejs/src/cliVersion.ts |
Pins CLI 1.0.86-2. |
nodejs/package.json |
Updates the shared CLI release pin. |
java/sdk/src/generated/java/com/github/copilot/generated/UserMessageEvent.java |
Adds reasoning metadata. |
java/sdk/src/generated/java/com/github/copilot/generated/SystemNotificationEvent.java |
Adds reasoning metadata. |
java/sdk/src/generated/java/com/github/copilot/generated/SessionCompactionCompleteEvent.java |
Adds compaction reasoning metadata. |
java/sdk/src/generated/java/com/github/copilot/generated/rpc/CopilotUserResponse.java |
Adds enterprise-license data. |
java/sdk/src/generated/java/com/github/copilot/generated/ResponsesReasoning.java |
Defines reasoning metadata. |
java/sdk/src/generated/java/com/github/copilot/generated/PermissionRequestedEvent.java |
Adds permission mode. |
go/zsession_events.go |
Re-exports new event types and constants. |
go/rpc/zsession_events.go |
Adds regenerated event models and enums. |
go/rpc/zsession_encoding.go |
Decodes new event fields. |
go/rpc/zrpc.go |
Adds enterprise-license RPC data. |
dotnet/src/Generated/SessionEvents.cs |
Adds regenerated event models and converters. |
dotnet/src/Generated/Rpc.cs |
Adds enterprise-license RPC data. |
Files not reviewed (3)
- go/rpc/zsession_encoding.go: Generated file
- go/rpc/zsession_events.go: Generated file
- go/zsession_events.go: Generated file
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
CI investigation at unchanged head
No SDK workaround or test weakening is justified by this evidence. The .NET macOS event-log shard is still running; superseded-run cancellations are excluded from this assessment. Ready for human review remains distinct from merge readiness; do not merge. |
|
Concrete follow-up for the confirmed Go native signal crash: github/copilot-agent-runtime#21231, head |
Summary
1.0.86-2in the shared release pin and regenerate all six SDKs from its release schemas."unknown"maps toUnknownValue;Unknownremains the forward-compatible serde fallback. Generalizes the existingCatalogTrustEligibilityrule without renaming existing public variants or accepting other naming collisions.Single replacement for updater 35171940387, which failed during Rust codegen before creating a PR. Supersedes closed #2702 (
1.0.86-1). No competing version bump was created.Validation
mvn verifypassed; handwritten Spotless/Checkstyle passed. Initial broad local Java invocation lacked the replay harness and was stopped; full E2E ran in CI.Release provenance
The published release is release ID
390361151. PackagedbuildMetadata.gitCommitidentifies runtime source615005b5795ebea28929abdc43e4ad6acff6024f(previous-1:8c1a31a6239666247da539954f1b2eb0447f15bb). Both public tags point toab6139c694ba09ab4e8ac76b6046daa6b5d89616, so the public tag alone does not identify the runtime payload.The Linux ARM64 runtime package is asset
569122771; its checksum manifest entry matches GitHub's asset digest:28d0a1a86fec459240c564b35b2d8071fcf8bb8f47de8e8621400dd4fbfcc5cc. Provenance review found additive schema changes and no JSON-RPC method/envelope changes. This is not an independent audit of every asset or a guarantee for every older strict consumer.CI and residual risk
Ready for human review, not merge, at unchanged
6c5d962eeea540952a7195dbe1b1712632e92c8e. SDK run 35172957670, attempt 3, has 85 successful jobs and 2 failed jobs: the original Go Linux in-process test and its required aggregate. These counts are jobs within this run, not all PR checks; superseded-run cancellations are excluded.105048503768reproducessignal 17 received but handler not on signal stack/ missingSA_ONSTACKon Go 1.24.13 x64 in both pre-MCP replace-meta and remove-meta subprocesses. It was not rerun.-2. Separate fix: github/copilot-agent-runtime#21231 (15d3866198b), not included here. No SDK workaround or test weakening.105048503744stalls 300 seconds insession.resume, with native mutex waits and healthy SDK transport. Exactly one targeted retry, job105053802670, passed 945 tests, 9 skipped, including that exact case.-2. CI diagnostics artifact10477637325preserves the original failure.105048504030exceeded its 20-minute execution limit. Exactly one targeted retry, job105055558937, passed all 4 RpcEventLogE2ETests; actual log available. .NET required is now successful.The .NET retry executed persisted-event reads, tail-cursor/empty reads, filtered title-change longpoll, and idempotent interest registration/release. It ran on a new runner from
02:40:21Zto02:41:41Zon September 17, 2026.Only Python and required aggregates executed in attempt 2; only the .NET event-log shard and required aggregates executed in attempt 3. Other job IDs appearing in subsequent attempts are carried-forward aliases with original timestamps, not additional test runs. No further retries are planned.
Bounded local follow-up did not reproduce the original Python FFI resume hang: five permissions-module runs per release passed 65 tests on
-2and 65 on-0; a full Python 3.11 two-worker run also passed the original case but encountered two distinct failures (ambient standalone-extension configuration and TCPsession.detachcleanup). These are not conflated with the CI FFI failure.Do not merge automatically. Do not change the CLI pin beyond
1.0.86-2without direction.