Skip to content

[mirror] microsoft/vscode#307896 fix: improve vendor configuration handling in LanguageModelsService#1105

Open
austindyoung wants to merge 7324 commits intomainfrom
driftfence/mirror/pr-307896/latest
Open

[mirror] microsoft/vscode#307896 fix: improve vendor configuration handling in LanguageModelsService#1105
austindyoung wants to merge 7324 commits intomainfrom
driftfence/mirror/pr-307896/latest

Conversation

@austindyoung
Copy link
Copy Markdown
Owner

Automated mirror PR for DriftFence counterfactual telemetry.

Source PR: microsoft#307896
Source URL: microsoft#307896
Mirror branch: driftfence/mirror/pr-307896/latest

This PR is maintained by automation for telemetry and review links.

hawkticehurst and others added 30 commits April 3, 2026 16:01
* sessions: disable branch picker in folder mode

Keep the new chat branch picker visible when isolation switches to Folder, but disable it until Worktree is selected again. Also add regression coverage for the folder/worktree toggle and keep the disabled picker cursor consistent on hover.

Co-authored-by: Copilot <[email protected]>

* sessions: remove branch picker hover cursor tweak

Keep the branch picker behavior change, but drop the extra disabled hover cursor styling so the PR only contains the intended picker visibility/disabled-state update.

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>
…ion provider (microsoft#4964)

Categorize instruction items returned by CopilotCLICustomizationProvider
into three groups matching the core implementation:

- agent-instructions: copilot-instructions.md files
- context-instructions: files with an applyTo pattern (badge = pattern)
- on-demand-instructions: files without an applyTo pattern

Inject ICustomInstructionsService (to identify agent instructions) and
IPromptsService (to parse YAML frontmatter for applyTo/description).
Localized badge text uses 'always added' for the ** pattern.

Co-authored-by: Copilot <[email protected]>
Append repository detail metadata, or fall back to the worktree folder name, in the sessions titlebar widget so active titles render as 'Title · repo (branch/worktree)'.

Also update the sessions layout spec to document the new title format.

Co-authored-by: Copilot <[email protected]>
Lower the sessions sidebar resize floor from 270px to 170px and keep the layout specification in sync with the final sessions app behavior.

Co-authored-by: Copilot <[email protected]>
…#4968)

Wrap recently-added vscode.chat.hooks and vscode.chat.plugins API
usages with availability guards so the extension doesn't crash on
older VS Code builds that lack these proposed APIs:

- Guard onDidChangeHooks/onDidChangePlugins event subscriptions
- Add ?? [] fallback on hooks/plugins property getters
- Filter undefined enum values from supportedTypes array

Co-authored-by: Copilot <[email protected]>
Some old bad logic here caught up to us
…oggles the checkbox (microsoft#298074)

* Initial plan

* Fix clicking on settings link in bool setting toggles the checkbox

When a settings link is clicked in the description of a bool setting,
the MOUSE_DOWN handler was checking if `e.target.tagName === 'a'` to
avoid toggling the checkbox. However, settings links rendered by the
markdown renderer contain an SVG icon inside the `<a>` tag. Clicking
on the SVG makes `e.target` the SVG element (not the `<a>`), causing
the check to fail and incorrectly toggling the checkbox.

Fix by using `targetElement.closest('a')` which traverses up the DOM
tree to detect clicks within any ancestor `<a>` element.

Co-authored-by: rzhao271 <[email protected]>

* Fix type safety of e.target cast in bool setting MOUSE_DOWN handler

Use `instanceof Element` guard instead of casting to HTMLElement,
since clicks can originate from SVGElement/SVGPathElement. Also guard
against null before calling closest('a').

Co-authored-by: rzhao271 <[email protected]>
Agent-Logs-Url: https://github.com/microsoft/vscode/sessions/102850fa-98da-4c19-b23a-414cbe95323b

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: rzhao271 <[email protected]>
…imizations (microsoft#307715)

* Agent Debug Panel: pagination, incremental filtering, and service optimizations

* update

* feedback update
Remember last browser URL before disposal
* agentHost: Enable local agent host in sessions app

Co-authored-by: Copilot <[email protected]>

* comments

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>
From microsoft#304603 since it leads to not rendering parallel edits from Copilot CLI correctly

Co-authored-by: Copilot <[email protected]>
Bumps [electron](https://github.com/electron/electron) from 39.8.4 to 39.8.5.
- [Release notes](https://github.com/electron/electron/releases)
- [Commits](electron/electron@v39.8.4...v39.8.5)

---
updated-dependencies:
- dependency-name: electron
  dependency-version: 39.8.5
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Fixes microsoft#307489

Not supported yet in all browsers so we still need the existing code too but I think should fix this caese
* sessions: use generic sign out confirmation copy (microsoft#307465)

Allow the shared account sign-out action to accept dialog copy overrides so the Agents app can show a generic confirmation instead of listing extension usage.

Adds a focused test for the override path while preserving the default workbench confirmation behavior.

Co-authored-by: Copilot <[email protected]>

* sessions: scope sign out confirmation to Agents app (microsoft#307465)

Keep the Agents-specific sign-out confirmation flow inside the sessions account menu instead of extending the shared authentication sign-out action.

This restores the core workbench auth dialog behavior and limits the copy change to the sessions app surface.

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>
* Ignore file-like domain suffixes in terminal sandbox

* Handle file-like suffixes for URL and SSH domains
…oft#307783)

* Clarify sandbox-first guidance for terminal tool

* Refine terminal sandbox schema wording
…skip list

The macOS universal build fails at the 'Verify arch of Mach-O objects'
step because extensions/copilot/node_modules/@github/copilot/sdk/prebuilds/
and sdk/ripgrep/bin/ contain single-arch binaries that are dispatched at
runtime. These paths were missing from FILES_TO_SKIP in verify-macho.ts.
sandy081 and others added 30 commits April 7, 2026 21:46
…ft#308326)

* hide session type picker when there is no workspace selected

* fix compilation
…Options" (microsoft#308330)

Revert "Refactor enableThinking/reasoningEffort into IModelCapabilityOptions …"

This reverts commit 6b33538.
…308304)

Make AgentSessionAdapter.gitHubInfo a derived observable that reads
from the live GitHubPullRequestModel when available, falling back to
the extension-provided metadata icon. This lets session card PR icons
update reactively when polling detects state changes (e.g. merged,
closed) without an extension round-trip.

- Add computePullRequestIcon() to github/common/types.ts as the
  single source of truth for PR state → icon mapping
- Replace inline icon switch in _extractPullRequestStateIcon with
  a call to the shared helper
- Inject IGitHubService into CopilotChatSessionsProvider and pass
  it to AgentSessionAdapter for PR model access

Co-authored-by: Copilot <[email protected]>
* Enable `includeHookEvents: true` in SDK query options to receive hook lifecycle messages (`hook_started`, `hook_progress`, `hook_response`) for all hook event types
* Forward through OTel
* Show errors to the user

Follow up from microsoft/vscode-copilot-chat#4689
* make explore subagent configurable (porting changes from copilot chat repo

Signed-off-by: bhavyaus <[email protected]>

* Remove redundant onDidTreatmentsChange listener

---------

Signed-off-by: bhavyaus <[email protected]>
Co-authored-by: Anisha Agarwal <[email protected]>
Allow background notifs setting to be controlled via exp
* add provide APIs for chat customizations

* update
…ader (microsoft#308338)

* sessions: changes modal UX polish - remove twistie padding and add header

- Remove left-padding from force-no-twistie in the modal sidebar
  (scoped to agent-sessions-workbench only)
- Add a 'Changes' header with CountBadge to the modal sidebar list

Fixes microsoft#307705

Co-authored-by: Copilot <[email protected]>

* clamp tree layout height to avoid negative values

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>
…raccoon

Temporarily allow screenshot test failures to avoid blocking the pipeline until the screenshot test is stable.
…t#308343)

* sessions: add source property to task interaction telemetry

Add a 'source' field to logSessionsInteraction to differentiate
whether addTask/generateNewTask was triggered from the standard
menu path or the action widget dropdown. Also add missing telemetry
calls to the Action2 menu registrations.

Co-authored-by: Copilot <[email protected]>

* address review: make source optional in telemetry event

Only include the source property when explicitly provided, so
existing callers (newSession, openTerminal, etc.) don't emit
an empty string outside the typed set.

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>
* sessions: polish light theme surfaces

Adjust the sessions light-theme surface mapping so the window uses the off-white workbench surface while chat, panel, auxiliary, menus, quick picks, and related nested views use the brighter panel surface.\n\nAlso add sessions-local border fallbacks for chat inputs and response code blocks in older light themes, and keep the work scoped to the sessions app.\n\nCo-authored-by: Copilot <[email protected]>

* sessions: fix rebased light theme polish\n\nCo-authored-by: Copilot <[email protected]>
When no section is selected (the default), shows a welcome page with:
- Heading and subtitle explaining the editor
- Getting Started banner that pre-fills /agent-customizations in chat
- Card grid for categories (Agents, Skills, Instructions, Hooks, MCP Servers, Plugins)
- Each card has Browse and Generate with AI buttons

Design details:
- All interactive elements are proper buttons for keyboard accessibility
- Cards rebuild when visible sections change (harness switch)
- Welcome container has tabindex for programmatic focus
- selectedSection is now nullable (undefined = welcome page)
Register a NullChatTipService in the sessions layer to suppress the
getting-started tips that flash briefly when switching between sessions.
The empty-state tip was showing during session loading because the chat
widget temporarily has zero items before messages arrive.

Co-authored-by: Copilot <[email protected]>
…icrosoft#308387)

* Refactor enableThinking/reasoningEffort into IModelCapabilityOptions

* Strip reasoningEffort from search/execution subagent loops

* Fix stale comment referencing options.enableThinking
* agentHost: better IPC output channel fix

Co-authored-by: Copilot <[email protected]>

* comment

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>
* Improve browser compatibility with modal editor

* Update src/vs/workbench/contrib/browserView/electron-browser/overlayManager.ts

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>
Change /agent-customizations to /agent-customization in the chat
customizations welcome view getting started link.

Co-authored-by: Copilot <[email protected]>
* agentHost Adopt new tree-sitter

* Bump in web

* Fix test

* fix tests
Fix cropped install button and polish gallery list items

Move the install button out of the details footer to be a direct child
of the gallery item container. This vertically centers the button
alongside the text content via the parent's align-items:center layout.

Add explicit description styling with truncation (ellipsis) for gallery
items. Ensure the .details container has proper flex sizing with
min-width:0 to prevent overflow.

Apply outline-offset:-1px on the install button focus-visible state,
matching the existing pattern, to prevent clipping by overflow:hidden
ancestors.

Fixes microsoft#308206

Co-authored-by: Copilot <[email protected]>
…soft#308341)

* chat: remove providerApi.enabled setting and legacy code paths

The provider API is now permanently enabled. Remove the
chat.customizations.providerApi.enabled setting, the false-path
conditional that registered built-in CLI/Claude harnesses in core,
the entire fetchCoreItemsForSection legacy item-loading pipeline,
and related dead code (filterItemsForCore, applyBuiltinGroupKeys,
storageToIcon, findPluginUri, isBuiltin/extensionLabel properties,
kill-switch listener in mainThreadChatAgents2).

CLI harness code is preserved for the sessions window.

Co-authored-by: Copilot <[email protected]>

* sessions: fix chat customizations editor empty by adding built-in itemProvider

After removing fetchCoreItemsForSection (the IPromptsService fallback path),
the sessions CLI harness had no itemProvider, causing the management editor
to return [] for all sections while sidebar counts remained correct.

Fix: add a built-in IExternalCustomizationItemProvider to the CLI harness
in SessionsCustomizationHarnessService that wraps IPromptsService directly.
This uses the same provider API path as core VS Code, keeping the architecture
consistent. Also extends CustomizationHarnessServiceBase with Disposable so
subclasses can register disposables via _register.

Co-authored-by: Copilot <[email protected]>

* fix: dispose CustomizationHarnessServiceBase in tests after extending Disposable

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>
…icrosoft#308410)

* SSH agent host: fall back to default key files when agent auth fails

When using SSH agent authentication, ssh2 was only configured with the
agent  no fallback. If the key isn't loaded in the agent (commonsocket
on macOS where keys load lazily on first use), authentication fails with
"All configured authentication methods failed" even though the key
exists on disk.

Now _connectSSH also reads the first available default key file
(~/.ssh/id_ed25519, id_rsa, etc.) and passes it alongside the agent
config so ssh2 can try publickey auth as a fallback.

Also deduplicates the default key path list into a static field.

Co-authored-by: Copilot <[email protected]>

* Address review: improve error handling and add tests

- _findDefaultKeyFile now only ignores ENOENT/ENOTDIR errors and logs
  unexpected errors (e.g. EACCES) instead of swallowing them silently.
- Add 3 focused tests for the auth config fallback behavior:
  agent auth with/without a default key, and keyfile auth skipping fallback.
- Make _findDefaultKeyFile protected to allow test override.

Co-authored-by: Copilot <[email protected]>

* Fix test: check agent key presence not value

SSH_AUTH_SOCK is undefined in CI, so check that the 'agent' property
was set on the config object rather than asserting it's non-undefined.

Co-authored-by: Copilot <[email protected]>

---------

Co-authored-by: Copilot <[email protected]>
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.