Repository navigation
Upstream sync: Copilot CLI 1.0.46 - #102
Merged
Merged
Conversation
Regenerated from `@github/copilot@1.0.46` npm tarball. - .copilot-schema-version: 1.0.44-2 → 1.0.46 - schemas/api.schema.json, schemas/session-events.schema.json: re-fetched - src/github/copilot_sdk/generated/event_specs.clj: re-generated via `bb codegen` New wire shapes (post-v1.0.0-beta.3 upstream commits): - assistant.message-data: anthropic-advisor-blocks, anthropic-advisor-model, model - session.start-data: detached-from-spawning-parent-session-id - permission-request / prompt-request: extension-management, extension-permission-access permission kinds (upstream 1.0.44-3) - models.list: modelPickerCategory, modelPickerPriceCategory (upstream 1.0.46) - session.commands.respondToQueuedCommand RPC (upstream 1.0.45) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…re fields Add idiom specs (kebab-case, ?-suffixed booleans) for new wire fields introduced in upstream CLI 1.0.44-3, 1.0.45, and 1.0.46. specs.clj: - ::permission-kind: add :extension-management, :extension-permission-access - ::assistant.message-data: add anthropic-advisor-blocks, anthropic-advisor-model - ::session.start-data: add detached-from-spawning-parent-session-id - ::model-info: add model-picker-category, model-picker-price-category (kept as open strings to let unknown future categories pass through) - Add ::handled? and ::stop-processing-queue? for the new queued-command RPC client.clj: - parse-model-info: add model-picker-category and model-picker-price-category to the select-keys whitelist so they're surfaced through list-models - list-models docstring: document the two new fields Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Wraps the new `session.commands.respondToQueuedCommand` RPC introduced in
upstream Copilot CLI 1.0.45. Marked ^:experimental to mirror the upstream
Node.js SDK, which exposes it only via the generated low-level RPC layer
(no high-level helper).
session.clj:
- New respond-to-queued-command! function. Wire shape:
{sessionId, requestId, result: {handled, stopProcessingQueue?}}
Idiomatic API: {:request-id ... :handled? bool :stop-processing-queue? bool?}
instrument.clj:
- Register fdef with :handled? as :req-un (it is the discriminator
between QueuedCommandHandled and QueuedCommandNotHandled per upstream
rpc.ts) so spec instrumentation enforces presence.
mock_server.clj:
- Stub session.commands.respondToQueuedCommand returning {:success true}.
integration_test.clj:
- test-cli-1.0.46-sync-spec-additions: validate new wire/idiom specs.
- test-list-models-surfaces-model-picker-fields: model picker fields
flow through parse-model-info.
- test-respond-to-queued-command: wire shape for handled=true with
stop-processing-queue, and handled=false (stopProcessingQueue omitted).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- CHANGELOG: new "post-v1.0.0-beta.3 CLI sync" section under [Unreleased] with Added and Tracked-but-not-ported subsections. - doc/reference/API.md: list-models return shape now documents :model-picker-category and :model-picker-price-category. New Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Syncs this Clojure SDK’s wire schemas, idiom specs, and thin RPC wrappers to match upstream Copilot CLI 1.0.46, including new event/model fields and a new queued-command acknowledgment RPC.
Changes:
- Bump pinned upstream schema version to
1.0.46and regenerate wire event specs/schemas. - Extend hand-written idiom specs for new permission kinds,
session.startfield, assistant message fields, and model picker categorization. - Add experimental
session/respond-to-queued-command!, surface model picker fields inlist-models, and add integration tests + API docs.
Show a summary per file
| File | Description |
|---|---|
| test/github/copilot_sdk/mock_server.clj | Adds mock handling for the new session.commands.respondToQueuedCommand RPC. |
| test/github/copilot_sdk/integration_test.clj | Adds tests covering new specs, list-models picker fields, and queued-command wire shape. |
| src/github/copilot_sdk/specs.clj | Extends idiom specs for new CLI fields (permission kinds, session.start, assistant message, model picker fields) and queued-command params. |
| src/github/copilot_sdk/session.clj | Adds experimental respond-to-queued-command! wrapper over the new RPC. |
| src/github/copilot_sdk/instrument.clj | Adds fdef/instrumentation for respond-to-queued-command!. |
| src/github/copilot_sdk/generated/event_specs.clj | Regenerated wire event specs reflecting upstream schema changes. |
| src/github/copilot_sdk/client.clj | Surfaces :model-picker-category and :model-picker-price-category in parse-model-info / list-models. |
| schemas/session-events.schema.json | Updates upstream-fetched session events schema with new fields/unions. |
| schemas/api.schema.json | Updates upstream-fetched API schema with new RPC + model picker enums (and other upstream drift). |
| schemas/README.md | Updates documented pinned schema version. |
| .copilot-schema-version | Bumps pinned schema version to 1.0.46. |
| doc/reference/API.md | Documents model picker categorization fields and queued commands API. |
| CHANGELOG.md | Adds Unreleased entries for this upstream sync + tracked-but-not-ported notes. |
Copilot's findings
- Files reviewed: 12/13 changed files
- Comments generated: 2
krukow
marked this pull request as ready for review
May 13, 2026 07:51
value (including false) when key is present, instead of only when
truthy. Previously {:stop-processing-queue? false} was silently
dropped from the wire payload.
2. instrument.clj fdef: tighten params spec so :stop-processing-queue?
is only allowed when :handled? is true (mirrors upstream wire union
QueuedCommandHandled vs QueuedCommandNotHandled where the field
only exists on the handled=true branch).
3. integration_test: add coverage for explicit
stop-processing-queue?=false forwarding.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.
Summary
Sync the Clojure Copilot SDK with upstream Copilot CLI changes between
v1.0.0-beta.3and CLI1.0.46. Covers three post-tag commits ingithub/copilot-sdk(nodejs/):ac55e9ad): new permission kindsextension-management,extension-permission-access; newdetachedFromSpawningParentSessionIdonSessionStart.7e7dac2a): newsession.commands.respondToQueuedCommandRPC; newanthropicAdvisorBlocks,anthropicAdvisorModel,modelfields onAssistantMessage.a9c763e9): newmodelPickerCategory,modelPickerPriceCategoryfields onModelInfo.Changes
.copilot-schema-versionbumped1.0.44-2 → 1.0.46;schemas/*.jsonre-fetched;generated/event_specs.cljre-generated viabb codegen.::permission-kind,::assistant.message-data,::session.start-data,::model-infoextended. New::handled?,::stop-processing-queue?,::model-picker-category,::model-picker-price-category.parse-model-infonow surfaces:model-picker-categoryand:model-picker-price-categorythroughlist-models.^:experimental respond-to-queued-command!wrappingsession.commands.respondToQueuedCommandRPC.doc/reference/API.mdupdated (list-models, new Queued Commands section).CHANGELOG.md[Unreleased]updated with the new sync entries plus a "Tracked-but-not-ported" subsection.Tracked but not ported
These upstream changes are intentionally not in this PR:
session.tasks.sendMessage(upstream-experimental task pipeline; wholesession.tasks.*surface is not yet ported in Clojure)session_sync_levelremoval (no Clojure surface change needed)Validation
bb test→ 246 tests, 1131 assertions, 0 failuresCOPILOT_E2E_TESTS=true bb test→ 0 failures + 1 pre-existing flaky timeout intest-e2e-blob-attachment(also fails onmain, model-side latency in image-description prompt; not caused by this PR)../run-all-examples.sh→ exit 0bb validate-docs→ clean:handled?was:opt-unin the fdef, but it is the wire-required discriminator betweenQueuedCommandHandled/QueuedCommandNotHandled(per upstreamrpc.ts). Fixed: moved to:req-unininstrument.cljso instrumentation enforces it.Code-review findings table
respond-to-queued-command!fdef::handled?should be:req-un(it's the wire-required discriminator)Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com