Skip to content

Use application terminology for client info - #2482

Merged
SteveSandersonMS merged 5 commits into
mainfrom
copilot/neutral-client-info
Sep 2, 2026
Merged

SteveSandersonMS merged 5 commits into
mainfrom
copilot/neutral-client-info

Conversation

@SteveSandersonMS

Copy link
Copy Markdown
Contributor

Summary

  • rename the public client identity fields across Node.js, Python, Go, .NET, Rust, and Java to applicationName/applicationVersion and integrationName/integrationVersion (with language-idiomatic casing)
  • preserve the existing runtime JSON-RPC wire keys (editorName, editorVersion, extensionName, and extensionVersion) as an internal compatibility boundary
  • update handshake tests, feature documentation, examples, API comments, and the changelog with application-centric wording

Why

The client-info API added in #2464 has not shipped in a release, so this is the safe point to avoid making editor-specific terminology part of the permanent public SDK contract. Copilot SDK clients include non-editor applications; application and optional integration identity describe that model without changing the runtime protocol.

Validation

  • Node.js formatting, typecheck, and targeted client-info tests
  • Python formatting, lint, typecheck, and targeted client-info tests
  • Go formatting and targeted tests
  • .NET targeted unit tests (52 passed)
  • Rust formatting and handshake tests (6 passed)
  • documentation example validation for TypeScript, Python, Go, and C#
  • manual TypeScript TCP JSON-RPC handshake confirming neutral public names serialize to the existing wire keys
  • manual Java/Jackson serialization confirming the existing wire keys are emitted without duplicate public properties

The full Java Maven lane could not run locally because the environment JDK did not trust the intercepted Maven TLS certificate; the direct Java/Jackson validation passed, and CI will cover the Maven and Spotless lanes.

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>
@github-actions github-actions Bot mentioned this pull request Sep 2, 2026
@SteveSandersonMS
SteveSandersonMS marked this pull request as ready for review September 2, 2026 11:44
@SteveSandersonMS
SteveSandersonMS requested a review from a team as a code owner September 2, 2026 11:44
Copilot AI balanced review requested due to automatic review settings September 2, 2026 11:44
Match the repository's Spotless line wrapping for the updated client identity documentation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment thread docs/features/client-info.md Outdated
Comment thread docs/features/client-info.md Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

Public naming, compatibility mappings, tests, and documentation are consistently updated across all six SDKs.

Review tier: Balanced
Findings: None

What changed in this PR

Renames public client identity fields to application/integration terminology across all six SDKs while preserving existing JSON-RPC wire keys.

Changes:

  • Updates public APIs and internal wire mappings.
  • Revises handshake tests across all SDKs.
  • Updates documentation and changelog terminology.
File Description
rust/​tests/​protocol_version_test.rs Updates Rust handshake tests.
rust/​src/​lib.rs Renames Rust fields and builders.
python/​test_client.py Updates Python handshake tests.
python/​copilot/​client.py Renames Python fields and wire mapping.
nodejs/​test/​client.test.ts Updates Node.js handshake tests.
nodejs/​src/​types.ts Renames Node.js public fields.
nodejs/​src/​client.ts Maps new names to existing wire keys.
java/​sdk/​src/​test/​java/​com/​github/​copilot/​GitHubTelemetryTest.java Updates Java serialization tests.
java/​sdk/​src/​main/​java/​com/​github/​copilot/​rpc/​CopilotClientOptions.java Updates Java API documentation.
java/​sdk/​src/​main/​java/​com/​github/​copilot/​rpc/​ClientInfo.java Renames Java accessors while retaining wire annotations.
java/​sdk/​src/​main/​java/​com/​github/​copilot/​CopilotClient.java Updates identity terminology.
go/​types.go Renames Go fields and wire mapping.
go/​client_test.go Updates Go handshake tests.
dotnet/​test/​Unit/​GitHubTelemetryTests.cs Updates .NET handshake tests.
dotnet/​test/​Unit/​CloneTests.cs Updates .NET clone fixture fields.
dotnet/​src/​Types.cs Renames .NET public properties.
dotnet/​src/​Client.cs Maps new properties to existing wire keys.
docs/​features/​README.md Updates the feature summary.
docs/​features/​client-info.md Revises guidance and examples.
CHANGELOG.md Records application-centric terminology.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@github-actions

This comment has been minimized.

Comment thread dotnet/src/Types.cs Outdated
SteveSandersonMS and others added 2 commits September 2, 2026 11:52
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>
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>
@github-actions

This comment has been minimized.

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Cross-SDK Consistency Review

This PR renames the ClientInfo field/method set consistently across all six SDKs, replacing the editor/extension terminology with application/integration terminology:

Old New
editorName / EditorName / editor_name applicationName / ApplicationName / application_name
editorVersion / EditorVersion / editor_version applicationVersion / ApplicationVersion / application_version
extensionName / ExtensionName / extension_name integrationName / IntegrationName / integration_name
extensionVersion / ExtensionVersion / extension_version integrationVersion / IntegrationVersion / integration_version

Verified in: Node.js/TypeScript (nodejs/src/types.ts, client.ts), Python (python/copilot/client.py), Go (go/types.go), .NET (dotnet/src/Types.cs, Client.cs), Java (java/sdk/.../rpc/ClientInfo.java, CopilotClientOptions.java), and Rust (rust/src/lib.rs).

Each SDK follows its own naming convention correctly (camelCase for TS/Java, PascalCase for Go public fields and .NET, snake_case for Python/Rust), and the underlying wire format (editorName/editorVersion/extensionName/extensionVersion) is preserved unchanged for backward compatibility with the runtime handshake — only the public-facing SDK API surface and docs were renamed. Tests, changelog, and docs (docs/features/client-info.md) were updated in lockstep across languages.

Conclusion: No cross-SDK consistency issues found. This is a well-executed, fully parallel rename with no language left behind and no API drift.

Generated by SDK Consistency Review Agent for #2482 · sonnet50 29.6 AIC · ⌖ 7.65 AIC · ⊞ 8.8K · ◷

Match Spotless wrapping for the clarified integration accessor documentation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@SteveSandersonMS
SteveSandersonMS added this pull request to the merge queue Sep 2, 2026
@SteveSandersonMS
SteveSandersonMS removed this pull request from the merge queue due to a manual request Sep 2, 2026
@SteveSandersonMS
SteveSandersonMS merged commit 040530f into main Sep 2, 2026
135 of 137 checks passed
@SteveSandersonMS
SteveSandersonMS deleted the copilot/neutral-client-info branch September 2, 2026 13:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants