Skip to content

[CI signal only, do not merge] Canonical runtime src/sdk at 8575ea4f - #2773

Draft
gokhanarkan wants to merge 7 commits into
mainfrom
gokhanarkan/ci-signal-canonical-sdk-1e15bb8f
Draft

gokhanarkan wants to merge 7 commits into
mainfrom
gokhanarkan/ci-signal-canonical-sdk-1e15bb8f

Conversation

@gokhanarkan

@gokhanarkan gokhanarkan commented Sep 24, 2026 •

Copy link
Copy Markdown
Member

CI signal only. Do not merge. This draft exists so CI can run on the reconciled canonical SDK before a real release. It must never be merged into main. The real export happens only through the runtime release workflow (publish-cli.yml, job sdk-release-snapshot) when a CLI version that contains this source ships.

Source

  • Runtime commit: github/copilot-agent-runtime@8575ea4f5ee9fc625cd78c1851325d558d1f6fd5 (tree 26fb2b0e, src/sdk subtree dd47a887). This is the head of github/copilot-agent-runtime#22809, which merges github/copilot-agent-runtime#22802 (so it includes github/copilot-agent-runtime#22786 and current runtime main).
  • Base: main at 4001c1da ("Update SDK snapshot for Copilot CLI 1.0.89-3").

How it was produced

The release tool is script/sdk-release-snapshot.ts. I didn't use its own dry run: runSnapshot() refuses a --version equal to the released version when the tree differs (line 161), and a newer version would invent pins. So a local, uncommitted driver repeats runSnapshot() step by step:

  1. fresh clone of main
  2. git rm -r -q --ignore-unmatch .
  3. git archive --format=tar HEAD:src/sdk from the runtime commit
  4. tar -xf
  5. the tool's own exported updateVersionPins(), given the released version 1.0.89-3 (read from main)
  6. git add -A

The driver stops before the commit and push. Command:

node export-ci-signal.ts <runtime-worktree> 8575ea4f5ee9fc625cd78c1851325d558d1f6fd5 <scratch-dir>

This isn't hand copying, and no workflow was dispatched. The runtime src/sdk has no export-ignore or export-subst attributes, so git archive filters nothing, exactly as in the release job. The one symlink, rust/LICENSE, is preserved.

What differs from main

The tree equals the runtime src/sdk subtree byte for byte, except nodejs/package.json and nodejs/src/cliVersion.ts. Those two keep main's released pins (copilotCliVersion / COPILOT_CLI_VERSION = 1.0.89-3), so there's no 0.0.0-dev pin and no invented pin. Other 0.0.0-dev package versions are unchanged from main.

Compared with main, the diff now spans the files listed on this PR. This branch was first exported from runtime 1e15bb8f and refreshed by a normal fast-forward push. Refreshes so far:

  • from runtime main: github/copilot-agent-runtime#22578's Dynamic Workflows rename, which intentionally removes the experimental Factory* surface (rpc.factory becomes rpc.workflow); github/copilot-agent-runtime#22558's projections; github/copilot-agent-runtime#22211's ModelChangeSource value auto_tier_recommendation and optional autoTier on the SetModel slash-command result, in all six SDKs; and the synced SDK workflow updates;
  • from this chain: the language-neutral x-legacy-parameters projection from github/copilot-agent-runtime#22786 and github/copilot-agent-runtime#22802 (published request types keep their shape, with new inputs on extensible Options/request overloads per language); Rust compatibility aliases keeping every released 1.0.89-3 type name; McpInstallPlan.transportChoices kept at its released Rust shape via x-legacy-untyped;
  • also from this chain: the owned-installation marker McpServer.owned (McpServerOwnership) with response x-legacy-parameters projections; a back-compatible Rust fix so AttachmentGitHubReference/PushAttachmentGitHubReference serialise their "github_reference" type literal instead of "Unknown";
  • also from this chain: the Rust fix giving each titled McpInstallationReview action literal its own enum, so uninstall reviews deserialise, with a generator guard against enum-name collisions; the large_futures-safe session_test;
  • also from this chain: the github/copilot-agent-runtime#22809 review fixes (rust/src/router.rs no longer awaits extensionLaunchProvider.resolve on the request loop) and their Rust and Node regression tests, including a hung llmInference case. The main changes:
  • typed Node/Rust installations.confirm receivers and their tests and fixtures
  • Rust codegen union/alias fixes
  • regenerated projections in all six SDKs for mcp.prepareInstall/applyInstall/planUninstall/applyUninstall, mcp.installations.*, session.mcp.oauth.prepareLogin/cancelLogin and the expectedInstallationId guards
  • the updated Node and Java RPC inventories
  • the removal of sdk-consistency-review workflow files, as runtime main already did

The only manifest change is a new installation_confirmation_test target in rust/Cargo.toml.

Expected failures

The released CLI 1.0.89-3 doesn't implement the runtime-new methods above. Tests that run against the released CLI, such as the RPC inventory and E2E suites exercising those methods, are expected to fail by design. That's a version-skew signal, not a defect here. Python, Go, .NET and Java receivers for installations.confirm fail closed for now (github/copilot-agent-runtime#22844).

@gokhanarkan gokhanarkan changed the title [CI signal only, do not merge] Canonical runtime src/sdk at 1e15bb8f [CI signal only, do not merge] Canonical runtime src/sdk at 2447132a Sep 25, 2026
@gokhanarkan gokhanarkan changed the title [CI signal only, do not merge] Canonical runtime src/sdk at 2447132a [CI signal only, do not merge] Canonical runtime src/sdk at e678eece Sep 25, 2026
@gokhanarkan gokhanarkan changed the title [CI signal only, do not merge] Canonical runtime src/sdk at e678eece [CI signal only, do not merge] Canonical runtime src/sdk at ac8d7ea4 Sep 25, 2026
var property = type.GetProperty(name);
Assert.NotNull(property);
Assert.Contains(property.CustomAttributes, attribute =>
attribute.AttributeType.FullName == "System.Runtime.CompilerServices.RequiredMemberAttribute");
foreach (var name in new[] { nameof(McpPlanInstallRequest.Scope), nameof(McpPlanInstallRequest.PolicySessionId) })
{
Assert.DoesNotContain(typeof(McpPlanInstallRequest).GetProperty(name)!.CustomAttributes, attribute =>
attribute.AttributeType.FullName == "System.Runtime.CompilerServices.RequiredMemberAttribute");
Contract = null!,
Source = new McpPlanInstallSourceCandidate { CandidateHandle = "candidate", SearchId = "search" },
}));
await Assert.ThrowsAsync<ArgumentNullException>(() => client.Rpc.Mcp.PlanInstallAsync((McpPlanInstallRequest)null!));
@gokhanarkan gokhanarkan changed the title [CI signal only, do not merge] Canonical runtime src/sdk at ac8d7ea4 [CI signal only, do not merge] Canonical runtime src/sdk at 412a69dd Sep 25, 2026
@gokhanarkan gokhanarkan changed the title [CI signal only, do not merge] Canonical runtime src/sdk at 412a69dd [CI signal only, do not merge] Canonical runtime src/sdk at d2bd3783 Sep 25, 2026
@gokhanarkan gokhanarkan changed the title [CI signal only, do not merge] Canonical runtime src/sdk at d2bd3783 [CI signal only, do not merge] Canonical runtime src/sdk at 8575ea4f Sep 25, 2026

This branch has not been deployed

No deployments
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