v1.0.0-beta.4
Pre-release
Pre-release
Feature: typed Go union interfaces
Go SDK union types are now modelled as typed interfaces with concrete variants instead of flattened structs with many optional fields. Callers can switch on concrete variants and get compile-time safety — invalid union states that were previously representable are no longer possible. Unknown union members and session event payloads are preserved rather than dropped. (#1252)
switch v := event.Data.(type) {
case *SessionEventDataAssistantMessage:
fmt.Println(v.Content)
case *RawSessionEventData:
// forward-compatible: unknown future event type preserved
}Feature: experimental schema type annotations
Generated types that carry stability: "experimental" in the protocol schema now surface language-appropriate markers so callers get compiler warnings when using unstable APIs. (#1267)
- C#:
[Experimental("GitHub.Copilot.SDK.Experimental")] - TypeScript:
@experimentalJSDoc tag - Go/Python: doc-comment warning
- Rust:
#[doc = "⚠️ Experimental"]
Other changes
- improvement: [Go] replace quicktype-based RPC codegen with a custom schema-aware generator; preserves distinct named types that quicktype previously merged due to identical structure, and aligns generated casing with the repo's naming policy — note: this is a breaking change for Go callers using generated RPC types (#1234)
- bugfix: [Go] CLI stderr is now captured and included in startup errors, making failure root causes (missing module, auth error, version mismatch) immediately visible instead of showing a generic opaque message (#863)
New contributors
@claudiogodoy99made their first contribution in #863
Generated by Release Changelog Generator · ● 302.2K