Skip to content

Generate catalogue SDK bindings from CLI 1.0.83-2 - #2481

Closed
gokhanarkan wants to merge 3 commits into
mainfrom
gokhanarkan/pin-catalogue-runtime
Closed

gokhanarkan wants to merge 3 commits into
mainfrom
gokhanarkan/pin-catalogue-runtime

Conversation

@gokhanarkan

@gokhanarkan gokhanarkan commented Sep 2, 2026

Copy link
Copy Markdown
Member

Part of #2106

Summary

  • update the repository-standard @github/copilot source to CLI 1.0.83-2, which supplies both version-matched runtime artefacts and api.schema.json
  • regenerate deterministic protocol bindings for .NET, Go, Java, Node.js, Python, and Rust
  • fix source generators where needed to preserve typed nested catalogue unions
  • add six-language semantic conformance coverage for catalogue search

The package manifests retain this repository's existing version-range conventions. Committed lockfiles resolve the exact package and platform artefacts so generation and bundled-runtime assembly are reproducible.

This is an SDK schema/runtime generation update, not an App runtime pin. It does not gate github/github-app#9880's internal SDK update. Executable catalogue plan/apply bindings remain future work under #2106.

Catalogue surface

The 1.0.83-2 schema generates a typed CatalogSearchRequest (contract, query, optional limit and kinds) and an eleven-variant CatalogSearchResult: success plus ten typed refusals/failures. Successful results carry an opaque searchId and typed MCP server or AI skill candidates with opaque handle values. Candidate sources are a URL or an inert embedded marker; the embedded variant has no card payload.

