Skip to content

v1.0.13-preview.0

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 26 Aug 00:28
48b280a

Feature: rewind support across all SDKs

Sessions can now opt into file-change tracking and rewind conversation history along with tracked file changes. Enable the new enableFileChangeTracking session option to allow calling rewind later. (#2321)

const session = await client.createSession({ enableFileChangeTracking: true });
// later:
await session.rpc.conversation.rewind({ ...rewindPoint });
var session = await client.CreateSessionAsync(new SessionOptions { EnableFileChangeTracking = true });
session = await client.create_session(enable_file_change_tracking=True)
session, err := client.CreateSession(ctx, copilot.SessionOptions{EnableFileChangeTracking: true})

Feature: Java in-process runtime (experimental)

The Java SDK now ships platform-native classifier JARs that load the Copilot runtime directly in-process via JNA — no separate CLI child process required. Currently available for linux-x64, Windows x64, and Apple Silicon macOS. (#2301, #2393, #2402)

CopilotClientOptions options = new CopilotClientOptions()
    .setConnection(RuntimeConnection.forInProcess());
CopilotClient client = new CopilotClient(options);
client.start().get();

Feature: permission decision context forwarding

Permission handlers can now attach decisionContext so the runtime can attribute whether a decision came from a person, host policy, or an automated recommendation. This is additive for Node, Python, Go, .NET, and Java. Rust clients that construct or match PermissionResult::Decision directly must migrate to the new struct variant. (#2294)

  • TypeScript: createAttributedPermissionResult(result, context)
  • Python: copilot.create_attributed_permission_result(result, context)
  • Go: copilot.NewAttributedPermissionResult(result, context)
  • C#: set DecisionContext on the permission decision
  • Java: PermissionRequestResult.approveOnce().setDecisionContext(context)
  • Rust: PermissionResult::approve_once().with_context(context)

Feature: built-in plugin directory support

Applications can now register a set of host-bundled plugin directories that are trusted unconditionally and loaded before any user session begins. (#2330)

Feature: extensions can request sensitive environment variables (Node)

joinSession() now accepts an env option listing the sensitive environment variable names an extension needs. The CLI prompts the user for approval; if granted, the values are written into the extension's process.env before the session resolves. (#2348)

await joinSession({ env: ['MY_API_KEY', 'MY_SECRET'] });

Other changes

  • improvement: [SDK/Factories] align agent factory types and behavior with the wire contract — factory results type as JsonValue, ctx.agent() forwards reasoningEffort and contextTier, resume error union narrowed to codes the runtime raises (#2309)
  • feature: [SDK/Factories] expose optional argsSchema on FactoryMeta so the CLI can validate factory arguments before a run starts (#2315)
  • bugfix: [Python] serialize native values (datetime, UUID, Decimal, Enum, set) in tool results (#2374)
  • bugfix: [Rust] prevent orphaned CLI processes on client drop (#2292)

New contributors

  • @lutzroeder made their first contribution in #2330
  • @aymenfurter made their first contribution in #2294
  • @lukehoban made their first contribution in #2292
  • @scordio made their first contribution in #2382
  • @OllieinCanada made their first contribution in #2374

Generated by Release Changelog Generator · sonnet46 36.8 AIC · ⌖ 4.91 AIC · ⊞ 8.1K