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
Use application terminology for client info (#2482)
* Rename client info fields for applications
Use application and integration terminology in every public SDK while preserving the existing runtime wire protocol. Update tests and documentation to match.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Apply Java source formatting
Match the repository's Spotless line wrapping for the updated client identity documentation.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Clarify client info examples
Keep the IDE example across languages, document application-only usage, and explain integrations as optional extensions, plugins, or other application sub-parts.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Clarify integration field documentation
Describe integration identity consistently across all six SDKs as an optional application extension, plugin, or other named sub-part.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Apply Java comment formatting
Match Spotless wrapping for the clarified integration accessor documentation.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,9 +7,9 @@ See [GitHub Releases](https://github.com/github/copilot-sdk/releases) for the fu
7
7
8
8
## [Unreleased]
9
9
10
-
### Feature: declare host identity with client info
10
+
### Feature: declare application identity with client info
11
11
12
-
Client options now accept optional client info (editor name and version, extension name and version) across all six SDKs, exposed idiomatically per language (`clientInfo` in Node.js, `client_info` in Python and Rust, `ClientInfo` in Go and .NET, `setClientInfo` in Java). When set, the SDK forwards it on the `server.connect` handshake so the telemetry the runtime emits on the connection is attributed to the host editor and its Copilot extension instead of the runtime's own build. All fields are optional, and leaving client info unset keeps the runtime's default attribution. See [Client info](./docs/features/client-info.md).
12
+
Client options now accept optional client info (application name and version, integration name and version) across all six SDKs, exposed idiomatically per language (`clientInfo` in Node.js, `client_info` in Python and Rust, `ClientInfo` in Go and .NET, `setClientInfo` in Java). When set, the SDK forwards it on the `server.connect` handshake so the telemetry the runtime emits on the connection is attributed to the application and its Copilot integration instead of the runtime's own build. All fields are optional, and leaving client info unset keeps the runtime's default attribution. See [Client info](./docs/features/client-info.md).
13
13
14
14
### Feature: Node Agent Factories pagination and run notifications
Copy file name to clipboardExpand all lines: docs/features/client-info.md
+49-47Lines changed: 49 additions & 47 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,21 +1,23 @@
1
1
# Client info
2
2
3
-
Client info identifies the editor or extension that hosts your Copilot SDK application. Set the optional `clientInfo` client option to attribute runtime telemetry for that connection to your host instead of the runtime's own build.
3
+
Client info identifies the application using the Copilot SDK and, when applicable, a specific integration within it. An integration is an identifiable sub-part of the application through which the SDK is used, such as an extension or plugin. Set the optional `clientInfo` client option to attribute runtime telemetry for that connection to your application instead of the runtime's own build.
4
4
5
5
## When to set client info
6
6
7
-
Set client info when you embed the SDK in an editor, an extension, or another application with its own identity.
7
+
Set client info when your SDK application represents a distinct product, service, or integration whose runtime activity should be attributed consistently.
8
8
9
-
Leave client info unset for scripts, one-off tools, and back-end jobs that do not represent a distinct host. The runtime then keeps its default attribution.
9
+
Leave client info unset for scripts, one-off tools, and jobs that do not represent a distinct application. The runtime then keeps its default attribution.
10
10
11
11
Client info has four optional string fields. Set the fields you know and omit the rest. The SDK includes client info in the `server.connect` handshake only when at least one field has a non-empty value.
12
12
13
13
| Field | Example | Meaning |
14
14
|---|---|---|
15
-
|`editorName`|`"vscode"`| Name of the host editor |
16
-
|`editorVersion`|`"1.124.2"`| Version of the host editor |
17
-
|`extensionName`|`"copilot-chat"`| Name of the Copilot extension within the host |
18
-
|`extensionVersion`|`"0.54.0"`| Version of the Copilot extension within the host |
15
+
|`applicationName`|`"vscode"`| Name of the application using the SDK |
16
+
|`applicationVersion`|`"1.124.2"`| Version of the application using the SDK |
17
+
|`integrationName`|`"copilot-chat"`| Name of the extension, plugin, or other application sub-part using the SDK |
18
+
|`integrationVersion`|`"0.54.0"`| Version of that extension, plugin, or application sub-part |
19
+
20
+
For a standalone application without a distinct integration, set only the application fields. For example, a developer portal could set `applicationName` to `"acme-developer-portal"` and `applicationVersion` to `"2.4.0"`, leaving both integration fields unset.
19
21
20
22
The SDK sends client info once when it establishes the connection. The identity applies for the lifetime of that connection.
21
23
@@ -33,10 +35,10 @@ import { CopilotClient } from "@github/copilot-sdk";
33
35
asyncfunction main() {
34
36
const client =newCopilotClient({
35
37
clientInfo: {
36
-
editorName: "JetBrains-IU",
37
-
editorVersion: "2026.1",
38
-
extensionName: "copilot-intellij",
39
-
extensionVersion: "1.5.0",
38
+
applicationName: "vscode",
39
+
applicationVersion: "1.124.2",
40
+
integrationName: "copilot-chat",
41
+
integrationVersion: "0.54.0",
40
42
},
41
43
});
42
44
@@ -52,10 +54,10 @@ import { CopilotClient } from "@github/copilot-sdk";
52
54
53
55
const client =newCopilotClient({
54
56
clientInfo: {
55
-
editorName: "JetBrains-IU",
56
-
editorVersion: "2026.1",
57
-
extensionName: "copilot-intellij",
58
-
extensionVersion: "1.5.0",
57
+
applicationName: "vscode",
58
+
applicationVersion: "1.124.2",
59
+
integrationName: "copilot-chat",
60
+
integrationVersion: "0.54.0",
59
61
},
60
62
});
61
63
@@ -73,10 +75,10 @@ from copilot import CopilotClient
0 commit comments