* Forward CAPI assignment context to VS Code core telemetry
Add a proposed API scode.env.setTelemetryExperimentProperty that
allows trusted built-in extensions to set experiment properties on
VS Code's core telemetry pipeline.
The Copilot extension uses this to forward capi.assignmentcontext
(received via X-Copilot-Experiment and x-copilot-api-exp-assignment-context
response headers from CAPI) so that it appears on all VS Code telemetry
events, not just the Copilot extension's own events.
Flow:
1. CAPI responds with experiment headers
2. Copilot extension extracts them into serverExperiments
3. TelemetryService.setSharedProperty('capi.assignmentcontext', value)
4. Override forwards to vscode.env.setTelemetryExperimentProperty()
5. MainThreadTelemetry calls ITelemetryService.setExperimentProperty()
6. Property appears on all subsequent VS Code telemetry events
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* fix: resolve CI failures - eslint and Copilot typecheck
- Remove 'VS Code' from proposed API JSDoc (eslint vscode-dts-vscode-in-comments rule)
- Use type assertion for proposed API call in Copilot extension to avoid
TS2339 since the extension's tsconfig doesn't include proposed .d.ts files
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* fix: replace 'as any' with typed Record cast for eslint compliance
- Use Record<string, unknown> instead of 'as any' to satisfy no-explicit-any
- Narrow API JSDoc to per-window scope (matching existing TAS pattern)
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* Few updates
---------
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Vijay Upadya <41652029+vijayupadya@users.noreply.github.com>
The useMessagesApi branch of OpenAIEndpoint.createRequestBody never called
_applyReasoningEffort, so a custom endpoint declaring supportsReasoningEffort
never received the selected effort. Forward it like the Responses and Chat
Completions branches, and add a 'messages' reasoningEffortFormat that writes
the Anthropic Messages shape output_config.effort (the default on /messages,
overridable via reasoningEffortFormat). The scrub merges into output_config
instead of replacing it so sibling fields (e.g. structured output format)
survive.
Fixes#325121
Gates the collapse-to-long-context-only behavior behind the new
github.copilot.chat.preferLongContext.enabled setting (default off), so
models with a free long context window (e.g. Claude) show both the default
and long context options again. Covers the main chat picker, CLI picker, and
the Agents window.
Fixes#323936
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add ClaudeSonnet5Prompt (Sonnet 4.6 base + scope/interface/effort append) via new renderAppendedInstructions hook, gated behind chat.claudeSonnet5Prompt.enabled
- Rename Claude 4.7 Opus prompt/config to 4.8, add completionDiscipline, plan/explain restraint, tool triggering and terminal run-once guidance; gated behind chat.claude48OpusPrompt.enabled
- Opus 4.7 now falls through to the generic optimized Opus prompt
- Clamp maxOutputTokens to the context window and maxInputTokens to the
remaining budget in resolveModelTokenLimits so limits stay consistent
- Require either maxInputTokens or contextWindow via anyOf in the custom
model schemas (customoai, customendpoint, azure)
- Update OpenRouter spec header to describe the fixed behavior
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
chore: update @github/copilot and @github/copilot-sdk to latest versions
- Bump @github/copilot from ^1.0.67 to ^1.0.69-0 in package.json and package-lock.json.
- Update @github/copilot-sdk from ^1.0.5 to ^1.0.6-preview.1 in package.json and package-lock.json.
- Refactor copilotcliSessionService.ts to use the new AutoModeSessionManager directly, removing compatibility fallback.
- Remove compatibility tests for AutoModeSessionManager in copilotCliSessionService.spec.ts.
- Adjust npm configuration in remote/.npmrc.
* Update @github/copilot and @github/copilot-sdk to version 1.0.67 and 1.0.5-preview.1 respectively
- Updated package.json and package-lock.json in both root and remote directories to reflect the new versions of @github/copilot and @github/copilot-sdk.
- Modified copilotSessionLauncher.ts to include new hooks in the Copilot session configuration.
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Update @github/copilot and related dependencies to version 1.0.66-2
- Bumped @github/copilot to version 1.0.66-2 in package.json and package-lock.json.
- Updated optional dependencies for various platforms to match the new version.
- Adjusted @github/copilot-sdk to version 1.0.5-preview.0.
- Enhanced filtering logic in copilotCLITools.ts to include additional attachment types.
* Enhance attachment rendering in CopilotCLISession with additional GitHub attachment types
* Remove optional suppressResumeEvent property from ICopilotResumeSessionLaunchPlan interface
---------
Co-authored-by: Anthony Kim <62267334+anthonykim1@users.noreply.github.com>
* Add Responses API cache control markers
* Refactoring code
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Gate Responses API cache breakpoints by model support
* Disable Responses API reasoning summaries
* reverting cache commits
* Remove Responses API cache breakpoint handling
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
- Allows custom endpoint models to replace Copilot sampling defaults so providers with fixed parameter requirements can accept requests.
- Supports explicit parameter omission, which lets model servers apply required defaults instead of receiving incompatible generated values.
- Preserves explicit per-request options and applies the same behavior across Chat Completions, Responses, and Messages APIs.
Fixes#321514
(Commit message generated by Copilot)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* chore: bump electron@42.4.0
* chore: apply temp dir workaround for short paths
* chore: use 24.15.x for CI node
* chore: update nodejs build
* chore: bump electron@42.5.0
* fix: unblock playwright install on node 24.17
Node 24.16+ made Readable pause()/resume() a no-op on destroyed streams
which makes yauzl 2.x / extract-zip 2.x and older playwright extraction
hang forever.
- extensions/copilot: add "yauzl": "^3.3.1" override (was missed by #318682)
so electron and @vscode/vsce no longer resolve the broken yauzl 2.10, fixing the
hung `npm ci` in the Copilot and Extract chat-lib pipelines.
- extensions/copilot: bump electron ^39.8.5 -> ^42.5.0 so its install
script uses the native @electron-internal/extract-zip instead of extract-zip.
- bump @playwright/test ^1.56.1 -> ^1.61.1 so `playwright install`
uses the fixed extractor, unblocking the "Download Electron and
Playwright" step in all electron test pipelines.
* chore: update build
* agentHost: fix macOS sandbox smoke sentinel parsing
On macOS CI, the AgentHost sandbox smoke test resolves the shell to
/bin/sh, which uses the sentinel-based completion path. In that path, the
parser could consume the echoed sentinel command text
(`<<<COPILOT_SENTINEL_..._EXIT_$?>>>`) before the real numeric marker
arrived, causing a false `Exit code: -1` failure even though the command
later completed successfully.
Harden the sentinel parser to ignore echoed/non-numeric sentinel text
and use the latest complete numeric marker instead. Also force the
macOS AgentHost sandbox smoke test to use /bin/sh and assert that in the
suite log so local runs exercise the same path as CI.
Adds a regression test for echoed sentinel command text.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* chore: update screenshot baseline after playwright bump
* chore: bump distro
* chore: fix typecheck
* chore: bump distro
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Bump Copilot CLI packages to @github/copilot@1.0.64-1 and @github/copilot-sdk@1.0.3
* Resolve Agent Host Copilot CLI through @github/copilot/bin.copilot
* Materialize @github/copilot/sdk from @github/copilot-<platform> in extension postinstall
* Package @github/copilot-<platform>/copilot for Agent Host and linuxmusl
* Exclude Copilot optional native payloads from extension package
* Scan @github/copilot-*/copilot for Linux package dependencies
* Tighten Copilot SDK 1.0.64-1 attachment and RPC typings
* Increase Copilot SDK native binary scan test timeout
* Update amd64 deb deps for @github/copilot-linux-x64/copilot
* Update arm64 rpm deps for Copilot package layout
* Update x64 rpm deps for @github/copilot-linux-x64/copilot
* Try to fix windows smoke test
* Try to fix platform runtime files for agent host
* exclude copilot computer.node from agent host packaging
* Another attempt to try to get packaging right
* Should only try to load 1.0.64-1
* Try to fix packaing for windows, macos, deb deps
* Update armhf/arm64 deb and x64 rpm Copilot dependency baselines
* Copilot darwin ripgrep universal merge and arm64 rpm deps
* Restore target Copilot SDK prebuilds for built-in extension packaging
* see if changes to gulpfile.reh.ts would help
* dont mess with formatting
* Launch copilot cli from platform index.js and exclude SEA