Skip to content

feat(session): enableManagedSettings, canvasProvider, and telemetry-on-connect (v1.0.7-preview.2 sync 2/2)#147

Merged
krukow merged 4 commits into
mainfrom
upstream-sync/config-connect
Jul 14, 2026
Merged

feat(session): enableManagedSettings, canvasProvider, and telemetry-on-connect (v1.0.7-preview.2 sync 2/2)#147
krukow merged 4 commits into
mainfrom
upstream-sync/config-connect

Conversation

@krukow

@krukow krukow commented Jul 13, 2026

Copy link
Copy Markdown
Collaborator

Stacked on #146 — will be retargeted to main when that merges.

Ports three forwarding changes from upstream github/copilot-sdk v1.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 wire enableManagedSettings on session.create/session.resume/join.
  • :canvas-provider (upstream PR #1847) — {:id "..." :name "..."} (:name optional) session config identifying the canvas provider. Forwarded as wire canvasProvider on session.create/session.resume/join. Adds a ::canvas-provider spec reusing the generic ::id/::name.
  • Telemetry forwarding on the connect handshake (upstream PR #1909) — when :on-github-telemetry is registered, the SDK now also sends enableGitHubTelemetryForwarding: true on the connection-level connect handshake, so the first session's un-replayable session.start telemetry is forwarded. The pre-existing per-session flag on session.create/session.resume is retained for older CLIs.

Notes for reviewers

  • enableManagedSettings is gated on (some? ...) — an explicit false is forwarded, matching upstream which spreads config.enableManagedSettings verbatim. This differs from the true-only telemetry flag. Both new fields live on SessionConfigBase upstream, so they are registered and forwarded on create, resume, and join.
  • The connect-handshake flag uses the exact keyword :enableGitHubTelemetryForwarding because csk would otherwise mangle "GitHub" → "Github"; clj->wire is idempotent on the already-correct key.
  • Integration tests assert both the private builder output and the post-clj->wire wire params (camelCase, nested id/name), including the explicit-false and omitted cases.

Full CI is green (unit/integration, E2E, all examples, docs, jar). The intermittent test-e2e-list-sessions timeout is a known real-backend flake unrelated to this change and passes on retry.

Generated via Copilot on behalf of @krukow

krukow and others added 3 commits July 13, 2026 22:46
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

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.

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-provider on create/resume/join, with corresponding clojure.spec support.
  • Opt the connection into GitHub telemetry forwarding during the connect handshake when :on-github-telemetry is 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

@krukow krukow marked this pull request as ready for review July 14, 2026 07:44
Base automatically changed from upstream-sync/schema-1.0.70 to main July 14, 2026 09:14
…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
Copilot AI review requested due to automatic review settings July 14, 2026 09:17
@krukow krukow merged commit 1eb5a61 into main Jul 14, 2026
2 checks passed
@krukow krukow deleted the upstream-sync/config-connect branch July 14, 2026 09:19

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.

Review details

  • Files reviewed: 5/5 changed files
  • Comments generated: 1
  • Review effort level: Low

Comment thread CHANGELOG.md
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 /
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.

2 participants