Skip to content

Releases: github/copilot-sdk

v1.0.8

Choose a tag to compare

@github-actions github-actions released this 22 Jul 23:17
a54b0b5

Feature: per-agent reasoning effort

Custom sub-agents can now have their own reasoning effort level, independent of the parent session. When reasoningEffort is omitted on a custom agent, the backend applies its own default — the session-level setting is not inherited. (#1981)

const session = await client.createSession({
    customAgents: [{
        name: "planner",
        prompt: "You plan tasks.",
        reasoningEffort: "high",
    }],
});
var session = await client.CreateSessionAsync(new SessionOptions {
    CustomAgents = [new CustomAgentConfig {
        Name = "planner",
        Prompt = "You plan tasks.",
        ReasoningEffort = ReasoningEffort.High,
    }],
});

Other changes

  • improvement: strongly type expAssignments session config field across all SDKs (#2033)
  • bugfix: [Rust] fix ask_user starving the per-session event loop (#2034)

New contributors

  • @lukewar made their first contribution in #1880

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • awmgmcpg

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "awmgmcpg"

See Network Configuration for more information.

Generated by Release Changelog Generator · 39.1 AIC · ⌖ 5.54 AIC · ⊞ 7.2K

rust/v1.0.8

Choose a tag to compare

@github-actions github-actions released this 22 Jul 23:17
a54b0b5

What's Changed

Full Changelog: rust/v1.0.8-preview.0...rust/v1.0.8

GitHub Copilot SDK for Java 1.0.8

Choose a tag to compare

@github-actions github-actions released this 22 Jul 23:16

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.8</version>
</dependency>

Gradle (Kotlin DSL)

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

Gradle (Groovy DSL)

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

Feature: per-agent reasoning effort

CustomAgentConfig now accepts an optional reasoningEffort field that controls the reasoning intensity for a specific sub-agent. Omitting it inherits the session-level effort; omitting it at both levels leaves the choice to the backend. (#1981)

CustomAgentConfig agent = new CustomAgentConfig()
    .setName("coder")
    .setReasoningEffort("high");

Other changes

  • improvement: [Java] strongly type the internal expAssignments session-config field with CopilotExpAssignmentResponse to match the runtime wire contract (#2033)

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • awmgmcpg

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "awmgmcpg"

See Network Configuration for more information.

Generated by Release Changelog Generator · 44.4 AIC · ⌖ 5.53 AIC · ⊞ 7.2K

v1.0.8-preview.0

v1.0.8-preview.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Jul 16:44
1f5516e

Feature: custom agent reasoning effort

You can now set a per-agent reasoning effort level on custom agent configurations. When omitted, the backend chooses its default; an explicit value overrides the backend default for that specific agent without affecting the parent session. (#1981)

const config: CustomAgentConfig = {
  name: "my-agent",
  prompt: "...",
  reasoningEffort: "high",
};
var config = new CustomAgentConfig {
    Name = "my-agent",
    Prompt = "...",
    ReasoningEffort = "high",
};

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • awmgmcpg

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "awmgmcpg"

See Network Configuration for more information.

Generated by Release Changelog Generator · 53.4 AIC · ⌖ 4.74 AIC · ⊞ 7.3K

rust/v1.0.8-preview.0

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

Choose a tag to compare

@github-actions github-actions released this 21 Jul 16:44
1f5516e

What's Changed

  • Remove HMAC key authentication method from public SDK auth docs by @sunbrye in #1994
  • Add opaque metadata passthrough to SDK tool definitions by @belaltaher8 in #1864
  • Avoid Windows in-process test teardown deadlock by @stephentoub in #1997
  • Update @github/copilot to 1.0.71 by @github-actions[bot] in #1998
  • Enable built-in issue intent safe outputs on issue-triage by @lukewar in #1880
  • Harden replay-proxy "Available tools" normalization against built-in tool set changes by @stephentoub in #2013
  • Add custom agent reasoning effort across SDKs by @roji in #1981
  • [changelog] Add changelog for v1.0.7 by @github-actions[bot] in #2002
  • Bump tsx from 4.22.4 to 4.23.1 in /java/scripts/codegen in the java-codegen-deps group across 1 directory by @dependabot[bot] in #1947
  • Update SDK E2E tests for canonical exit_plan_mode action order by @stephentoub in #2023
  • Add .NET BYOK E2E coverage by @roji in #2010
  • Harden MCP OAuth cancel E2E tests against create/interest race by @stephentoub in #2029
  • Mirror Node SDK releases to internal feed by @MackinnonBuck in #2025
  • Strongly type expAssignments session config across all SDKs by @devm33 in #2033
  • Update @github/copilot to 1.0.72 by @github-actions[bot] in #2035
  • Report authoritative cwd in recordContextChange E2E tests by @ellismg in #2036

New Contributors

Full Changelog: rust/v1.0.7-preview.3...rust/v1.0.8-preview.0

GitHub Copilot SDK for Java 1.0.8-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.8-preview.0</version>
</dependency>

Gradle (Kotlin DSL)

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

Gradle (Groovy DSL)

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

Feature: per-agent reasoning effort

You can now set a reasoningEffort override on individual custom agents within a session. When omitted, no per-agent override is sent and the backend chooses its default. (#1981)

CustomAgentConfig agent = new CustomAgentConfig()
    .setName("my-agent")
    .setModel("claude-sonnet-4-5")
    .setReasoningEffort("high");

Other changes

  • improvement: strongly type internal expAssignments session config field with CopilotExpAssignmentResponse (#2033)

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • awmgmcpg

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "awmgmcpg"

See Network Configuration for more information.

Generated by Release Changelog Generator · 31.3 AIC · ⌖ 4.97 AIC · ⊞ 7.3K

v1.0.7

Choose a tag to compare

@github-actions github-actions released this 16 Jul 15:23
d95cfac

Feature: in-process (FFI) transport

The SDK can now host the Copilot runtime in-process by loading the native runtime library via its C ABI (FFI), eliminating the overhead of spawning a child process. This experimental transport is available for Node.js, Rust, Python, and Go. (#1953, #1915, #1975, #1976)

const client = new CopilotClient({ connection: RuntimeConnection.forInProcess() });
var client = new CopilotClient(new CopilotClientOptions { Connection = RuntimeConnection.ForInProcess() });

Feature: tool search configuration

A new toolSearch session option controls how the SDK defers tools when the total tool count exceeds a threshold. When enabled (the default), excess MCP and external tools are surfaced on demand through the built-in tool_search_tool rather than pre-loaded into every prompt. Tool results can also include toolReferences to link cited sources back to the tool that produced them. (#1933)

const session = await client.createSession({
    toolSearch: { defer: "auto" },
});
var session = await client.CreateSessionAsync(new SessionConfig
{
    ToolSearch = new ToolSearchConfig { Defer = "auto" },
});

Feature: opaque metadata passthrough on tool definitions

Tool definitions now accept an optional metadata bag that is forwarded verbatim in session.create and session.resume RPC calls. This lets hosts attach namespaced, implementation-specific metadata to tools without expanding the typed public contract; unknown keys are preserved and round-tripped untouched. (#1864)

session.defineTool("my-tool", { metadata: { "myapp:priority": 1 } }, handler);
session.DefineTool("my-tool", new ToolOptions { Metadata = new() { ["myapp:priority"] = 1 } }, handler);

Other changes

  • feature: [All SDKs] add canvasProvider field to session create/resume config so hosts can supply a stable canvas-provider identity that survives cold resume (#1847)
  • feature: [All SDKs] forward enableManagedSettings flag in session create/resume for enterprise managed-settings enforcement (#1925)
  • feature: [All SDKs] propagate agentId, parentAgentId, and interactionType from LLM inference start frames into request-handler contexts (#1949)
  • improvement: [Rust] make tool schema and MCP server serialization deterministic by replacing HashMap with IndexMap (#1931)
  • improvement: [Rust] use native-tls for the build-time CLI download (#1964)
  • bugfix: [.NET] avoid Windows in-process test teardown deadlock (#1997)

New contributors

  • @agoncal made their first contribution in #1951
  • @Shivam60 made their first contribution in #1964
  • @rinceyuan made their first contribution in #1978
  • @belaltaher8 made their first contribution in #1864

Full Changelog: v1.0.6...v1.0.7

Generated by Release Changelog Generator · sonnet46 1.2M

rust/v1.0.7

Choose a tag to compare

@github-actions github-actions released this 16 Jul 15:23
d95cfac

What's Changed

  • Remove HMAC key authentication method from public SDK auth docs by @sunbrye in #1994
  • Add opaque metadata passthrough to SDK tool definitions by @belaltaher8 in #1864
  • Avoid Windows in-process test teardown deadlock by @stephentoub in #1997
  • Update @github/copilot to 1.0.71 by @github-actions[bot] in #1998

New Contributors

Full Changelog: rust/v1.0.7-preview.3...rust/v1.0.7

GitHub Copilot SDK for Java 1.0.7

Choose a tag to compare

@github-actions github-actions released this 16 Jul 15:22

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</version>
</dependency>

Gradle (Kotlin DSL)

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

Gradle (Groovy DSL)

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

Feature: opaque metadata passthrough for tool definitions

Hosts can now attach namespaced, opaque metadata to tool definitions and have it forwarded verbatim over the session.create/resumeSession wire call. Use ToolDefinition.createWithMetadata(...) or the fluent .metadata(Map) builder, or express shallow flag maps via @CopilotTool.MetadataEntry annotations. (#1864)

ToolDefinition tool = ToolDefinition.create("search", "Search files", schema, handler)
    .metadata(Map.of("com.example:featureFlags", Map.of("streamResults", true)));

Feature: tool search configuration support

SessionConfig and ResumeSessionConfig now accept a ToolSearchConfig that enables server-side tool search and controls the deferral threshold. Tool results can also carry back toolReferences indicating which tools were consulted during search. (#1933)

SessionConfig config = new SessionConfig()
    .setToolSearch(new ToolSearchConfig().setEnabled(true).setDeferThreshold(5));

Other changes

  • feature: [Java] forward enableManagedSettings on SessionConfig/ResumeSessionConfig to opt into enterprise managed-settings enforcement at session bootstrap (#1925)
  • feature: [Java] expose agentId(), parentAgentId(), and interactionType() on CopilotRequestContext in request-handler callbacks (#1949)

New contributors

  • @belaltaher8 made their first contribution in #1864

Generated by Release Changelog Generator · sonnet46 1.3M

v1.0.7-preview.3

v1.0.7-preview.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 15 Jul 03:07
9744fd5

Feature: tool search configuration

Tool search lets the model discover tools on demand instead of loading every tool definition up front. When the active tool count exceeds the deferral threshold, MCP and external tools are marked as deferred and surfaced through the built-in tool_search_tool. This release adds a toolSearch option to CreateSession/ResumeSession so applications can enable/disable the feature and tune the threshold. (#1933)

const session = await client.createSession({
  toolSearch: { enabled: true, deferThreshold: 20 },
});
var session = await client.CreateSessionAsync(new SessionConfig
{
    ToolSearch = new ToolSearchConfig { Enabled = true, DeferThreshold = 20 },
});

Tool results can now return toolReferences — a list of tool names chosen by a tool-search override — to narrow the active tool set before the next model turn.

Feature: in-process (FFI) transport for Python and Go

The Python and Go SDKs now support loading the Copilot runtime as a native shared library in-process, matching the existing .NET, TypeScript, and Rust implementations. This avoids spawning a child process and communicates over the runtime's C ABI instead of stdio or TCP. (#1975, #1976)

Python — experimental, no new dependencies (uses stdlib ctypes):

from copilot import CopilotClient, RuntimeConnection
client = CopilotClient(connection=RuntimeConnection.for_inprocess())

Go — requires the copilot_inprocess build tag:

// build with: go build -tags copilot_inprocess
client, _ := sdk.NewClient(&sdk.ClientOptions{
    Connection: &sdk.InProcessConnection{},
})

The SDK selects and provisions the native runtime automatically. Per-client Env, WorkingDirectory, and Telemetry settings are not supported with in-process transport (they cannot be isolated in a shared host process). Set COPILOT_SDK_DEFAULT_CONNECTION=inprocess to use in-process transport by default across your application.

New contributors

  • @rinceyuan made their first contribution in #1978

Generated by Release Changelog Generator · sonnet46 762.9K