feat(session): enableManagedSettings, canvasProvider, and telemetry-on-connect (v1.0.7-preview.2 sync 2/2)#147
Merged
Merged
Conversation
Regenerate the wire-spec/coercion layer (bb schemas:fetch + bb codegen) against @github/copilot 1.0.70. Ports upstream schema bumps 1.0.69-1, 1.0.69-3, 1.0.69, 1.0.70-0, and 1.0.70 (github/copilot-sdk PRs #1908, #1940, #1941, #1954, #1962). Generated files only; no public API change. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 6c1ba270-39e7-404f-b8c3-bbe47b3b5635
Curate the events introduced by the 1.0.70 schema bump into the public event sets and the idiom ::event-type enum: - assistant.tool_call_delta (assistant-events, schema 1.0.69-3) - mcp.tools/resources/prompts.list_changed (interaction-events, 1.0.70) - session.auto_mode_resolved (session-events, experimental, 1.0.70-0) No hand-written idiom -data specs: all new fields are plain strings/numbers/enums, so wire->clj kebab-casing suffices (matching the usage_checkpoint / headers_refresh precedent). Adds an integration test asserting set membership and ::event-type validation, plus API.md and CHANGELOG entries. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 6c1ba270-39e7-404f-b8c3-bbe47b3b5635
…try-on-connect
Port three forwarding changes from upstream copilot-sdk v1.0.7-preview.2:
- enableManagedSettings (upstream PR #1925): new :enable-managed-settings?
boolean session config. Forwarded verbatim as wire enableManagedSettings on
session.create/resume/join, gated on some? so an explicit false is sent
(matching upstream's config spread). Opt-in for runtime self-fetch of
enterprise managed settings using the session's github token.
- canvasProvider (upstream PR #1847): new :canvas-provider {:id .. :name ..}
session config (name optional). Forwarded as wire canvasProvider on
session.create/resume/join. Adds ::canvas-provider spec reusing ::id/::name.
- Telemetry forwarding on connect (upstream PR #1909): when :on-github-telemetry
is registered, the SDK now also sends enableGitHubTelemetryForwarding on the
connection-level connect handshake, so the first session's un-replayable
session.start telemetry is forwarded. The existing per-session flag on
session.create/resume is retained for older CLIs.
Registers both new keys at every config site (session/resume/join key sets and
s/keys). Adds RED-verified integration tests asserting builder output and the
post-clj->wire wire params. Updates API.md and CHANGELOG under the existing
v1.0.7-preview.2 sync section.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 6c1ba270-39e7-404f-b8c3-bbe47b3b5635
Contributor
There was a problem hiding this comment.
Pull request overview
Ports three upstream github/copilot-sdk v1.0.7-preview.2 session/connection forwarding features into the Clojure SDK, ensuring wire-level parity while keeping the idiomatic config surface and spec validation consistent with existing patterns.
Changes:
- Forward new session config fields
:enable-managed-settings?and:canvas-provideron create/resume/join, with correspondingclojure.specsupport. - Opt the connection into GitHub telemetry forwarding during the
connecthandshake when:on-github-telemetryis registered (in addition to the existing per-session forwarding). - Add integration tests plus docs/changelog updates covering the new fields and connect-handshake behavior.
Show a summary per file
| File | Description |
|---|---|
| test/github/copilot_sdk/integration_test.clj | Adds integration coverage for connect-handshake telemetry opt-in and forwarding of enableManagedSettings / canvasProvider on create/resume. |
| src/github/copilot_sdk/specs.clj | Introduces specs for :enable-managed-settings? and :canvas-provider, and allows them in session/resume/join configs. |
| src/github/copilot_sdk/client.clj | Implements connect-handshake telemetry flag forwarding and forwards the two new SessionConfigBase fields on create/resume. |
| doc/reference/API.md | Documents connect-handshake telemetry opt-in and the two new session config options. |
| CHANGELOG.md | Records the three ports under Unreleased with upstream PR references. |
Review details
- Files reviewed: 5/5 changed files
- Comments generated: 0
- Review effort level: Low
…connect # Conflicts: # CHANGELOG.md # doc/reference/API.md # src/github/copilot_sdk.clj # src/github/copilot_sdk/specs.clj # test/github/copilot_sdk/integration_test.clj
Comment on lines
17
to
+18
| `.copilot-schema-version` `1.0.68` → `1.0.70` and regenerated wire specs / | ||
| `.copilot-schema-version` `1.0.68` → `1.0.70` and regenerated wire specs / |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ports three forwarding changes from upstream
github/copilot-sdkv1.0.7-preview.2 (part 2 of the sync split; #146 carries the schema bump and new event types).What this adds
:enable-managed-settings?(upstream PR #1925) — boolean session config, opt-in for the runtime to self-fetch enterprise managed settings at bootstrap using the session's:github-token. Forwarded verbatim as wireenableManagedSettingsonsession.create/session.resume/join.:canvas-provider(upstream PR #1847) —{:id "..." :name "..."}(:nameoptional) session config identifying the canvas provider. Forwarded as wirecanvasProvideronsession.create/session.resume/join. Adds a::canvas-providerspec reusing the generic::id/::name.connecthandshake (upstream PR #1909) — when:on-github-telemetryis registered, the SDK now also sendsenableGitHubTelemetryForwarding: trueon the connection-levelconnecthandshake, so the first session's un-replayablesession.starttelemetry is forwarded. The pre-existing per-session flag onsession.create/session.resumeis retained for older CLIs.Notes for reviewers
enableManagedSettingsis gated on(some? ...)— an explicitfalseis forwarded, matching upstream which spreadsconfig.enableManagedSettingsverbatim. This differs from the true-only telemetry flag. Both new fields live onSessionConfigBaseupstream, so they are registered and forwarded on create, resume, and join.:enableGitHubTelemetryForwardingbecause csk would otherwise mangle "GitHub" → "Github";clj->wireis idempotent on the already-correct key.clj->wirewire params (camelCase, nestedid/name), including the explicit-falseand omitted cases.Full CI is green (unit/integration, E2E, all examples, docs, jar). The intermittent
test-e2e-list-sessionstimeout is a known real-backend flake unrelated to this change and passes on retry.