From 79e1bf2f37c32f770161e17b7572ca01f36ae608 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 25 Jun 2026 03:02:35 +0000 Subject: [PATCH] Add changelog for java/v1.0.4 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- CHANGELOG.md | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 82cfa98399..06461a734a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,62 @@ All notable changes to the Copilot SDK are documented in this file. This changelog is automatically generated by an AI agent when stable releases are published. See [GitHub Releases](https://github.com/github/copilot-sdk/releases) for the full list. +## [java/v1.0.4](https://github.com/github/copilot-sdk/releases/tag/java/v1.0.4) (2026-06-25) + +### Feature: HTTP request callback support + +Register a `CopilotRequestHandler` on the client to intercept every outbound LLM inference HTTP or WebSocket request — for both BYOK and CAPI — and mutate, replace, or fully forward it. Useful for logging, header injection, model substitution, or custom routing. ([#1689](https://github.com/github/copilot-sdk/pull/1689), [#1775](https://github.com/github/copilot-sdk/pull/1775), [#1784](https://github.com/github/copilot-sdk/pull/1784)) + +```java +final class MyHandler extends CopilotRequestHandler { + @Override + protected HttpResponse sendRequest(HttpRequest request, CopilotRequestContext ctx) throws Exception { + HttpRequest mutated = HttpRequest.newBuilder(request, (n, v) -> true) + .header("X-Debug-Session", ctx.sessionId() == null ? "none" : ctx.sessionId()) + .build(); + return super.sendRequest(mutated, ctx); + } +} + +CopilotClient client = new CopilotClient( + new CopilotClientOptions().setRequestHandler(new MyHandler())); +``` + +### Feature: `getBearerToken` callback for BYOK providers (Managed Identity) + +BYOK provider configs now accept a `getBearerToken` callback so the SDK consumer can resolve bearer tokens (e.g. Azure Managed Identity) on demand. The SDK takes zero Azure SDK dependency — the consumer supplies the callback using any identity library. ([#1748](https://github.com/github/copilot-sdk/pull/1748)) + +```java +var provider = new ProviderConfig() + .setType("openai") + .setBaseUrl(baseUrl) + .setGetBearerToken(args -> cred.getToken(ctx).map(AccessToken::getToken).toFuture()); +``` + +### Feature: experimental multi-provider BYOK registry + +Register multiple named providers and models on a single session via `NamedProviderConfig` and `ProviderModelConfig`. Custom agents can reference provider-qualified model IDs such as `"alpha/sonnet"`. This feature is experimental. ([#1718](https://github.com/github/copilot-sdk/pull/1718)) + +### Feature: `preamble` system message section and `preserve` action + +Two new customization options for system message sections. `SystemMessageSections.PREAMBLE` targets only the identity preamble without affecting its sibling sub-sections (`identity` and `tool_instructions` are now documented as section groups). The new `preserve` action protects an individually-addressable section from a group-level `remove`. ([#1713](https://github.com/github/copilot-sdk/pull/1713)) + +### Other changes + +- feature: add optional `memory` configuration (`MemoryConfiguration`) to session create and resume ([#1617](https://github.com/github/copilot-sdk/pull/1617)) +- feature: `defer` parameter on tool definitions controls eager vs. lazy tool loading (`"auto"` or `"never"`) ([#1632](https://github.com/github/copilot-sdk/pull/1632)) +- feature: `otlpProtocol` telemetry option for configuring OTLP export transport (`"http/json"` or `"http/protobuf"`) ([#1648](https://github.com/github/copilot-sdk/pull/1648)) +- feature: `ModelBilling.tokenPrices` surfaced on public SDK types, exposing per-tier pricing and context window limits ([#1633](https://github.com/github/copilot-sdk/pull/1633)) +- feature: `CapiSessionOptions.enableWebSocketResponses` and `ProviderConfig.transport` for WebSocket transport control on session create/resume ([#1711](https://github.com/github/copilot-sdk/pull/1711)) +- improvement: call `runtime.shutdown` during client stop for deterministic OTEL telemetry flush before process cleanup ([#1667](https://github.com/github/copilot-sdk/pull/1667)) +- improvement: rename `SystemPromptSections` → `SystemMessageSections` for cross-SDK consistency; old class deprecated with `forRemoval=true` ([#1683](https://github.com/github/copilot-sdk/pull/1683)) + +### New contributors + +- @almaleksia made their first contribution in [#1632](https://github.com/github/copilot-sdk/pull/1632) +- @dereklegenzoff made their first contribution in [#1711](https://github.com/github/copilot-sdk/pull/1711) +- @ellismg made their first contribution in [#1750](https://github.com/github/copilot-sdk/pull/1750) + ## [v1.0.2](https://github.com/github/copilot-sdk/releases/tag/v1.0.2) (2026-06-18) ### Feature: opt-in memory for sessions