Skip to content

Releases: github/copilot-sdk

v1.0.1

10 Jun 16:55
f2e8469

Choose a tag to compare

Feature: @CopilotExperimental compile-time gate for Java SDK

The Java SDK now ships a @CopilotExperimental annotation and a JSR 269 annotation processor that causes compilation to fail when experimental SDK APIs are referenced without opting in. Annotate a class or method with @AllowCopilotExperimental, or pass -Acopilot.experimental.allowed=true to the compiler to acknowledge the experimental status. (#1601)

// Opt in at the declaration level
`@AllowCopilotExperimental`
public class MyApp {
    // experimental SDK types and methods may be used here
}
<!-- Or opt in for the entire compilation unit via Maven -->
<compilerArgs>
    <arg>-Acopilot.experimental.allowed=true</arg>
</compilerArgs>

Other changes

  • bugfix: [Node, Python, Go, .NET, Rust] open_canvases snapshot now correctly shrinks when session.canvas.closed is emitted — previously closed canvases were never removed (#1604)
  • bugfix: [Go] generator no longer produces discriminator accessor names that collide with struct field names (#1596)
  • bugfix: [Rust] generator now scopes RPC methods that reference internal schemas as pub(crate) instead of pub (#1596)
  • improvement: [Java] generated types now propagate schema stability and deprecation metadata — experimental items gain @apiNote Javadoc and deprecated items gain @Deprecated (#1591)

Generated by Release Changelog Generator · sonnet46 1.9M

rust/v1.0.1

10 Jun 16:55
f2e8469

Choose a tag to compare

What's Changed

  • De-flake builtin_tools E2E tests with a longer send timeout by @stephentoub in #1538
  • Update java README with accurate validation steps by @edburns in #1541
  • Java SDK: Update @github/copilot dependency to ^1.0.57 by @edburns in #1546
  • Edburns/remove pr 1524 test java publish update notes to point to docs by @edburns in #1543
  • java: disable ModeHandlersTest pending snapshot re-recording (#1547) by @edburns in #1548
  • Refine Go SDK pre-GA API surfaces by @qmuntal in #1549
  • Resolve Vitest security alerts by @stephentoub in #1550
  • Fix MCP E2E send wait race by @stephentoub in #1556
  • Cleanup Java README.md by removing outdated sections by @brunoborges in #1558
  • Java: make it so deps are correctly updated at release by @edburns in #1560
  • Preserve Java commit authorship from standalone repo by @edburns in #1561
  • On branch edburns/1511-codeql-quality-and-security by @edburns in #1566
  • Bump the java-maven-deps group in /java with 7 updates by @dependabot[bot] in #1568
  • Normalize shell completion markers in replay proxy by @stephentoub in #1572
  • [java] Update project description and developer information by @brunoborges in #1574
  • Include Java in the @github/copilot version-bump workflow by @edburns in #1576
  • Update Java JaCoCo coverage badge by @github-actions[bot] in #1501
  • Java: Fix items from traversal of Phase 08 checklist. Rust came along for the ride for issue-triage and sdk-consistency-review. by @edburns in #1581
  • Java: adr recording decision to keep everything in one module by @edburns in #1588
  • Edburns/ghcp 1573 java ensure zod metadata shows thru by @edburns in #1591
  • java: eliminate git clone into target/ — use monorepo directly by @edburns in #1592
  • Stop compiling Java in dependency update workflow by @stephentoub in #1594
  • Fix Go and Rust generator edge cases by @stephentoub in #1596
  • Update grep replay snapshot for absolute paths by @stephentoub in #1598
  • Fix flaky SessionFs workspace metadata E2E test by @stephentoub in #1599
  • Update @github/copilot to 1.0.60 by @github-actions[bot] in #1597
  • Handle session.canvas.closed by removing from open_canvases snapshot by @jmoseley in #1604
  • Add @CopilotExperimental compile-time gate for experimental APIs by @edburns in #1601
  • Add E2E coverage for newly added RPC methods across all SDKs by @stephentoub in #1610
  • Update @github/copilot to 1.0.61 by @github-actions[bot] in #1612
  • Java codegen: clean output directory before generating to prevent orphan accumulation by @edburns in #1623

Full Changelog: rust/v1.0.0-beta.12...rust/v1.0.1

GitHub Copilot SDK for Java 1.0.1

10 Jun 18:32

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

Gradle (Kotlin DSL)

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

Gradle (Groovy DSL)

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

Feature: @CopilotExperimental compile-time gate for experimental APIs

Experimental SDK APIs are now guarded by the @CopilotExperimental annotation. Using them causes a compile error by default; opt in by annotating the consuming class or method with @AllowCopilotExperimental, or pass -Acopilot.experimental.allowed=true to the Java compiler. (#1601)

`@AllowCopilotExperimental`
public class MyHandler {
    // may use `@CopilotExperimental` APIs here
}

Feature: open-canvases snapshot on CopilotSession

CopilotSession.getOpenCanvases() now returns the live set of canvas instances open for the session, bringing the Java SDK to parity with the other SDK languages. The snapshot is seeded from the session create/resume response and kept current via session.canvas.opened and session.canvas.closed events. (#1606)

List<OpenCanvasInstance> open = session.getOpenCanvases();

Other changes

  • improvement: propagate @Deprecated and experimental @apiNote Javadoc annotations from the schema into generated Java types (#1591)

Generated by Release Changelog Generator · sonnet46 1.8M

v1.0.0

02 Jun 15:00

Choose a tag to compare

What's Changed

Read more

rust/v1.0.0

02 Jun 15:01

Choose a tag to compare

What's Changed

  • De-flake builtin_tools E2E tests with a longer send timeout by @stephentoub in #1538
  • Update java README with accurate validation steps by @edburns in #1541
  • Java SDK: Update @github/copilot dependency to ^1.0.57 by @edburns in #1546
  • Edburns/remove pr 1524 test java publish update notes to point to docs by @edburns in #1543
  • java: disable ModeHandlersTest pending snapshot re-recording (#1547) by @edburns in #1548
  • Refine Go SDK pre-GA API surfaces by @qmuntal in #1549

Full Changelog: rust/v1.0.0-beta.12...rust/v1.0.0

GitHub Copilot SDK for Java 1.0.0

02 Jun 15:04

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

📖 Documentation · Javadoc

Maven

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

Gradle (Kotlin DSL)

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

Gradle (Groovy DSL)

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

What's Changed

Full Changelog: java/v1.0.0-beta-12-java.1...java/v1.0.0

GitHub Copilot SDK for Java 1.0.0-beta-12-java.1

02 Jun 07:22

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.0-beta-12-java.1</version>
</dependency>

Gradle (Kotlin DSL)

implementation("com.github:copilot-sdk-java:1.0.0-beta-12-java.1")

Gradle (Groovy DSL)

implementation 'com.github:copilot-sdk-java:1.0.0-beta-12-java.1'

Feature: slash command responses accessible via RPC

Applications can now retrieve responses from slash commands. Previously the ability to invoke slash commands existed, but responses were not surfaced through the RPC layer. (#1520)

// Send a slash command and receive its response via the session RPC
CompletableFuture<AssistantMessage> response = session.sendMessage("/my-command args");

Feature: session.mcp.apps.callTool returns JsonNode

session.mcp.apps.callTool() previously returned CompletableFuture<Void> due to a codegen gap; it now correctly returns CompletableFuture<JsonNode>, making the tool result accessible. (#1523)

JsonNode result = session.rpc().mcp().apps().callTool(params).get();

Generated by Release Changelog Generator · ● 2.2M

v1.0.0-beta.12

01 Jun 21:26
84a0106

Choose a tag to compare

v1.0.0-beta.12 Pre-release
Pre-release

Feature: [Go] idiomatic initialism casing across the Go SDK

All Go identifiers now use idiomatic uppercase initialisms as required by Go conventions. (#1527)

⚠️ Breaking change for Go callers. Key renames include:

  • ApiAPI, RpcRPC, McpMCP, SseSSE
  • Url/UriURL/URI, IdID, TcpTCP
  • AdoADO, SdkSDK, FsFS
  • UriConnectionURIConnection, TcpConnectionTCPConnection

Feature: [Go] tri-state session boolean flags

SessionConfig.EnableConfigDiscovery, ResumeSessionConfig.EnableConfigDiscovery, and ResumeSessionConfig.ContinuePendingWork are now *bool instead of bool, allowing callers to express explicit false (opt out) vs. unset (defer to runtime default). (#1536)

⚠️ Breaking change for Go callers. Use copilot.Bool(true) / copilot.Bool(false) to set a value, or leave the field nil to defer to the runtime default.

cfg := copilot.SessionConfig{
    EnableConfigDiscovery: copilot.Bool(false), // explicitly opt out
}

Feature: [Java] slash command responses accessible via RPC

Java callers can now retrieve responses from slash commands via the RPC layer. Previously it was possible to invoke slash commands but not to receive their responses programmatically. (#1520)

Improvement: [Python/Rust] stable public namespaces for generated types

Generated types are no longer exposed under the internal generated sub-module. (#1535)

  • Python: use copilot.session_events.X and copilot.rpc.X instead of copilot.generated.*
  • Rust: use github_copilot_sdk::session_events::X and github_copilot_sdk::rpc::X instead of github_copilot_sdk::generated::*

Other changes

  • bugfix: [Go] fix session event attachment aliases (#1515)
  • bugfix: [Go] preserve empty slices and maps in JSON serialization (#1528)
  • bugfix: [Node] map suppressResumeEvent to disableResume on the wire (#1529)
  • improvement: [Java] map session.mcp.apps.callTool result to JsonNode (#1523)
  • improvement: [Python] derive __version__ from package metadata; align Node version sentinel (#1521)
  • improvement: fix GitHub brand casing across SDK public surface (#1531)

New contributors

  • @dmytrostruk made their first contribution in #1515
  • @willglas made their first contribution in #1529

Generated by Release Changelog Generator · ● 1.4M

rust/v1.0.0-beta.12

01 Jun 21:27
84a0106

Choose a tag to compare

What's Changed

  • Expose enableOnDemandInstructionDiscovery across all SDK SessionConfig types by @examon in #1323
  • Edburns/fix jacoco failure on main by @edburns in #1497
  • Update to use correct package name for generated by @edburns in #1499
  • Plumb Extension SDK Path Through Session Create And Resume by @MRayermannMSFT in #1494
  • Update Java JaCoCo coverage badge by @github-actions[bot] in #1500
  • Update @github/copilot to 1.0.56-2 by @github-actions[bot] in #1495
  • Add typed context tier support by @stephentoub in #1503
  • Add path-filtered CodeQL workflow for content-specific analysis by @Copilot in #1444
  • Fixes #1443: per-language CodeQL targeting by @edburns in #1510
  • Add reflection-based Jackson round-trip test for all generated types by @edburns in #1509
  • On branch edburns/ghcp-sp-122-java-release-improvements by @edburns in #1512
  • Edburns/ghcp sp 122 java release improvements by @edburns in #1514
  • Update @github/copilot to 1.0.56 by @github-actions[bot] in #1504
  • Fix Go session event attachment aliases by @dmytrostruk in #1515
  • Bump tar from 0.4.45 to 0.4.46 in /rust in the cargo group across 1 directory by @dependabot[bot] in #1505
  • Update @github/copilot to 1.0.57-2 by @github-actions[bot] in #1517
  • Update @github/copilot to 1.0.57-3 by @github-actions[bot] in #1519
  • docs: refresh for GA; add cloud sessions, fleet mode, multi-tenancy guides by @patniko in #1481
  • Java: Make it so slash command responses are accessible via RPC by @edburns in #1520
  • fix(python): derive version from package metadata; align Node version sentinel by @stephentoub in #1521
  • Update @github/copilot to 1.0.57-4 by @github-actions[bot] in #1522
  • Map session.mcp.apps.callTool result to JsonNode and harden mvn clean by @edburns in #1523
  • Add documentation site generation for Java SDK by @edburns in #1524
  • Use JAVA_RELEASE_GITHUB_TOKEN for site deploy trigger by @edburns in #1525
  • Consolidate Go initialism casing by @qmuntal in #1527
  • Preserve empty Go slices and maps in JSON by @qmuntal in #1528
  • Fix GitHub brand casing in SDK public surface by @stephentoub in #1531
  • Update @github/copilot to 1.0.57 by @github-actions[bot] in #1534
  • fix(nodejs): Map suppressResumeEvent to disableResume on the wire by @willglas in #1529
  • Remove 'generated' from public API in Python and Rust by @SteveSandersonMS in #1535
  • Bump vitest from 3.2.4 to 4.1.0 in /scripts/corrections in the npm_and_yarn group across 1 directory by @dependabot[bot] in #1537
  • go: preserve tri-state session flags by @qmuntal in #1536

New Contributors

Full Changelog: rust/v1.0.0-beta.10...rust/v1.0.0-beta.12

GitHub Copilot SDK for Java 1.0.0-beta-10-java.5

30 May 00:49

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)

Maven

<dependency>
    <groupId>com.github</groupId>
    <artifactId>copilot-sdk-java</artifactId>
    <version>1.0.0-beta-10-java.5</version>
</dependency>

Gradle (Kotlin DSL)

implementation("com.github:copilot-sdk-java:1.0.0-beta-10-java.5")

Gradle (Groovy DSL)

implementation 'com.github:copilot-sdk-java:1.0.0-beta-10-java.5'

Changes since java/v1.0.0-beta-10-java.4

  • improvement: add reflection-based Jackson round-trip test coverage for all generated event/type classes (#1509)
  • improvement: fix JaCoCo coverage badge script to use correct generated-types package name (#1499)
  • improvement: Java release pipeline improvements (#1514)

New contributors

  • @examon made their first contribution in #1323

Full Changelog: java/v1.0.0-beta-10-java.4...java/v1.0.0-beta-10-java.5

Generated by Release Changelog Generator · ● 2.9M