Skip to content

Releases: github/copilot-sdk

v1.0.7-preview.1

v1.0.7-preview.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 10 Jul 05:10
04a4adc

Feature: in-process (FFI) transport for the Node.js SDK

The Node.js SDK now supports an experimental in-process transport that hosts the Copilot runtime as a native library via FFI (using [koffi]((koffi.dev/redacted), instead of spawning a child process. This reduces process overhead and eliminates the need for a separate CLI installation when using a bundled native runtime. (#1953)

const connection = RuntimeConnection.forInProcess("/path/to/libcopilot-runtime.so");
const client = new CopilotClient({ runtimeConnection: connection });

Feature: canvasProvider field on session config

All SDKs (Node.js, .NET, Go, Python, Rust) now support an optional canvasProvider field on session create and resume config. This lets host connections supply a stable canvas-provider identity so host-provided canvases restore correctly across cold resume. (#1847)

  • TypeScript: canvasProvider: { id: "app:builtin:my-host", name: "My Host" }
  • C#: CanvasProvider = new CanvasProviderIdentity { Id = "app:builtin:my-host" }
  • Python: canvas_provider=CanvasProviderIdentity(id="app:builtin:my-host")
  • Go: CanvasProvider: &CanvasProviderIdentity{Id: "app:builtin:my-host"}

Feature: agent metadata in request handler contexts

Request handler callbacks across all SDKs (Node.js, Python, Go, .NET, Rust, Java) now expose agentId, parentAgentId, and interactionType from LLM inference request-start frames. This lets BYOK/CAPI request handlers identify which agent is making the inference request, and whether it is a subagent call. (#1949)

Other changes

  • bugfix: [.NET] fix request-handler forwarding so GET/HEAD requests do not receive an empty content body (#1949)

Generated by Release Changelog Generator · sonnet46 498.2K

rust/v1.0.7-preview.1

rust/v1.0.7-preview.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 10 Jul 05:10
04a4adc

What's Changed

  • Fix docs formatting for docs.github.com publishing (model name, lists, table cell) by @sunbrye in #1800
  • Add session-level canvasProvider field to Rust, Node, .NET, Go, and Python SDKs by @jmoseley in #1847
  • Add in-process (FFI) transport for the Node.js SDK by @SteveSandersonMS in #1953
  • Propagate request handler agent metadata by @stephentoub in #1949
  • [changelog] Add changelog for java/v1.0.6 by @github-actions[bot] in #1948
  • Update @github/copilot to 1.0.70 by @github-actions[bot] in #1962

Full Changelog: rust/v1.0.7-preview.0...rust/v1.0.7-preview.1

GitHub Copilot SDK for Java 1.0.7-preview.1

Choose a tag to compare

Installation

⚠️ Artifact versioning plan: Releases of this implementation track releases of the reference implementation. For each release of the reference implementation, there may follow a corresponding release of this implementation with the same number as the reference implementation. Release identifiers of the reference implementation are in the form vMaj.Min.Micro. For example v0.1.32. The corresponding maven version for the release will be Maj.Min.Micro-java.N, where Maj, Min and Micro are the corresponding numbers for the reference implementation release, and N is a monotonically increasing sequence number starting with 0 for each release. See the corresponding architectural decision record for more information in the docs/adr directory of the source code.

📦 [View on Maven Central]((central.sonatype.com/redacted)

📖 [Documentation]((github.github.io/redacted) · [Javadoc]((github.github.io/redacted)

Maven

<dependency>
    <groupId>com.github</groupId>
    <artifactId>copilot-sdk-java</artifactId>
    <version>1.0.7-preview.1</version>
</dependency>

Gradle (Kotlin DSL)

implementation("com.github:copilot-sdk-java:1.0.7-preview.1")

Gradle (Groovy DSL)

implementation 'com.github:copilot-sdk-java:1.0.7-preview.1'

Feature: request handler context now exposes agent metadata

CopilotRequestContext now includes agentId, parentAgentId, and interactionType fields, giving request handlers visibility into which agent is making an LLM inference call and whether it is a subagent. (#1949)

client.setRequestHandler((context, chain) -> {
    System.out.println("Agent: " + context.getAgentId());
    System.out.println("Parent: " + context.getParentAgentId());
    System.out.println("Interaction: " + context.getInteractionType());
    return chain.apply(context);
});

Generated by Release Changelog Generator · sonnet46 747.2K

v1.0.7-preview.0

v1.0.7-preview.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 09 Jul 15:35
611d9bd

Feature: enableManagedSettings for enterprise policy enforcement (all SDKs)

Applications can now pass enableManagedSettings when creating or resuming a session to opt the runtime into enterprise managed-settings enforcement (bypass-permissions policy) using the session's gitHubToken. This is purely additive and opt-in — omitting it behaves exactly as before. (#1925)

const session = await client.createSession({
  gitHubToken: "...",
  enableManagedSettings: true,
});
var session = await client.CreateSessionAsync(new SessionConfig
{
    GitHubToken = "...",
    EnableManagedSettings = true,
});
  • Python: enable_managed_settings=True kwarg on create_session / resume_session
  • Go: EnableManagedSettings: boolPtr(true) on SessionConfig / ResumeSessionConfig
  • Rust: .with_enable_managed_settings(true) builder on SessionConfig
  • Java: sessionConfig.setEnableManagedSettings(true) on SessionConfig

Fix: deterministic tool schema serialization in Rust SDK ⚠️ Breaking change

The Rust SDK previously used HashMap for Tool.parameters and mcp_servers fields, causing random key ordering in serialized JSON each process startup. This busted the model provider's prompt cache on the system+tools prefix, increasing cost and latency. HashMap is now replaced with IndexMap for these model-visible maps. (#1931)

IndexMap mirrors HashMap's API and is re-exported as github_copilot_sdk::IndexMap — migration is mechanical:

// Before: use std::collections::HashMap;
// After:
use github_copilot_sdk::IndexMap; // same API, deterministic iteration order

Affected public types: Tool.parameters, mcp_servers on SessionConfig / ResumeSessionConfig / CustomAgentConfig, and the tool_parameters / try_tool_parameters return types.

New contributors

  • @agoncal made their first contribution in #1951

Generated by Release Changelog Generator · sonnet46 987.8K

rust/v1.0.7-preview.0

rust/v1.0.7-preview.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 09 Jul 15:36
611d9bd

What's Changed

  • Edburns/1810 java tool ergonomics tool as lambda seeking review by @edburns in #1895
  • test(java): add arity 0 and arity 2 coverage to ErgonomicToolDefinitionIT by @edburns in #1897
  • Update @github/copilot to 1.0.69-1 by @github-actions[bot] in #1908
  • Fix telemetry forwarding handshake CI failures by @stephentoub in #1909
  • Improve E2E coverage across SDKs by @stephentoub in #1906
  • dotnet: in-process FFI runtime hosting (InProcess transport) by @SteveSandersonMS in #1901
  • Update @github/copilot to 1.0.69-2 by @github-actions[bot] in #1914
  • Remove P2 installation, use simple retry instead by @edburns in #1916
  • Restrict block-remove-before-merge check to PRs targeting main by @edburns in #1898
  • docs(java): add ADR-007 native runtime bundling strategy by @edburns in #1923
  • Honor inprocess transport in C# E2E harness and fix in-process auth by @SteveSandersonMS in #1920
  • Simplify in-process env isolation to snapshot/restore by @SteveSandersonMS in #1929
  • fix(python): preserve original JSON keys in Data shim round-trips by @syf2211 in #1900
  • C#: make per-client Environment coherent per transport by @SteveSandersonMS in #1930
  • Make .NET CopilotClient.DisposeAsync graceful by @SteveSandersonMS in #1932
  • Update @github/copilot to 1.0.69-3 by @github-actions[bot] in #1940
  • Surface Pydantic ValidationError to LLM in tool arg validation by @idryzhov in #1862
  • Update @github/copilot to 1.0.69 by @github-actions[bot] in #1941
  • Unify publish.yml to include Java via workflow_call by @edburns with @Copilot in #1938
  • Forward enableManagedSettings in session.create (all SDKs) by @devm33 in #1925
  • Make tool schema & mcp_servers serialization deterministic (HashMap -> IndexMap) by @stephentoub in #1931
  • Adding Intellij IDEA directories to the .gitignore by @agoncal in #1951
  • GPT-4.1 is not available anymore by @agoncal in #1952
  • Update @github/copilot to 1.0.70-0 by @github-actions[bot] in #1954

New Contributors

Full Changelog: rust/v1.0.6-preview.1...rust/v1.0.7-preview.0

GitHub Copilot SDK for Java 1.0.7-preview.0

Choose a tag to compare

Installation

⚠️ Artifact versioning plan: Releases of this implementation track releases of the reference implementation. For each release of the reference implementation, there may follow a corresponding release of this implementation with the same number as the reference implementation. Release identifiers of the reference implementation are in the form vMaj.Min.Micro. For example v0.1.32. The corresponding maven version for the release will be Maj.Min.Micro-java.N, where Maj, Min and Micro are the corresponding numbers for the reference implementation release, and N is a monotonically increasing sequence number starting with 0 for each release. See the corresponding architectural decision record for more information in the docs/adr directory of the source code.

📦 [View on Maven Central]((central.sonatype.com/redacted)

📖 [Documentation]((github.github.io/redacted) · [Javadoc]((github.github.io/redacted)

Maven

<dependency>
    <groupId>com.github</groupId>
    <artifactId>copilot-sdk-java</artifactId>
    <version>1.0.7-preview.0</version>
</dependency>

Gradle (Kotlin DSL)

implementation("com.github:copilot-sdk-java:1.0.7-preview.0")

Gradle (Groovy DSL)

implementation 'com.github:copilot-sdk-java:1.0.7-preview.0'

Feature: opt in to enterprise managed-settings enforcement

SessionConfig and ResumeSessionConfig now support an enableManagedSettings flag. When set to true, the runtime enforces organizational bypass-permissions policies at session creation using the session's GitHub token. (#1925)

var session = client.createSession(
    new SessionConfig().setEnableManagedSettings(true)
).get();

Generated by Release Changelog Generator · sonnet46 2.3M

v1.0.6

Choose a tag to compare

@github-actions github-actions released this 08 Jul 16:02
7e29004

What's Changed

  • Stream Anthropic /messages responses in E2E fake handlers by @stephentoub in #1868
  • [changelog] Add changelog for java/v1.0.5-01 by @github-actions[bot] in #1871
  • [changelog] Add changelog for v1.0.5 by @github-actions[bot] in #1869
  • Add experimental GitHub telemetry redirection across all SDKs by @MackinnonBuck in #1835
  • Update @github/copilot to 1.0.68 by @github-actions[bot] in #1886
  • Update Java JaCoCo coverage badge by @github-actions[bot] in #1833
  • Remove Java JaCoCo badge auto-update pipeline by @brunoborges with @Copilot in #1826
  • Update @github/copilot to 1.0.69-0 by @github-actions[bot] in #1892
  • Edburns/1810 java tool ergonomics tool as lambda seeking review by @edburns in #1895
  • test(java): add arity 0 and arity 2 coverage to ErgonomicToolDefinitionIT by @edburns in #1897
  • Update @github/copilot to 1.0.69-1 by @github-actions[bot] in #1908
  • Fix telemetry forwarding handshake CI failures by @stephentoub in #1909
  • Improve E2E coverage across SDKs by @stephentoub in #1906
  • dotnet: in-process FFI runtime hosting (InProcess transport) by @SteveSandersonMS in #1901
  • Update @github/copilot to 1.0.69-2 by @github-actions[bot] in #1914
  • Remove P2 installation, use simple retry instead by @edburns in #1916
  • Restrict block-remove-before-merge check to PRs targeting main by @edburns in #1898
  • docs(java): add ADR-007 native runtime bundling strategy by @edburns in #1923
  • Honor inprocess transport in C# E2E harness and fix in-process auth by @SteveSandersonMS in #1920
  • Simplify in-process env isolation to snapshot/restore by @SteveSandersonMS in #1929
  • fix(python): preserve original JSON keys in Data shim round-trips by @syf2211 in #1900
  • C#: make per-client Environment coherent per transport by @SteveSandersonMS in #1930
  • Make .NET CopilotClient.DisposeAsync graceful by @SteveSandersonMS in #1932
  • Update @github/copilot to 1.0.69-3 by @github-actions[bot] in #1940
  • Surface Pydantic ValidationError to LLM in tool arg validation by @idryzhov in #1862
  • Update @github/copilot to 1.0.69 by @github-actions[bot] in #1941

New Contributors

Full Changelog: v1.0.5...v1.0.6

rust/v1.0.6

Choose a tag to compare

@github-actions github-actions released this 08 Jul 16:02
7e29004

What's Changed

  • Edburns/1810 java tool ergonomics tool as lambda seeking review by @edburns in #1895
  • test(java): add arity 0 and arity 2 coverage to ErgonomicToolDefinitionIT by @edburns in #1897
  • Update @github/copilot to 1.0.69-1 by @github-actions[bot] in #1908
  • Fix telemetry forwarding handshake CI failures by @stephentoub in #1909
  • Improve E2E coverage across SDKs by @stephentoub in #1906
  • dotnet: in-process FFI runtime hosting (InProcess transport) by @SteveSandersonMS in #1901
  • Update @github/copilot to 1.0.69-2 by @github-actions[bot] in #1914
  • Remove P2 installation, use simple retry instead by @edburns in #1916
  • Restrict block-remove-before-merge check to PRs targeting main by @edburns in #1898
  • docs(java): add ADR-007 native runtime bundling strategy by @edburns in #1923
  • Honor inprocess transport in C# E2E harness and fix in-process auth by @SteveSandersonMS in #1920
  • Simplify in-process env isolation to snapshot/restore by @SteveSandersonMS in #1929
  • fix(python): preserve original JSON keys in Data shim round-trips by @syf2211 in #1900
  • C#: make per-client Environment coherent per transport by @SteveSandersonMS in #1930
  • Make .NET CopilotClient.DisposeAsync graceful by @SteveSandersonMS in #1932
  • Update @github/copilot to 1.0.69-3 by @github-actions[bot] in #1940
  • Surface Pydantic ValidationError to LLM in tool arg validation by @idryzhov in #1862
  • Update @github/copilot to 1.0.69 by @github-actions[bot] in #1941

New Contributors

Full Changelog: rust/v1.0.6-preview.1...rust/v1.0.6

GitHub Copilot SDK for Java 1.0.6

Choose a tag to compare

@github-actions github-actions released this 08 Jul 16:06

Installation

⚠️ Artifact versioning plan: Releases of this implementation track releases of the reference implementation. For each release of the reference implementation, there may follow a corresponding release of this implementation with the same number as the reference implementation. Release identifiers of the reference implementation are in the form vMaj.Min.Micro. For example v0.1.32. The corresponding maven version for the release will be Maj.Min.Micro-java.N, where Maj, Min and Micro are the corresponding numbers for the reference implementation release, and N is a monotonically increasing sequence number starting with 0 for each release. See the corresponding architectural decision record for more information in the docs/adr directory of the source code.

📦 [View on Maven Central]((central.sonatype.com/redacted)

📖 [Documentation]((github.github.io/redacted) · [Javadoc]((github.github.io/redacted)

Maven

<dependency>
    <groupId>com.github</groupId>
    <artifactId>copilot-sdk-java</artifactId>
    <version>1.0.6</version>
</dependency>

Gradle (Kotlin DSL)

implementation("com.github:copilot-sdk-java:1.0.6")

Gradle (Groovy DSL)

implementation 'com.github:copilot-sdk-java:1.0.6'

Feature: inline lambda tool definitions

Developers can now define tools directly at the call site using ToolDefinition.from(...) with typed lambda handlers and Param.of(...) parameter metadata — no separate annotated class required. Async variants (fromAsync) and ToolInvocation context injection (fromWithToolInvocation) are also available. (#1895)

ToolDefinition greet = ToolDefinition.from(
    "greet", "Greets a user by name",
    Param.of(String.class, "name", "The user's name"),
    name -> "Hello, " + name + "!");

Other changes

  • bugfix: [Java] preserve explicit null map values in JSON-RPC params so user setting clears reach the CLI (#1906)
  • feature: [Java] add experimental onGitHubTelemetry callback on CopilotClientOptions for receiving forwarded GitHub telemetry events (#1835)

Generated by Release Changelog Generator · sonnet46 2.5M

v1.0.6-preview.1

v1.0.6-preview.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 02 Jul 15:31
b0c7706

Feature: experimental context attribution APIs

Two new experimental methods on session.metadata provide per-source token attribution for the session's context window. (#1886)

getContextAttribution() returns a flat list of attribution entries — skills, subagents, MCP servers, tools, plugins — each with a token count and hierarchical nesting via parentId. getContextHeaviestMessages() returns the largest individual messages currently in context, most-expensive first.

const attr = await session.metadata.getContextAttribution();
// attr.contextAttribution.entries → [{ kind: 'skill', id: 'skill:tmux', tokens: 1234, ... }, ...]
const heavy = await session.metadata.getContextHeaviestMessages({ limit: 10 });
var attr = await session.Metadata.GetContextAttributionAsync();
var heavy = await session.Metadata.GetContextHeaviestMessagesAsync(limit: 10);

Other changes

  • feature: SlashCommandInput now supports an optional choices field, allowing slash commands to declare selectable literal options with human-facing descriptions (#1886)
  • feature: ExternalToolTextResultForLlm now supports toolReferences for returning deferred tool names to the model from a tool-search override (#1886)

Generated by Release Changelog Generator · claude-sonnet-4.6

Generated by Release Changelog Generator · sonnet46 1.8M