Skip to content

Releases: github/copilot-sdk

v1.0.11-preview.2

v1.0.11-preview.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 Aug 00:17
5c2dec4

Feature: rewind support across all SDKs

The Copilot runtime supports rewinding conversation history and tracked file changes. SDKs can now opt into file-change tracking via a new enableFileChangeTracking session option, and then use rewind to restore the session to an earlier checkpoint. (#2321)

// TypeScript
const session = await client.startSession({ enableFileChangeTracking: true });
const rewindPoints = await session.rpc.session.listRewindPoints();
await session.rpc.session.rewind({ rewindPointId: rewindPoints[0].id });
// C#
var session = await client.StartSessionAsync(new SessionOptions { EnableFileChangeTracking = true });
var points = await session.Rpc.Session.ListRewindPointsAsync();
await session.Rpc.Session.RewindAsync(new RewindParams { RewindPointId = points[0].Id });
# Python
session = await client.start_session(enable_file_change_tracking=True)
points = await session.rpc.session.list_rewind_points()
await session.rpc.session.rewind(rewind_point_id=points[0].id)
// Go
session, _ := client.StartSession(ctx, &sdk.SessionOptions{EnableFileChangeTracking: true})
points, _ := session.RPC.Session.ListRewindPoints(ctx)
session.RPC.Session.Rewind(ctx, &sdk.RewindParams{RewindPointId: points[0].Id})
// Java
SessionOptions options = new SessionOptions().setEnableFileChangeTracking(true);
CopilotSession session = client.startSession(options).get();
List<RewindPoint> points = session.getRpc().getSession().listRewindPoints().get();
session.getRpc().getSession().rewind(new RewindParams().setRewindPointId(points.get(0).getId())).get();
// Rust
let session = client.start_session(SessionOptions { enable_file_change_tracking: Some(true), ..Default::default() }).await?;
let points = session.rpc().session().list_rewind_points().await?;
session.rpc().session().rewind(&RewindParams { rewind_point_id: points[0].id.clone() }).await?;

Feature: Java in-process runtime for Linux x64

The Java SDK now supports loading the Copilot runtime as a native library (via JNA) directly in-process on Linux x64, eliminating the need for a separate CLI child process. This mirrors the in-process mode already available in .NET and Rust. The feature is marked @CopilotExperimental. (#2301)

To use it, add the native runtime classifier JAR to your Maven dependencies and configure the connection:

<dependency>
    <groupId>com.github</groupId>
    <artifactId>copilot-sdk-java-runtime</artifactId>
    <version>${copilot.version}</version>
    <classifier>linux-x64</classifier>
</dependency>
CopilotClientOptions options = new CopilotClientOptions()
    .setConnection(RuntimeConnection.forInProcess());

CopilotClient client = new CopilotClient(options);
client.start().get();

Other changes

  • improvement: [Node] agent factories surface now correctly typed — factory args/results use JsonValue, ctx.agent() forwards reasoningEffort and contextTier, and a factory body can no longer start a second top-level run (#2309)

Generated by Release Changelog Generator · sonnet46 28.7 AIC · ⌖ 7.73 AIC · ⊞ 8.1K

v1.0.10-preview.0

v1.0.10-preview.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 07 Aug 14:09
846b34b

Feature: history.clearContext and Tool.isTerminal across all SDKs

Two new capabilities are available in every SDK language:

history.clearContext clears the conversation context (keeping system and developer messages) and seeds the fresh context window with a required first user message. It can only be called from inside a tool handler with a tool call in flight. Also picks up the new session.context_cleared event. (#2129)

Tool.isTerminal lets a tool declare that a successful call ends the agent turn instead of feeding the result back to the model for another round. A failed call leaves the loop running so the model can read the error and retry. (#2129)

const session = await joinSession({
    tools: [{
        name: "clear_context",
        isTerminal: true,
        defer: "never",
        parameters: {
            type: "object",
            properties: { prompt: { type: "string" } },
            required: ["prompt"],
        },
        handler: async ({ prompt }) => {
            const { messagesCleared } = await session.rpc.history.clearContext({ prompt });
            return { textResultForLlm: `Cleared ${messagesCleared} message(s).`, resultType: "success" };
        },
    }],
});
session.DefineTool("clear_context", new ToolOptions { IsTerminal = true, Defer = DeferMode.Never }, async (params) => {
    var result = await session.Rpc.History.ClearContext(new ClearContextParams { Prompt = params.Prompt });
    return ToolResult.Success($"Cleared {result.MessagesCleared} message(s).");
});

Feature: managed permission settings at session startup

Hosts can now inject enterprise permission policy at session startup across all six SDKs. This is independent of the runtime's server-managed settings fetch path. (#2139)

const session = await createSession({
    managedSettings: {
        permissions: {
            disableBypassPermissionsMode: "disable",
            deny: ["shell"],
            allow: ["read_file"],
        },
    },
});
var session = await CopilotClient.CreateSessionAsync(new SessionOptions {
    ManagedSettings = new ManagedSettings {
        Permissions = new ManagedPermissions {
            DisableBypassPermissionsMode = "disable",
            Deny = ["shell"],
            Allow = ["read_file"],
        }
    }
});

Other changes

  • bugfix: [Java] preserve MCP permission extension data (serverName, toolName, args) in PermissionRequest.extensionData (#2276)
  • bugfix: [Rust] recover JSON-RPC frames containing unpaired UTF-16 surrogates instead of closing the connection (#2283)

New contributors

  • @Chuxel made their first contribution in #2283

Generated by Release Changelog Generator · sonnet46 19 AIC · ⌖ 5.28 AIC · ⊞ 8.6K

rust/v1.0.10-preview.0

Pre-release

Choose a tag to compare

@github-actions github-actions released this 07 Aug 14:09
846b34b

What's Changed

  • dotnet: update README attachment examples to current API (fixes #2196) by @HindzStark in #2208
  • Support reasoningEffort: max by @Dharshika-11 in #2228
  • Stop sendAndWait from emitting an unhandled rejection by @thejesh23 in #2206
  • docs: clarify working directory defaults across SDKs by @xianjianlf2 in #2201
  • Speed up Rust E2E tests with shared clients by @SteveSandersonMS in #2250
  • build(deps-dev): bump ip-address from 10.2.0 to 10.4.0 in /test/harness by @dependabot[bot] in #2245
  • build(deps-dev): bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in #2244
  • build(deps-dev): bump postcss from 8.5.15 to 8.5.25 in /nodejs by @dependabot[bot] in #2243
  • build(deps-dev): bump fast-uri from 3.1.4 to 3.1.5 in /test/harness by @dependabot[bot] in #2242
  • docs: move SDK development guidance to local READMEs by @SteveSandersonMS in #2253
  • build(deps-dev): bump postcss from 8.5.15 to 8.5.25 in /test/harness by @dependabot[bot] in #2252
  • docs: replace removed session.idle.backgroundTasks field with the current aborted field by @examon in #2232
  • Parallelize Python and Windows .NET CI tests by @SteveSandersonMS in #2251
  • Fix active Node and Rust replay E2E flakes by @roji in #2186
  • Add userPromptTransformed hook to all SDKs by @SteveSandersonMS in #2254
  • fix: Java README version stuck at 1.0.5-01; release sed regex can't match numeric qualifiers by @rinceyuan in #2226
  • docs: update Go and Rust API reference links by @scottaddie in #2266
  • docs: add citations guide by @patniko in #2267
  • sdk: Expose disabled MCP servers across languages by @connor4312 in #2260
  • docs: correct the Python Customize Mode section IDs and action list by @examon in #2264
  • Add history.clearContext and Tool.isTerminal across all SDKs by @examon in #2129
  • fix(java): preserve MCP permission extension data by @rinceyuan in #2276
  • Update @github/copilot to 1.0.79-5 by @github-actions[bot] in #2282
  • Update @github/copilot to 1.0.79-6 by @github-actions[bot] in #2287
  • SDK, Runtime: Recover JSON-RPC frames containing unpaired UTF-16 surrogates by @Chuxel in #2283
  • Add managed permission settings to session startup by @joshspicer in #2139

New Contributors

Full Changelog: rust/v1.0.9-preview.3...rust/v1.0.10-preview.0

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

Gradle (Kotlin DSL)

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

Gradle (Groovy DSL)

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

Feature: managed permission settings at session startup

Applications can now supply host-managed permission settings at session startup via SessionConfig.setManagedSettings(). The runtime validates and composes this policy with self-fetched and device policy. Re-supply on resume as it is not persisted. (#2139)

SessionConfig config = new SessionConfig()
    .setManagedSettings(new ManagedSettings()
        .setPermissions(new ManagedSettingsPermissions()
            .setFilesystem(PermissionLevel.READ_WRITE)));

Feature: userPromptTransformed hook

A new onUserPromptTransformed hook on SessionHooks lets applications observe (and optionally modify) the prompt text after the runtime transforms it. (#2254)

session.getHooks().setOnUserPromptTransformed((input, ctx) -> {
    System.out.println("Transformed prompt: " + input.getPrompt());
    return CompletableFuture.completedFuture(null);
});

Feature: disable specific MCP servers per session

SessionConfig.setDisabledMcpServers() accepts a list of exact MCP server names to disable for the session. Disabled servers are not started or authenticated on create or cold resume. (#2260)

SessionConfig config = new SessionConfig()
    .setDisabledMcpServers(List.of("my-mcp-server"));

Feature: Tool.isTerminal and history.clearContext

The @CopilotTool annotation gains an isTerminal flag — when true, a successful call to that tool ends the agent turn immediately. The session also gains clearContext() to reset the conversation history. (#2129)

`@CopilotTool`(name = "done", description = "Signal task complete", isTerminal = true)
public void done() { }

Other changes

  • feature: support reasoningEffort: "max" in SessionConfig and ResumeSessionConfig (#2228)
  • bugfix: preserve MCP permission extension data in PermissionRequest serialization (#2276)

Generated by Release Changelog Generator · sonnet46 52.6 AIC · ⌖ 7.17 AIC · ⊞ 8.6K

GitHub Copilot SDK for Java 1.0.9

Choose a tag to compare

@github-actions github-actions released this 06 Aug 00:45

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

Gradle (Kotlin DSL)

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

Gradle (Groovy DSL)

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

What's Changed

New Contributors

Full Changelog: java/v1.0.9-preview.3...java/v1.0.9

v1.0.9

Choose a tag to compare

@github-actions github-actions released this 06 Aug 00:46
cc8c7f2

What's Changed

  • java: enforce non-blank @CopilotToolParam description at compile time by @rinceyuan in #1980
  • java: add schema attribute to @CopilotToolParam and lambda for custom type schema override by @edburns in #2069
  • docs: fix non-compiling Rust session-limits example by @examon in #2082
  • Fix the plan-mode exit action type name in the fleet mode guide by @examon in #2090
  • Fix the Node.js tool-definition example in the Microsoft Agent Framework guide by @examon in #2088
  • Fix Go telemetry examples: NewClient takes *ClientOptions and returns one value by @examon in #2086
  • Fix active .NET and Python CI failures by @SteveSandersonMS in #2093
  • docs: correct the delta field the MAF streaming example reads by @examon in #2105
  • Fix the Python list_sessions docstring example to use session_id by @examon in #2099
  • docs: rename Azure AI Foundry to Microsoft Foundry in BYOK guide by @scottaddie in #2097
  • Bump fast-uri from 3.1.2 to 3.1.4 in /test/harness by @dependabot[bot] in #2094
  • Bump brace-expansion from 1.1.14 to 1.1.16 in /nodejs by @dependabot[bot] in #2095
  • Bump hono from 4.12.23 to 4.12.32 in /test/harness by @dependabot[bot] in #2096
  • docs: add missing assistant.usage event fields to streaming-events reference by @rinceyuan in #2074
  • docs: document complete sub-agent event data fields by @rinceyuan in #2072
  • Refresh agentic workflows to gh-aw v0.83.1; issue-intent on issue-triage by @alondahari in #2063
  • Add StartupTimings per-phase breakdown to Client::start by @jmoseley in #2066
  • docs: fix inaccurate SDK/runtime claims found in docs audit by @patniko in #2064
  • Fix flaky .NET ask-user E2E tests by @SteveSandersonMS in #2107
  • sdk: Expose AgentStop session hook across languages by @belaltaher8 in #2054
  • ci: add stable required SDK checks by @SteveSandersonMS in #2108
  • Fix flaky .NET session resume E2E test by @SteveSandersonMS in #2109
  • dotnet: release oversized JSON-RPC receive buffers by @adirh3 in #2047
  • Version-independent SDK test and codegen fixes split from the 1.0.76-0 bump by @stephentoub in #2110
  • docs: add server-to-server token guide by @patniko in #2005
  • Update @github/copilot to 1.0.76-5 by @github-actions[bot] in #2140
  • docs: correct the Python and Go event data model tip by @examon in #2160
  • fix(python): select the current platform's CLI package in the E2E harness by @nytron88 in #2117
  • docs: fix non-compiling Rust external-transport example by @examon in #2142
  • Rebrand Azure AI Foundry references to Microsoft Foundry by @scottaddie in #2126
  • Fix .NET in-process E2E transport coverage by @roji in #1986
  • Document MCP tool filter naming across SDKs by @syedkazmi14 in #2101
  • docs: fix EnableConfigDiscovery summary to accurately describe agent discovery behavior by @smz202000 in #2019
  • build(deps): bump the java-maven-deps group across 1 directory with 6 updates by @dependabot[bot] in #2119
  • Bump com.fasterxml.jackson.core:jackson-databind from 2.22.0 to 2.22.1 in /java by @dependabot[bot] in #2017
  • Add the Agent Factories authoring surface by @MRayermannMSFT in #2114
  • Fix CAPI reasoning E2E fixtures by @ellismg in #2181
  • docs: correct the remote sessions client option name by @examon in #2179
  • docs: correct the ephemeral labels on four persisted session events by @examon in #2172
  • docs: document EnableSessionStore and one-shot session guidance by @syf2211 in #1822
  • python: decode boolean-discriminated unions by @examon in #2123
  • test(java): re-enable ModeHandlers exit_plan_mode E2E assertions by @arimu1 in #2032
  • Add usage and billing metrics docs page by @andyfeller in #1720
  • forward CustomAgentsLocalOnly in session.create and session.resume by @syf2211 in #1899
  • Fix Python codegen synthetic permission approval names by @abhinavgautam01 in #1652
  • fix(python): forward binary tool results in HandlePendingToolCall RPC by @syf2211 in #1821
  • [Codegen] Honor internal flag on session event types in Node codegen by @MRayermannMSFT in #2177
  • Expose managed approval requirement on permission requests by @joshspicer in #2080
  • sdk: Expose githubMcpToolConfig across languages by @connor4312 in #2112
  • Deflake background task removal E2E tests by @stephentoub in #2190
  • Update @github/copilot to 1.0.77 by @github-actions[bot] in #2183
  • Update @github/copilot to 1.0.78-2 by @github-actions[bot] in #2193
  • fix(python): serialize Pydantic models with mode='json' in tool results by @rinceyuan in #2225
  • all SDKs: add EnableExperimentalMode to session create/resume wire with mode-aware defaults by @jmoseley in #1600
  • build(deps): bump brace-expansion from 5.0.6 to 5.0.9 in /scripts/docs-validation in the npm_and_yarn group across 1 directory by @dependabot[bot] in #2191
  • docs: remove the nonexistent toolName field from tool.execution_complete by @examon in #2212
  • feat: add support for additional directories in session configuration by @DonJayamanne in #2180
  • docs: fix the Node.js inbound trace-context example to use a real tool-registration API by @examon in #2223
  • Update @github/copilot to 1.0.78 by @github-actions[bot] in #2239
  • dotnet: update README attachment examples to current API (fixes #2196) by @HindzStark in #2208
  • Support reasoningEffort: max by @Dharshika-11 in #2228
  • Stop sendAndWait from emitting an unhandled rejection by @thejesh23 in #2206
  • docs: clarify working directory defaults across SDKs by @xianjianlf2 in #2201
  • Speed up Rust E2E tests with shared clients by @SteveSandersonMS in #2250
  • build(deps-dev): bump ip-address from 10.2.0 to 10.4.0 in /test/harness by @dependabot[bot] in #2245
  • build(deps-dev): bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in #2244
  • build(deps-dev): bump postcss from 8.5.15 to 8.5.25 in /nodejs by @dependabot[bot] in #2243
  • build(deps-dev): bump fast-uri from 3.1.4 to 3.1.5 in /test/harness by @dependabot[bot] in #2242
  • docs: move SDK development guidance to local READMEs by @SteveSandersonMS in #2253
  • build(deps-dev): bump postcss from 8.5.15 to 8.5.25 in /test/harness by @dependabot[bot] in #2252
  • docs: replace removed session.idle.backgroundTasks field with the current aborted field by @examon in #2232
  • Parallelize Python and Windows .NET CI tests by @SteveSandersonMS in #2251
  • Fix active Node and Rust replay E2E flakes by @roji in #2186
  • Add userPromptTransformed hook to all SDKs by @SteveSandersonMS in #2254
  • fix: Java README version stuck at 1.0.5-01; release sed regex can't match numeric qualifiers by @rinceyuan in #2226
  • docs: update Go and Rust API reference links by @scottaddie in #2266
  • docs: add citations guide by @patniko in #2267
  • sdk: Expose disabled MCP servers across languages by @connor4312 in #2260

New Contributo...

Read more

rust/v1.0.9

Choose a tag to compare

@github-actions github-actions released this 06 Aug 00:46
cc8c7f2

What's Changed

New Contributors

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

v1.0.9-preview.3

v1.0.9-preview.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 04 Aug 01:54
2e88dbd

Feature: configure the built-in GitHub MCP server per session

All SDKs now accept a githubMcpToolConfig option on session create/resume, exposing settings the runtime already supports. The most useful new control is disableFormDeferral, which makes MCP write tools (like creating issues or PRs) execute directly instead of opening an interactive form — essential for autonomous workflows. (#2112)

const session = await client.createSession({
  githubMcpToolConfig: { disableFormDeferral: true }
});
var session = await client.CreateSessionAsync(new SessionConfig {
    GitHubMcpToolConfig = new GitHubMcpToolConfig { DisableFormDeferral = true }
});

Feature: opt in or out of experimental mode per session

A new enableExperimentalMode option lets SDK consumers control whether a session activates experimental runtime features. In empty mode the SDK defaults to false; in copilot-cli mode the runtime decides unless you set it explicitly. (#1600)

const session = await client.createSession({ enableExperimentalMode: true });
var session = await client.CreateSessionAsync(new SessionConfig { EnableExperimentalMode = true });

Feature: additional directories in session configuration

Sessions can now be created with an additionalDirectories field that exposes extra working directories to the session alongside the primary workspace. (#2180)

const session = await client.createSession({
  additionalDirectories: ["/path/to/other/project"]
});

Feature: distinguish enterprise-managed permission approvals

permission.requested events and permission handler callbacks now carry an optional managedApprovalRequired flag. When set, the permission must be approved by a person — built-in approve-all handlers refuse it loudly rather than silently approving, and custom handlers can inspect the flag to surface a proper UI prompt. (#2080)

Other changes

  • bugfix: [Python] serialize Pydantic models with mode='json' in tool results to avoid serialization errors (#2225)

New contributors

  • @joshspicer made their first contribution in #2080
  • @connor4312 made their first contribution in #2112
  • @DonJayamanne made their first contribution in #2180

Generated by Release Changelog Generator · sonnet46 18.7 AIC · ⌖ 4.92 AIC · ⊞ 8.6K

rust/v1.0.9-preview.3

rust/v1.0.9-preview.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 04 Aug 01:55
2e88dbd

What's Changed

  • Expose managed approval requirement on permission requests by @joshspicer in #2080
  • sdk: Expose githubMcpToolConfig across languages by @connor4312 in #2112
  • Deflake background task removal E2E tests by @stephentoub in #2190
  • Update @github/copilot to 1.0.77 by @github-actions[bot] in #2183
  • Update @github/copilot to 1.0.78-2 by @github-actions[bot] in #2193
  • fix(python): serialize Pydantic models with mode='json' in tool results by @rinceyuan in #2225
  • all SDKs: add EnableExperimentalMode to session create/resume wire with mode-aware defaults by @jmoseley in #1600
  • build(deps): bump brace-expansion from 5.0.6 to 5.0.9 in /scripts/docs-validation in the npm_and_yarn group across 1 directory by @dependabot[bot] in #2191
  • docs: remove the nonexistent toolName field from tool.execution_complete by @examon in #2212
  • feat: add support for additional directories in session configuration by @DonJayamanne in #2180
  • docs: fix the Node.js inbound trace-context example to use a real tool-registration API by @examon in #2223
  • Update @github/copilot to 1.0.78 by @github-actions[bot] in #2239

New Contributors

Full Changelog: rust/v1.0.9-preview.2...rust/v1.0.9-preview.3

GitHub Copilot SDK for Java 1.0.9-preview.3

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.9-preview.3</version>
</dependency>

Gradle (Kotlin DSL)

implementation("com.github:copilot-sdk-java:1.0.9-preview.3")

Gradle (Groovy DSL)

implementation 'com.github:copilot-sdk-java:1.0.9-preview.3'

Feature: managed approval requirement on permission requests

Permission handlers can now inspect request.getManagedApprovalRequired() to determine when a human decision is required. PermissionHandler.APPROVE_ALL now completes exceptionally when managed settings are enabled, preventing auto-approval of requests that require explicit human review. (#2080)

PermissionHandler handler = (request, invocation) -> {
    if (Boolean.TRUE.equals(request.getManagedApprovalRequired())) {
        return requestHumanApproval(request);
    }
    return CompletableFuture.completedFuture(
        new PermissionRequestResult().setKind(PermissionRequestResultKind.APPROVED));
};

Feature: GitHub MCP tool configuration

SessionConfig and ResumeSessionConfig now expose a GitHubMcpToolConfig option to configure the built-in GitHub MCP server, including selectively enabling tools and disabling form deferral. (#2112)

var config = new SessionConfig()
    .setGitHubMcpToolConfig(new GitHubMcpToolConfig()
        .setDisableFormDeferral(true));

Feature: additional directories in session configuration

Sessions can now be granted access to directories beyond the working directory via setAdditionalDirectories(...) on SessionConfig and ResumeSessionConfig. (#2180)

var config = new SessionConfig()
    .setWorkingDirectory("/repo")
    .setAdditionalDirectories(List.of("/shared/libs", "/data"));

Other changes

  • feature: add enableExperimentalMode to SessionConfig/ResumeSessionConfig with mode-aware defaults (#1600)

New contributors

  • @joshspicer made their first contribution in #2080

Generated by Release Changelog Generator · sonnet46 59.6 AIC · ⌖ 6.15 AIC · ⊞ 8.6K