Keep the SDK at the first version that supports thinking levels and avoid the unapproved install script introduced by newer releases.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Flip the defaults for two settings that have been validated behind an
opt-in flag:
- `chat.agentHost.copilot.toolSearch.enabled`
- `github.copilot.chat.preferLongContext.enabled`
Both settings are defined in more than one place, so each pair is
updated together:
- Tool search: the workbench setting registration in
`chat.shared.contribution.ts` and the agent-host schema default in
`copilotCliConfig.ts` that the renderer forwards into.
- Prefer long context: the contributed default in the Copilot extension's
`package.json` and `ConfigKey.PreferLongContext`, which throws a
`BugIndicatingError` at load if the two drift, plus the forwarded
`preferLongContextEnabled` root-config default in `agentHostSchema.ts`.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Agent Host changes for osortega/agents/checkout-contribution-check-v2-backend
* Address review feedback and fix chat input fixtures
Require non-empty owner/name before building a pull request URI, so
metadata with empty strings no longer yields `https://github.com///pull/42`
and is no longer reported as an available pull request. Cover the case in
the unit test.
Implement `getSession` on the fixture `IAgentSessionsService` stub. The
chat input session toolbar reads it when a session has file changes, which
broke the chatInput FileChanges fixtures.
Condense the context key and chat input comments, and correct the cloud
sessions comment: the guard is reachable whenever `chatSessionPullRequest`
is unknown, not just on older clients.
* chat: enable agent host defaults
Flip the Agent Host migration settings to their rolled-out defaults and enable remote Agent Host support for web clients attached to a remote extension host. Serverless web retains extension-host fallbacks. (Written by Copilot)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* test: cover web agent host disablement
Add web-remote coverage for configuration and AI disablement, and clarify the serverless web requirement in the setting description. (Written by Copilot)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* test: pin smoke session providers
Pre-seed extension-host smoke profiles before startup and update Agent Host picker labels so the suites exercise their intended providers after the default flip. (Written by Copilot)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* chat: restore agent host setting description
Keep the existing concise setting and policy description while retaining the runtime availability behavior. (Written by Copilot)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Reverts the effects of #316114, which routed conversation-history compaction
to a dedicated `trajectory-compaction` CAPI model behind
`chat.conversationCompaction.usePrismCompaction`. A plain `git revert`
conflicted and would have clobbered fixes that landed on top (#322255,
#321980, #325905), so the prism branches are removed surgically and the
production paths are left as they were.
`backgroundSummarizer.ts` and the `endpointProviderImpl` family resolution
are intentionally kept: both were extracted by #316114 but are now used by
the production path and by later commits.
Also fixes three compaction bugs:
- Foreground `/compact` stored the model's raw response, including the
`<analysis>` scratchpad the summarization prompt asks for, as the summary.
It now unwraps via `extractSummary` like the background path, falling back
to the raw text when the model omits the tags. Fixes#321200.
- Compaction requests left `ignoreStatefulMarker` unset, which resolves to
true on `ChatEndpoint` but false on `OpenAIEndpoint`, so BYOK Responses
endpoints sent `previous_response_id` and had history sliced against a
continuation the compaction prompt is not part of. Now set explicitly.
Fixes#323554.
- "Compact Conversation" discarded the user's unsent draft and attachments.
Adds an opt-in `preserveInput` submit option meaning "the input box is not
the source of this request": the draft is kept and its attachments are
omitted from the request. Applied to both the agent-host action and the
non-agent-host `github.copilot.chat.compact` path, which went through
`chat.open` and overwrote the draft via `setInput` before submitting.
Fixes#314664.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add experimental setting to disable semantic_search tool
Adds github.copilot.chat.semanticSearchTool.disabled (experiment-based,
default false) to gate the semantic_search (codebase) agent tool out of
getEnabledTools, so we can experiment with whether the tool is worth keeping.
* Also hide #codebase chat variable when semantic search is disabled
Adds a when clause to the copilot_searchCodebase tool so the #codebase
chat variable is hidden when github.copilot.chat.semanticSearchTool.disabled
is set, and updates the setting description to match. Addresses PR review
feedback about the description/behavior mismatch.
* Add Claude Opus 5 system prompt
Adds a minimal Opus 5 prompt behind `chat.claudeOpus5Prompt.enabled`,
following Anthropic's guidance for the Claude 5 generation: describe the
environment as facts rather than rules, put the behavioral weight into
scope and correction guidance, and drop the rule lists the model now
handles with its own judgement. Off by default, falling back to the
Claude 4.6 Opus prompt.
Also:
- Remove the Opus 4.8 and Sonnet 5 prompts and their settings. Both
models now use the Claude 4.6 prompts.
- Add comment-etiquette guidance to the shared optimized reminder, so it
reaches every Claude 4.6+ family rather than a single prompt.
- Enable tool search for claude-opus-5.
* Reword Opus 5 prompt to remove borrowed phrasing
The prompt had picked up wording from a reference system prompt during
drafting. Rewrites every affected passage in original wording, keeping
the guidance intact. Verified no shared word sequence of five or more
remains between the branch's added lines and that reference.
* 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>