Skip to content

[upstream-sync] Port new event data fields from @github/copilot 1.0.4 (upstream PR #796)#55

Closed
github-actions[bot] wants to merge 1 commit intomainfrom
upstream-sync/2026-03-12-267faae598c6fa46
Closed

[upstream-sync] Port new event data fields from @github/copilot 1.0.4 (upstream PR #796)#55
github-actions[bot] wants to merge 1 commit intomainfrom
upstream-sync/2026-03-12-267faae598c6fa46

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

Summary

This PR ports spec changes from upstream PR #796 ("Update @github/copilot to 1.0.4"), which was a codegen update that added new fields and documentation to the session event types.

Upstream Changes Ported

New session event data fields

session.start event data (::session.start-data):

  • :reasoning-effort — reasoning effort level at session start
  • :already-in-use? — whether the session was already in use by another client
  • :host-type — hosting platform of the git repo ("github" or "ado")
  • :head-commit — head commit of current git branch at session start
  • :base-commit — base commit of current git branch at session start

session.resume event data — new ::session.resume-data spec:

  • :event-count (required) — total persisted events at resume time
  • :selected-model, :reasoning-effort, :already-in-use?, :host-type, :head-commit, :base-commit (all optional)

session.model_change event data — new ::session.model_change-data spec:

  • :new-model (required) — newly selected model identifier
  • :previous-model, :reasoning-effort, :previous-reasoning-effort (all optional)

user.message event data — new :blob attachment type:

  • :data — base64-encoded content
  • :mime-type — MIME type of the inline data
  • :display-name (optional) — user-facing display name

Changes Skipped

Shell exec/kill RPC methods (session.shell.exec, session.shell.kill): These are new internal RPC types in the generated RPC layer. The Clojure SDK does not expose raw session RPC methods in its public API, so these are not ported. If a higher-level shell execution API is warranted, it should be a separate feature.

reasoningEffort type widening in SessionModelSwitchToParams: Changed from specific union to string in the RPC layer only — internal change.

Testing

  • Changes are additive (new optional spec fields, new spec definitions)
  • No existing spec behavior changed
  • Existing tests continue to pass (specs only add new optional fields)

Files Changed

  • src/github/copilot_sdk/specs.clj — new specs and updated event data specs
  • CHANGELOG.md — documented changes under [Unreleased]

Upstream Reference

Generated by Upstream Sync Agent ·

  • expires on Mar 19, 2026, 2:10 PM UTC

Port upstream PR 796 changes to session event data specs:
- session.start: add :reasoning-effort, :already-in-use?, :host-type,
  :head-commit, :base-commit optional fields
- session.resume: add new session.resume-data spec with :event-count (req),
  plus :selected-model, :reasoning-effort, :already-in-use?,
  :host-type, :head-commit, :base-commit optional fields
- session.model_change: add new session.model_change-data spec with
  :new-model (req), :previous-model, :reasoning-effort,
  :previous-reasoning-effort optional fields
- user.message: add :blob attachment type with :data (base64), :mime-type,
  optional :display-name

Shell exec/kill RPC methods from PR 796 are skipped as they are internal
generated RPC types not exposed through the Clojure SDKs public API.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@krukow krukow closed this Mar 16, 2026
krukow added a commit that referenced this pull request Mar 16, 2026
…vent specs

Ports 6 upstream PRs from github/copilot-sdk into a single batch:

- **Event data specs** (upstream #796): Add blob attachment type, session.resume
  and session.model_change event data specs, new session.start fields
- **skipPermission** (upstream #808): Tool definitions support :skip-permission?
  to bypass permission prompts
- **Deprecate autoRestart** (upstream #803): :auto-restart? is now deprecated
  and has no effect; maybe-reconnect! is a no-op
- **Optional permission in join-session** (upstream #802): :on-permission-request
  is optional in join-session, defaults to returning {:kind :no-result}
  optional opts map with :reasoning-effort
- **OpenTelemetry support** (upstream #785): :telemetry client option configures
  OTEL env vars on CLI process; :on-get-trace-context injects W3C Trace Context
  into session RPCs and tool invocations

Critical review improvements over auto-generated PRs #55 and #57:
- join-session-config reuses resume-session-config-keys (avoids key drift)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
krukow added a commit that referenced this pull request Mar 16, 2026
…vent specs

Ports 6 upstream PRs from github/copilot-sdk into a single batch:

- **Event data specs** (upstream #796): Add blob attachment type, session.resume
  and session.model_change event data specs, new session.start fields
- **skipPermission** (upstream #808): Tool definitions support :skip-permission?
  to bypass permission prompts
- **Deprecate autoRestart** (upstream #803): :auto-restart? is now deprecated
  and has no effect; maybe-reconnect! is a no-op
- **Optional permission in join-session** (upstream #802): :on-permission-request
  is optional in join-session, defaults to returning {:kind :no-result}
  optional opts map with :reasoning-effort
- **OpenTelemetry support** (upstream #785): :telemetry client option configures
  OTEL env vars on CLI process; :on-get-trace-context injects W3C Trace Context
  into session RPCs and tool invocations

Critical review improvements over auto-generated PRs #55 and #57:
- join-session-config reuses resume-session-config-keys (avoids key drift)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant