v1.0.9-preview.0
Pre-releaseFeature: agentStop lifecycle hook
Applications can now intercept the natural stopping point of the top-level agent across all SDKs. Return { decision: "block", reason } to enqueue a follow-up message and keep the agent running; omit or return no decision to let it stop normally. (#2054)
session.hooks.agentStop(async ({ stopHookActive }) => {
if (stopHookActive) return; // don't block continuation turns
return { decision: "block", reason: "Run final validation and fix any failures." };
});session.Hooks.AgentStop(async (input, ct) => {
if (input.StopHookActive) return null; // don't block continuation turns
return new AgentStopOutput { Decision = "block", Reason = "Run final validation and fix any failures." };
});Feature: startup timing breakdown for the Rust SDK
Client::start now exposes a StartupTimings struct that breaks down initialization latency into per-phase millisecond fields (process_spawn_ms, transport_setup_ms, handshake_ms, and more), making it easier to diagnose cold-start performance. (#2066)
Feature: [Java] custom JSON schema override for @CopilotToolParam
The @CopilotToolParam annotation now accepts an optional schema attribute for passing an explicit JSON Schema string, enabling support for third-party types that the built-in schema generator cannot automatically map. (#2069)
`@CopilotTool`("Schedule a deployment")
public String scheduleDeployment(
`@CopilotToolParam`(value = "Deployment time in ISO-8601",
schema = "{\"type\":\"string\",\"format\":\"date-time\"}")
com.acme.internal.AcmeDateTime deployTime) { ... }Other changes
- improvement: [Java] enforce non-blank
@CopilotToolParamdescriptions at compile time (#1980) - bugfix: [C#] release oversized JSON-RPC receive buffers after large frames to reduce memory retention (#2047)
- improvement: [Rust] emit type aliases for scalar RPC result schemas in generated code (#2110)
New contributors
@adirh3made their first contribution in #2047
Generated by Release Changelog Generator · sonnet46 45.2 AIC · ⌖ 4.94 AIC · ⊞ 8.6K