Commit Graph

160519 Commits

Author SHA1 Message Date
Lee Murray
c648fff081 Merge pull request #324197 from microsoft/mrleemurray/casual-coral-marlin
Style overrides: Adjust title bar height and padding for better alignment
2026-07-03 14:37:17 +01:00
Aiday Marlen Kyzy
27dba7c716 early return if dom node is not connected (#324216) 2026-07-03 15:13:35 +02:00
Aiday Marlen Kyzy
8ef54d7c28 fix: making insertFinalNewLine work if last line contains whitespaces (#324194)
* fix: making insertFinalNewLine work if last line contains whitespaces

* remove unused line of code
2026-07-03 15:11:39 +02:00
Lee Murray
3ef4fd9a04 Style overrides: improve scroll shadows (#324210)
style: enhance scroll shadows for editor and panel areas

Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>
Co-authored-by: Copilot <copilot@github.com>
2026-07-03 12:42:19 +00:00
Syed Osama Ali Shah
2ba2224839 Zero-pad percent-encoding for code points below 0x10 in UriTemplate (#323012)
fix: zero-pad percent-encoding for code points below 0x10 in UriTemplate

pctEncode emitted '%' + chr.toString(16) without padding, so a code point < 0x10 produced a single-digit escape (e.g. tab -> %9, newline -> %0A becomes %A, CR -> %D) instead of the RFC 3986/6570 two-digit form. The result is a malformed URI that decodeURIComponent rejects with "URI malformed". UriTemplate is used to resolve MCP and agent resource URIs, where a variable value containing a control character would yield a broken URL.

Zero-pad to two hex digits with padStart(2, '0'); this is a no-op for code points >= 0x10, so existing escapes (%20, %21, ...) are unchanged. Adds a regression test.
2026-07-03 12:42:14 +00:00
Henning Dieterichs
629ea48932 Fixes and improves agentFeedback fixtures (#324208) 2026-07-03 12:39:55 +00:00
mrleemurray
e7d36d1d76 style: Update title height in PartLayout and sync comments in padding.css for consistency
Co-authored-by: Copilot <copilot@github.com>
2026-07-03 13:10:35 +01:00
mrleemurray
9960bb626b fix: Update PartLayout to remove titleArea dependency for improved layout handling
Co-authored-by: Copilot <copilot@github.com>
2026-07-03 13:08:23 +01:00
mrleemurray
b30def48c3 fix: Add style override for title height in PartLayout to ensure consistent layout
Co-authored-by: Copilot <copilot@github.com>
2026-07-03 13:01:31 +01:00
Benjamin Christopher Simmonds
d769f0deca Surface sessions requiring input in the agents titlebar (#324203)
* sessions requiring input

* Dismiss blocked-sessions dropdown + context-specific requires-input messages

- Close the dropdown on Escape or an outside click (contextView onDOMEvent)
- Show a specific titlebar message when all blocked sessions share one reason (terminal approval, failing CI, question, unresolved comments); fall back to the generic 'N sessions require input' for a mix
- Animate the first requires-input appearance (preserve the blink class across redundant re-renders)
2026-07-03 11:47:18 +00:00
mrleemurray
47a1b53cbe style: Remove commented-out margin styles for cleaner code 2026-07-03 12:44:34 +01:00
Sandeep Somavarapu
779f321a06 sessions: move subagents into the Conversations menu (#324199)
Removes the standalone "Subagents" dropdown above the chat input and
instead surfaces a chat's subagents as a separate group at the bottom of
the Conversations menu, scoped to the currently-active chat.

- Delete SessionAgentsControl and its CSS; drop it from ChatView.
- SessionConversationsMenuContribution now registers the active chat's
  subagents in a `2_subagents` group below the session's chats.
- Add SessionActiveChatHasSubagentsContext so the Conversations menu
  surfaces even when the parent is the only committed chat.
- Show the chat tab strip as soon as the session has any subagent, so
  the Conversations menu moves to the tab bar.
- Add a regression test asserting a spawned subagent chat is resolvable
  from the inline pill resource via parseChatUri (the Open-Subagent
  contract), guarding against the pill/catalog identity desyncing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-03 11:44:18 +00:00
Lee Murray
95cbbdfd54 a11y: Update warning icon colors in 2026 Light theme (#324192)
* theme: add foreground color for problems warning icon in 2026 Light theme
css: remove opacity adjustments for warning and info labels in chat widget

* theme: update foreground color for problems warning icon in 2026 Light theme

Co-authored-by: Copilot <copilot@github.com>

---------

Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>
Co-authored-by: Copilot <copilot@github.com>
2026-07-03 11:42:51 +00:00
Giuseppe Cianci
cc3f68b765 Merge pull request #324064 from microsoft/harden-node-modules-cache
Guard node_modules cache against missing native optional-dep packages
2026-07-03 13:18:05 +02:00
mrleemurray
a5dfea533e style: Remove top margin from activity bar in floating panels for improved alignment 2026-07-03 12:11:54 +01:00
mrleemurray
5fc4fe208f fix: Update PartLayout to include titleArea for improved layout handling 2026-07-03 12:09:55 +01:00
mrleemurray
47b8a7780a style: Adjust title bar height and padding for better alignment in workbench
Co-authored-by: Copilot <copilot@github.com>
2026-07-03 12:01:39 +01:00
Dirk Bäumer
2d0877ddee Make grep the new default search tool output format (#324186) 2026-07-03 10:06:31 +00:00
Benjamin Christopher Simmonds
c2c01cfcf3 sessions: use default cursor in chat list gutters (#324185)
The chat list rows span the full viewport width while the item container is centered with a max-width, leaving gutters on either side. The base list stylesheet sets cursor: pointer on rows, so the gutters showed a pointer cursor even though the item container uses cursor: default. Force default cursor on chat list rows so the gutters match.

Fixes #324173

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-03 09:48:56 +00:00
Lee Murray
066d17a9d7 a11y: Update placeholder foreground colors in input fields for dark and light themes (#324183)
fix: update placeholder foreground colors in input fields for dark and light themes

Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>
2026-07-03 09:37:01 +00:00
Ralph Feltis
46660cd9c2 Add sshd to devcontainer features (#322971) 2026-07-03 09:23:47 +00:00
Lee Murray
ebed063207 a11y: Update scrollbar and minimap slider colors for better visibility (#324179)
fix: update scrollbar and minimap slider colors for better visibility

Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>
2026-07-03 09:22:51 +00:00
Giuseppe Cianci
6e0b2e9398 Guard node_modules cache against missing native optional-dep packages
Some deps ship their native binary in a per-platform package declared as an
*optional* dependency of a small base package (e.g. `@openai/codex` ->
`@openai/codex-<platform>-<arch>`, `@anthropic-ai/claude-agent-sdk` ->
`@anthropic-ai/claude-agent-sdk-<platform>-<arch>`). npm does not fail when an
optional dependency can't be installed, so a transient hiccup can leave the base
package present but the per-platform package missing — and that broken tree then
gets frozen into the shared node_modules cache and served to every consumer
(see #323881).

Add build/azure-pipelines/common/checkNativeOptionalDeps.ts and run it after
`npm ci` in the linux, macOS and windows cache-build jobs (before the cache is
saved). For each configured base package that is installed, it asserts the
matching `<base>-<platform>-<arch>` package exists, and fails the job otherwise
so a poisoned cache is never saved.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-03 11:13:03 +02:00
Ulugbek Abdullaev
0dcb0ecd63 Remove the system-wide keybindings first-run dialog (#324045)
* Remove the system-wide keybindings first-run dialog

The first-run notice could appear in multiple windows at once on startup, and
the single-window election meant to prevent that was racy across concurrently
syncing renderers. Rather than harden the election, remove the dialog entirely:
the feature is always on and users who opt a keybinding into "systemWide" know
what they are doing.

This deletes the whole notice path, which existed only to serve the dialog:
- renderer: drop the first-run notification, the acknowledged-storage gate, and
  the IDialogService/IStorageService deps; sync() now just warns about ignored
  when-clauses and pushes to the main process.
- main process: drop the elected-window bookkeeping so INativeSystemWideKeybindingResult
  only reports failures.
- update the systemWide keybindings.json schema description and drop the
  now-obsolete election unit tests.

Global registration and trigger routing are unchanged.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Add a specification doc for system-wide keybindings

Co-locate an architecture/spec document next to the renderer contribution so
future work has the full feature context (user contract, renderer<->main-process
flow, the systemWide flag plumbing, design rationale, tests, and gotchas).

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-07-03 13:48:30 +05:00
Sparsh :)
190016f576 sessions: fix endless spinner in Changes view for non-git folders (#324132) 2026-07-03 08:31:29 +00:00
vs-code-engineering[bot]
2ea5be85d3 Update distro commit (main) (#324135)
Update distro commit to a78eb828

Co-authored-by: vs-code-engineering[bot] <122617954+vs-code-engineering[bot]@users.noreply.github.com>
2026-07-03 07:13:04 +00:00
Dmitriy Vasyura
f27403e3a9 Fix tool selection in Local harness (#324157) 2026-07-03 06:31:59 +00:00
Justin Chen
cd02954cae fix mismatched spinners in chat (#324140)
* fix mismatched spinners in chat

* Address PR feedback: use DOM.EventType.ANIMATION_START and skip non-keyframe animations

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-03 06:15:08 +00:00
Dileep Yavanmandha
4d7e3ad4fc Prompt update for gpt-5.6 (#324144)
* Gate Responses API prompt cache breakpoints

* updating prompts for gpt5
2026-07-03 04:40:32 +00:00
Dmitriy Vasyura
4e6fd6e85e Dispose autorun listeners upon completion of operations (#324035) 2026-07-02 19:08:59 -07:00
Vritant Bhardwaj
f85c531764 Merge pull request #324121 from microsoft/agents/investigate-unit-test-failure-fix
Don't crash BYOK/custom models when the response hits the length limit
2026-07-02 17:46:58 -07:00
Tyler James Leonhardt
1df3ac5711 Bump @anthropic-ai/claude-agent-sdk to 0.3.198 (#324105)
* Bump @anthropic-ai/claude-agent-sdk to 0.3.198

Bumps the pinned Claude agent SDK from 0.3.187 to 0.3.198 following
build/agent-sdk/README.md: updates the exact version in the build
agent-sdk pin and its lockfile, plus the matching root devDependency
types pin and root lockfile so shipped types and the build-time pin
stay in lockstep.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* Implement Query.reinitialize in test fakes

0.3.198 adds reinitialize() to the SDK's Query interface. Add the
matching stub to the three test doubles that implement Query
(FakeQuery, RoundTripQuery, ImmediatelyDoneQuery), following each
file's existing "not modeled" pattern.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 00:41:41 +00:00
Connor Peet
2a41b4f7de agentHost: sync .vscode/mcp.json servers, enable SDK config discovery (#324129)
Refine how VS Code-configured MCP servers reach the agent host:

- resolveCustomizationRefs now excludes workspace-discovered MCP servers
  by default, since the agent host discovers workspace `.mcp.json` itself
  (via enableConfigDiscovery). The exception is `.vscode/mcp.json`, which
  the SDK does not discover: those servers are synced explicitly, but only
  when their config resolves without user interaction. Resolution uses
  IConfigurationResolverService.resolveAsync + ConfigurationResolverExpression
  and skips servers that reference interactive variables (${input:…},
  ${command:…}) or fail to resolve.

- Enable `enableConfigDiscovery` when creating/resuming Copilot agent-host
  sessions so the host discovers workspace `.mcp.json` on its own.

- Move MCP_CONFIGURATION_COLLECTION_ID_PREFIX and add
  McpCollectionDefinition.isWorkspaceDiscovered / isVscodeMcpJson helpers to
  mcpTypes so the collection-classification logic lives in one place.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-03 00:41:08 +00:00
Connor Peet
f15105f6ed Merge pull request #324125 from microsoft/conno/update-distro-commit-5b10bb5
Update distro commit to 5b10bb5b3d400cf801a343ebe7ed2e9835df5ab4
2026-07-02 16:48:36 -07:00
Vritant Bhardwaj
42f7092d1f Merge pull request #324117 from microsoft/agents/investigate-failing-unit-test-fix
Enable provider-level ZDR for OpenAI BYOK and surface Responses API stream errors as terminal failures
2026-07-02 16:33:48 -07:00
Connor Peet
279759b805 Update distro commit to 5b10bb5b3d400cf801a343ebe7ed2e9835df5ab4
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-02 16:19:03 -07:00
Vritant Bhardwaj
86cb95dd34 Merge branch 'main' into agents/investigate-failing-unit-test-fix 2026-07-02 16:18:18 -07:00
Connor Peet
f3ae801a18 chat: accept local folder paths in Install Plugin from Source (#324120)
* Support local folder paths in Install Plugin from Source

"Install Plugin from Source" now accepts local folder paths (file:// URIs,
absolute paths, and ~-prefixed paths) in addition to GitHub shorthand and
git URLs. Local folders are inspected to route them to the right setting: a
marketplace (has marketplace.json) is registered under chat.plugins.marketplaces,
while a standalone plugin (has a single-plugin manifest) is registered under
chat.pluginLocations.

Also consolidates installPluginFromSource and installPluginFromValidatedSource
into a single result-returning installPluginFromSource; callers now surface
source-level error messages themselves.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address review: verify trust before persisting local marketplace

Declining the trust prompt for a local folder that is a marketplace no longer
persists it under chat.plugins.marketplaces; the trust check now runs before
config is written, mirroring the git path. Also fixes a chat.plugins.marketplaces
doc typo in AGENTS_PLUGINS.md.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-02 23:08:46 +00:00
Zhichao Li
db378ea71a Merge pull request #324092 from microsoft/zhichli/restr1st
agentHost: emit enhanced GH request.options.tools telemetry
2026-07-02 16:02:40 -07:00
Kyle Cutler
da2446c9c6 Fix browser behaviors in agents window (#324118) 2026-07-02 15:54:49 -07:00
Connor Peet
aaad32718f chat: show "Starting MCP servers…" hint for slow agent-host startup (#324103)
* chat: show "Starting MCP servers…" hint for slow agent-host startup

When a new agent-host turn begins and one or more MCP servers stay in the
`starting` state past a short grace period (5s) without any content arriving
from the host, surface a lightweight progress hint listing the servers still
starting. The hint is observable-backed: it updates as servers finish and hides
itself once every server has started, content starts being received, or the
turn ends — whichever happens first. There is no interactive affordance (no
"Skip").

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-07-02 22:51:32 +00:00
Zhichao Li
588b94e113 chore(agentHost): clarify enhanced-telemetry enabled log wording
Keeps a normal, non-technical info log of the restricted/enhanced telemetry opt-in state (no rt value).
2026-07-02 15:46:52 -07:00
vritant24
32bd236e4f Add handling for truncated responses in CopilotLanguageModelWrapper 2026-07-02 15:41:02 -07:00
Zhichao Li
054d824004 chore(agentHost): remove temporary restricted-telemetry diagnostics
Verified end-to-end on an rt=1 enterprise account: rt/tid resolved from the minted
CAPI Copilot token, endpoint routed to the enterprise host, request.options.tools
emitted to the enhanced iKey and accepted (HTTP 200). Reverts the emit log to trace
and drops the rt-debug/POST-accepted diagnostics.
2026-07-02 15:40:52 -07:00
vritant24
2159c38447 Fix error handling in OpenAIResponsesProcessor to return terminal ServerError completion 2026-07-02 15:13:17 -07:00
vritant24
a5bef0183f Add zero data retention configuration and tests for OpenAI provider 2026-07-02 15:13:01 -07:00
Zhichao Li
ecd5165bd0 fix(agentHost): source rt/tid from the minted CAPI Copilot token, not the OAuth token
The restricted-telemetry gate read rt/tid from copilotAgent's _githubToken, which
is the GitHub OAuth token (no rt/tid claims) — so rt was always false and enhanced
telemetry never sent for anyone. Source them from the minted CAPI Copilot session
token instead (copilotApiService.resolveRestrictedTelemetryContext), mirroring how
the Copilot extension reads token.getTokenValue('rt'|'tid'). Resolved async on auth
with a synchronous disabled default; also fixes copilot_trackingId (tid) never being
set. Keeps a temporary rt-debug log for verification (to be removed before merge).
2026-07-02 15:07:02 -07:00
Kyle Cutler
688be17ad2 Enable remote proxying by default in Insiders (#324109) 2026-07-02 22:04:07 +00:00
Ladislau Szomoru
36cf07cc66 AgentHost - add table to store reviewed files (#324116) 2026-07-02 22:03:45 +00:00
Kyle Cutler
40791f14eb Browser: don't oversize the placeholder when DevTools is docked inline (#324108) 2026-07-02 21:51:37 +00:00