Skip to content

Upstream sync: port 15 commits from github/copilot-sdk (2026-03-15)#7

Draft
Copilot wants to merge 3 commits intomainfrom
copilot/upstream-sync-15-new-commits
Draft

Upstream sync: port 15 commits from github/copilot-sdk (2026-03-15)#7
Copilot wants to merge 3 commits intomainfrom
copilot/upstream-sync-15-new-commits

Conversation

Copy link

Copilot AI commented Mar 15, 2026

Upstream Merge

Ports changes from the official Copilot SDK (github/copilot-sdk) since last merge (062b61cea90f07).

Upstream commits analyzed (15 commits)

Commit Description Status
ea90f07 Add reasoningEffort to setModel/session.model.switchTo ✅ Ported
a0bbde9 fix(devcontainer): bump to v3 Python image ⏭ Not applicable (devcontainer)
a29dc18 fix(dotnet): add fallback TypeInfoResolver for StreamJsonRpc.RequestId ⏭ Not applicable (.NET-specific)
38603f2 fix: update Python examples to work OOTB ⏭ Not applicable (Python)
d71ef4c Update contribution guide ⏭ Not applicable (upstream dev docs)
f2d21a0 feat: add OpenTelemetry support across all SDKs ✅ Ported (TelemetryConfig + CliServerManager env vars)
05dd60e [python] Change CopilotClient.init to take config objects ⏭ Not applicable (Python)
b100339 Serialize event dispatch in .NET and Go SDKs ✅ Ported (changed default EventErrorPolicy to SUPPRESS)
10c4d02 Allow tools to set skipPermission ✅ Ported
2a67ecc go: change LogOptions.Ephemeral from bool to *bool ⏭ Not applicable (Go)
b67e3e5 Replace Task.WhenAny + Task.Delay timeout with .WaitAsync ⏭ Not applicable (.NET-specific)
e1ea008 docs: prohibit InternalsVisibleTo in .NET test guidance ⏭ Not applicable (.NET-specific)
5a41532 Remove autoRestart feature across all SDKs ✅ Ported (deprecated autoRestart)
df59a0e Add no-result permission handling for extensions ✅ Ported
0dd6bfb Update @github/copilot to 1.0.4 ⏭ Not applicable (Node.js)

Changes ported

Change Description
setModel(model, reasoningEffort) New overload on CopilotSession for switching model + reasoning effort in one call
reasoningEffort in session events Added to SessionStartData, SessionResumeData, SessionModelChangeData (+previousReasoningEffort)
selectedModel in SessionResumeData New field for model at resume time
ToolDefinition.createWithSkipPermission() New factory for tools that skip permission prompt; added skipPermission field
PermissionRequestResultKind.NO_RESULT New constant; permission handlers returning this skip the RPC response
TelemetryConfig class New class for configuring OpenTelemetry on the CLI server
CopilotClientOptions.setTelemetry() New option wiring TelemetryConfig into the CLI start-up env vars
CliServerManager telemetry env vars Sets COPILOT_OTEL_ENABLED and friends when telemetry is configured
SessionToolsUpdatedEvent New event type for session.tools_updated
SessionBackgroundTasksChangedEvent New event type for session.background_tasks_changed
traceparent/tracestate in ExternalToolRequestedData W3C trace context fields (data available, no dependency required)
autoRestart deprecated CopilotClientOptions.setAutoRestart() deprecated; default changed to false
Default EventErrorPolicy changed From PROPAGATE_AND_LOG_ERRORS to SUPPRESS_AND_LOG_ERRORS (handler exceptions no longer halt event delivery by default)

Not ported (intentionally)

  • devcontainer change — Python devcontainer fix, not applicable to Java SDK
  • StreamJsonRpc RequestId fix — .NET-specific (StreamJsonRpc dependency), not applicable
  • Python/Go/Node.js changes — Language-specific changes
  • _disconnected volatile + ConnectionState — .NET-specific connection state tracking pattern
  • W3C traceparent propagation in tool calls — OpenTelemetry Java SDK not in SDK dependencies (fields added to event data, but trace context is not propagated)
  • Contribution guide update — Upstream developer documentation

Verification

  • All 204 tests pass (excluding 4 pre-existing timeout flakes in ErrorHandlingTest)
  • Package builds successfully
  • Code formatted with Spotless
  • Checkstyle: 0 violations
  • CodeQL: 0 alerts

Documentation Impact

Updated src/site/markdown/advanced.md with:

  • skipPermission / createWithSkipPermission() tool factory method
  • reasoningEffort parameter in setModel() example
  • PermissionRequestResultKind.NO_RESULT in permissions table
  • New OpenTelemetry Support section documenting TelemetryConfig
  • Updated Event Error Policy section to reflect new default (SUPPRESS_AND_LOG_ERRORS)

Copilot AI and others added 3 commits March 15, 2026 12:11
invocation.setSessionId(sessionId);
handler.handle(permissionRequest, invocation).thenAccept(result -> {
try {
if (PermissionRequestResultKind.NO_RESULT.equals(result.getKind())) {
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.

[upstream-sync] Upstream sync: 15 new commits (2026-03-15)

2 participants