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: commands and UI elicitation across all four SDKs
11
+
12
+
Register slash commands that CLI users can invoke and drive interactive input dialogs from any SDK language. This feature was previously Node.js-only; it now ships in Python, Go, and .NET as well. ([#906](https://github.com/github/copilot-sdk/pull/906), [#908](https://github.com/github/copilot-sdk/pull/908), [#960](https://github.com/github/copilot-sdk/pull/960))
13
+
14
+
```ts
15
+
const session =awaitclient.createSession({
16
+
onPermissionRequest: approveAll,
17
+
commands: [{
18
+
name: "summarize",
19
+
description: "Summarize the conversation",
20
+
handler: async (context) => { /* ... */ },
21
+
}],
22
+
onElicitationRequest: async (context) => {
23
+
if (context.type==="confirm") return { action: "confirm" };
> **⚠️ Breaking change (Node.js):** The `onElicitationRequest` handler signature changed from two arguments (`request, invocation`) to a single `ElicitationContext` that combines both. Update callers to use `context.sessionId` and `context.message` directly.
49
+
50
+
### Feature: `session.getMetadata` across all SDKs
51
+
52
+
Efficiently fetch metadata for a single session by ID without listing all sessions. Returns `undefined`/`null` (not an error) when the session is not found. ([#899](https://github.com/github/copilot-sdk/pull/899))
53
+
54
+
- TypeScript: `const meta = await client.getSessionMetadata(sessionId);`
55
+
- C#: `var meta = await client.GetSessionMetadataAsync(sessionId);`
### Feature: `sessionFs` for virtualizing per-session storage (Node SDK)
60
+
61
+
Supply a custom `sessionFs` adapter in Node SDK session config to redirect the runtime's per-session storage (event log, large output files) to any backing store — useful for serverless deployments or custom persistence layers. ([#917](https://github.com/github/copilot-sdk/pull/917))
62
+
63
+
### Other changes
64
+
65
+
- bugfix: structured tool results (with `toolTelemetry`, `resultType`, etc.) now sent via RPC as objects instead of being stringified, preserving metadata for Node, Go, and Python SDKs ([#970](https://github.com/github/copilot-sdk/pull/970))
66
+
- feature: **[Python]**`CopilotClient` and `CopilotSession` now support `async with` for automatic resource cleanup ([#475](https://github.com/github/copilot-sdk/pull/475))
- improvement: **[Python]**`workspace_path` now accepts any `os.PathLike` and `session.workspace_path` returns a `pathlib.Path` ([#901](https://github.com/github/copilot-sdk/pull/901))
69
+
- improvement: **[Go]** simplified `rpc` package API: renamed structs drop the redundant `Rpc` infix (e.g. `ModelRpcApi` → `ModelApi`) ([#905](https://github.com/github/copilot-sdk/pull/905))
70
+
- fix: **[Go]**`Session.SetModel` now takes a pointer for optional options instead of a variadic argument ([#904](https://github.com/github/copilot-sdk/pull/904))
71
+
72
+
### New contributors
73
+
74
+
-@Sumanth007 made their first contribution in [#475](https://github.com/github/copilot-sdk/pull/475)
75
+
-@jongalloway made their first contribution in [#957](https://github.com/github/copilot-sdk/pull/957)
76
+
-@Morabbin made their first contribution in [#970](https://github.com/github/copilot-sdk/pull/970)
77
+
-@schneidafunk made their first contribution in [#998](https://github.com/github/copilot-sdk/pull/998)
This is a big update with a broad round of API refinements, new capabilities, and cross-SDK consistency improvements that have shipped incrementally through preview releases since v0.1.32.
0 commit comments