v1.0.13-preview.0
Pre-releaseFeature: 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
DecisionContexton 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()forwardsreasoningEffortandcontextTier, resume error union narrowed to codes the runtime raises (#2309) - feature: [SDK/Factories] expose optional
argsSchemaonFactoryMetaso 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
@lutzroedermade their first contribution in #2330@aymenfurtermade their first contribution in #2294@lukehobanmade their first contribution in #2292@scordiomade their first contribution in #2382@OllieinCanadamade their first contribution in #2374
Generated by Release Changelog Generator · sonnet46 36.8 AIC · ⌖ 4.91 AIC · ⊞ 8.1K