You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
### Feature: multi-client tool and permission broadcasts (protocol v3)
11
+
12
+
The SDK now uses protocol version 3, where the runtime broadcasts `external_tool.requested` and `permission.requested` as session events to all connected clients. This enables multi-client architectures where different clients contribute different tools, or where multiple clients observe the same permission prompts — if one client approves, all clients see the result. Your existing tool and permission handler code is unchanged. ([#686](https://github.com/github/copilot-sdk/pull/686))
13
+
14
+
```ts
15
+
// Two clients each register different tools; the agent can use both
### Feature: strongly-typed `PermissionRequestResultKind` for .NET and Go
38
+
39
+
Rather than comparing `result.Kind` against undiscoverable magic strings like `"approved"` or `"denied-interactively-by-user"`, .NET and Go now provide typed constants. Node and Python already had typed unions for this; this brings full parity. ([#631](https://github.com/github/copilot-sdk/pull/631))
40
+
41
+
```cs
42
+
session.OnPermissionCompleted+= (e) => {
43
+
if (e.Result.Kind==PermissionRequestResultKind.Approved) { /* ... */ }
44
+
if (e.Result.Kind==PermissionRequestResultKind.DeniedInteractivelyByUser) { /* ... */ }
if result.Kind == copilot.PermissionKindApproved { /* ... */ }
52
+
```
53
+
54
+
### Other changes
55
+
56
+
- feature: **[Python]****[Go]** add `get_last_session_id()` / `GetLastSessionID()` for SDK-wide parity (was already available in Node and .NET) ([#671](https://github.com/github/copilot-sdk/pull/671))
57
+
- improvement: **[Python]** add `timeout` parameter to generated RPC methods, allowing callers to override the default 30s timeout for long-running operations ([#681](https://github.com/github/copilot-sdk/pull/681))
58
+
- bugfix: **[Go]**`PermissionRequest` fields are now properly typed (`ToolName`, `Diff`, `Path`, etc.) instead of a generic `Extra map[string]any` catch-all ([#685](https://github.com/github/copilot-sdk/pull/685))
0 commit comments