SDK Generated evidence
Node.js Typed request/result unions, MCP and AI skill candidates, and URL/embedded source variants
Python `CatalogCandidate = CatalogMCPServerCandidate
Go Typed known candidate/source/result variants; raw wrappers remain only as the established forward-compatible fallback for unknown future discriminators
.NET Typed candidate, source, and result class hierarchies
Rust Typed serde enums for candidates, sources, and all result variants
Java CatalogSearchSucceeded.getCandidates() is List<CatalogCandidate> with Jackson-discriminated MCP/AI skill and URL/embedded hierarchies; no Object fallback remains on the catalogue surface, and every search hierarchy type is gated by @CopilotExperimental

The complete CLI schema regeneration also changes unrelated generated session-event types. Those files are deterministic generator output and were neither hand-edited nor pruned.

Source generator fixes

  • Python now reconciles Ai/AI acronym casing when restoring referenced discriminated unions.
  • Java generates named polymorphic hierarchies for the nested CatalogCandidate and CatalogCandidateSource unions, serialises their existing discriminator exactly once, and propagates experimental method stability to all catalogue search bases and variants.
  • Rust escapes bracketed external schema prose outside inline code and Markdown links, preventing [::] from becoming an invalid intra-doc link.
  • Rust pin validation recognises the two Linux musl packages present in the exact in-process runtime snapshot.

Conformance coverage

Each SDK exercises the same semantic fixture: a successful search containing an MCP URL candidate and an embedded AI skill candidate, opaque handle preservation, an embedded source serialising with only its discriminator, and typed dispatch of an unsupported-kind refusal. The Java tests additionally prevent regression to nested Object unions or duplicate discriminator output and compile representative bases and variants through the experimental API processor to require explicit consumer opt-in.

CI failure triage

  • Rust Ubuntu: branch-caused unresolved rustdoc link from schema prose; fixed at the Rust generator source.
  • Rust Windows consumers: branch-caused unused executable build-script parameter under non-Unix -D warnings; fixed by retaining the Unix-only value as an intentionally unused cross-platform binding.
  • Go macOS: isolated external models.list connection timeout; all Go matrix cells pass on the refreshed head without skipping or weakening tests.
  • SDK consistency agent: transient MCP gateway startup reset on the superseded run; the refreshed agent check passes and produced no review feedback.

Validation

  • deterministic regeneration confirmed across 1,460 generated files
  • Node.js formatting, lint, typecheck, build, and 455 non-E2E tests
  • Python lint, typecheck, and 388 unit tests
  • Go all non-E2E packages
  • .NET focused catalogue conformance test and formatting check
  • Java mvn verify, including catalogue conformance, experimental gating, and native packaging
  • Rust nightly formatting, Clippy with warnings denied, rustdoc with warnings denied, 244 library tests, 11 generated API type tests, and 6 CLI resolution tests

@gokhanarkan
gokhanarkan force-pushed the gokhanarkan/pin-catalogue-runtime branch from 98eb051 to daa3c9a Compare September 2, 2026 12:37
@github-actions

This comment has been minimized.

@gokhanarkan
gokhanarkan marked this pull request as ready for review September 2, 2026 13:00
Copilot AI balanced review requested due to automatic review settings September 2, 2026 13:00
@gokhanarkan
gokhanarkan requested a review from a team as a code owner September 2, 2026 13:00
@gokhanarkan gokhanarkan changed the title Pin Copilot runtime to 1.0.83-2 Generate catalogue SDK bindings from CLI 1.0.83-2 Sep 2, 2026
@gokhanarkan
gokhanarkan marked this pull request as draft September 2, 2026 13:01

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.

Copilot review overview

🟡 Changes recommended

Java catalogue generation loses experimental API gating and widens fixed schema literals to arbitrary strings.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review tier: Balanced
Findings: 1 Medium severity

New issues introduced by this change (1)
Severity Finding
Medium severity java/​scripts/​codegen/​java.tsgeneratePolymorphicResultClass does not propagate experimental stability to either the base class…
What changed in this PR

Updates the Copilot CLI schema/runtime source to 1.0.83-2 and regenerates six SDKs with typed catalogue-search bindings.

Changes:

  • Adds typed catalogue candidates, sources, results, and refusals.
  • Fixes Python, Java, and Rust generators.
  • Adds cross-language catalogue conformance coverage.
File Description
test/​harness/​package.json Updates CLI dependency.
test/​harness/​package-lock.json Locks 1.0.83-2 artifacts.
scripts/​codegen/​rust.ts Escapes Rustdoc brackets.
scripts/​codegen/​python.ts Handles AI acronym casing.
rust/​tests/​e2e/​rpc_session_state_extras.rs Adapts generated model policy field.
rust/​tests/​cli_resolution_test.rs Validates musl package pins.
rust/​tests/​api_types_test.rs Tests catalogue unions.
rust/​src/​generated/​session_events.rs Regenerates session events.
rust/​src/​generated/​rpc.rs Regenerates RPC methods.
rust/​src/​generated/​api_types.rs Adds generated catalogue/API types.
python/​test_rpc_generated.py Tests typed catalogue dispatch.
python/​copilot/​generated/​session_events.py Regenerates session events.
nodejs/​test/​catalog-search-types.test.ts Tests catalogue type semantics.
nodejs/​src/​generated/​session-events.ts Regenerates event types.
nodejs/​src/​generated/​rpc.ts Adds catalogue and updated RPC bindings.
nodejs/​samples/​package-lock.json Updates sample runtime lock.
nodejs/​package.json Updates runtime dependency.
nodejs/​package-lock.json Locks runtime/platform artifacts.
java/​sdk/​src/​test/​java/​com/​github/​copilot/​RpcSessionStateExtrasE2ETest.java Adapts generated constructor.
java/​sdk/​src/​test/​java/​com/​github/​copilot/​generated/​rpc/​GeneratedRpcRecordsCoverageTest.java Adapts record constructors.
java/​sdk/​src/​test/​java/​com/​github/​copilot/​generated/​rpc/​CatalogSearchConformanceTest.java Tests Java catalogue hierarchy.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​UserMessageEvent.java Adds message identity.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​SubagentFailedEvent.java Adds model override reason.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​SubagentCompletedEvent.java Adds model override reason.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​SessionFusionResolvedEvent.java Adds fusion phase plan.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​SessionEvent.java Registers new event variants.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​SessionCompletionReceiptEvent.java Adds completion receipts.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​SubagentSettingsEntry.java Adds model policy.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​SessionsReadPersistedEventsResult.java Adds persisted-event result.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​SessionsReadPersistedEventsParams.java Adds persisted-event parameters.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​SessionModelSwitchToParams.java Clarifies model source behavior.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​ServerSessionsApi.java Exposes persisted-event reads.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​ServerRpc.java Registers hooks API.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​ServerHooksApi.java Adds hook discovery.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​SandboxConfigUserPolicyNetworkProxy.java Updates proxy documentation.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​SandboxConfigUserPolicyNetwork.java Updates network documentation.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​QueuePendingItems.java Adds message identity.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​HookType.java Updates hook documentation.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​HooksDiscoverResult.java Adds hook discovery result.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​HooksDiscoverParams.java Adds hook discovery parameters.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​HookOrigin.java Adds hook origin enum.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​DiscoveredHook.java Adds discovered-hook model.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​CatalogSearchSucceeded.java Types candidate collection.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​CatalogMcpServerInstallability.java Adds installability enum.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​CatalogMcpServerCandidateProvenance.java Adds MCP provenance.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​CatalogMcpServerCandidate.java Adds typed MCP candidate.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​CatalogCandidateSourceUrl.java Adds URL source variant.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​CatalogCandidateSourceEmbedded.java Adds embedded source variant.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​CatalogCandidateSource.java Adds source hierarchy.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​CatalogCandidate.java Adds candidate hierarchy.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​CatalogAiSkillCandidateProvenance.java Adds skill provenance.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​CatalogAiSkillCandidate.java Adds typed skill candidate.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​AgentModelPolicy.java Adds RPC model policy.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​rpc/​AgentInfo.java Adds model preferences.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​PermissionRequestedEvent.java Adds agent mode.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​FusionPhasePlanStep.java Adds fusion plan step.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​FusionPhaseActivityKind.java Adds activity kinds.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​CustomAgentsUpdatedAgent.java Adds authored model configuration.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​CompletionReceiptToolStatus.java Adds receipt tool statuses.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​CompletionReceiptStopReason.java Adds receipt stop reasons.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​CompletionReceiptFinalTool.java Adds final-tool receipt data.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​CompletionReceiptEventRange.java Adds receipt event range.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​AssistantFusionPhaseActivityEvent.java Adds fusion activity event.
java/​sdk/​src/​generated/​java/​com/​github/​copilot/​generated/​AgentModelPolicy.java Adds event model policy.
java/​scripts/​codegen/​package.json Updates codegen dependency.
java/​scripts/​codegen/​package-lock.json Locks codegen runtime artifacts.
java/​scripts/​codegen/​java.ts Generates nested catalogue hierarchies.
java/​pom.xml Updates reference runtime version.
go/​zsession_events.go Re-exports generated events.
go/​rpc/​zsession_events.go Adds generated event models.
go/​rpc/​zsession_encoding.go Adds event decoding.
go/​rpc/​zrpc.go Adds catalogue and updated RPC bindings.
go/​rpc/​generated_rpc_union_test.go Tests catalogue unions.
dotnet/​src/​Generated/​Rpc.cs Regenerates .NET RPC bindings.
dotnet/​test/​Unit/​SerializationTests.cs Tests catalogue serialization.
Files not reviewed (7)
  • 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

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread java/scripts/codegen/java.ts
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

SDK Consistency Review

Reviewed the authoritative PR diff (get_files + get_diff) covering 30 changed paths across dotnet/, go/, java/, nodejs/, python/, rust/, plus shared scripts/codegen/* and java/scripts/codegen/*.

Summary: This PR is a coordinated, cross-language generated-code regeneration (new schema types such as DiscoveredHook, HookOrigin, HooksDiscoverParams/Result, AgentModelPolicy, the Catalog* search-result family, SessionCompletionReceiptEvent, FusionPhase*, SubagentSettingsEntry, etc.) driven by an updated upstream schema. All six SDKs received matching updates in their generated files:

  • Node.js: nodejs/src/generated/rpc.ts, session-events.ts
  • Python: python/copilot/generated/rpc.py, session_events.py
  • Go: go/rpc/zrpc.go, zsession_events.go, zsession_encoding.go
  • .NET: dotnet/src/Generated/Rpc.cs, SessionEvents.cs
  • Java: java/sdk/src/generated/java/com/github/copilot/generated/** (many new/modified files)
  • Rust: rust/src/generated/{rpc,api_types,session_events}.rs

Spot-checked several of the new types (CatalogSearchResult, DiscoveredHook) and confirmed equivalent definitions exist in all five language outputs with idiomatic naming per language convention (PascalCase in .NET/Go, camelCase/PascalCase in Java classes, snake_case in Python/Rust modules where applicable). Corresponding tests were also added per-language where relevant (go/rpc/generated_rpc_union_test.go, dotnet/test/Unit/SerializationTests.cs, java/sdk/src/test/java/.../GeneratedRpcRecordsCoverageTest.java, java/sdk/src/test/java/.../CatalogSearchConformanceTest.java, nodejs/test/catalog-search-types.test.ts, python/test_rpc_generated.py, rust/tests/api_types_test.rs).

The remaining changes (java/scripts/codegen/java.ts, scripts/codegen/rust.ts, scripts/codegen/python.ts) are generator bugfixes local to each language's codegen pipeline (e.g., Java: correct @JsonTypeInfo handling for nested polymorphic types and experimental-stability annotation propagation; Rust: doc-comment escaping fix for Markdown-style link syntax; Python: added an AiAI acronym substitution for discriminated-union naming). These are internal tooling fixes tied to each language's own code-generation quirks and don't need to be mirrored in other SDKs' generators.

No cross-SDK consistency issues found. Feature parity is maintained across all six SDK implementations for this schema update.

Generated by SDK Consistency Review Agent for #2481 · sonnet50 32.5 AIC · ⌖ 7.75 AIC · ⊞ 8.8K ·

@gokhanarkan

Copy link
Copy Markdown
Member Author

Closing in favour of workflow-generated PR #2483, per SDK team guidance; any generator or conformance improvements should be proposed separately after the dependency update lands.

@gokhanarkan gokhanarkan closed this Sep 2, 2026
@gokhanarkan
gokhanarkan deleted the gokhanarkan/pin-catalogue-runtime branch September 2, 2026 13:51
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