Commit Graph
161035 Commits
Author SHA1 Message Date
vs-code-engineering[bot]GitHubvs-code-engineering[bot] <vs-code-engineering[bot]@users.noreply.github.com>
7830970d5c [cherry-pick] test: skip flaky chat sandbox home-read smoke test (#325584)
Co-authored-by: vs-code-engineering[bot] <vs-code-engineering[bot]@users.noreply.github.com>
2026-07-13 10:10:25 +00:00
vs-code-engineering[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
a4ca0a5e14 Bump version to 1.130.0 (#325543)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-13 10:04:15 +00:00
e864247bca Update chat-turn-preview action icon sizing and padding (#325582)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-13 10:03:04 +00:00
f390b25a75 sessions: soften blocked-session titlebar accent and fix blink on session switch (#325553)
* sessions: soften blocked-session titlebar accent and fix blink on session switch

The "N sessions require input" titlebar pill used a full-strength orange (solid border + 14%/22% fill + a 45% blink peak) that felt too heavy. Lighten it so the orange label carries the signal while the fill (7%/12%) and border (mixed with the command center border) stay subtle, and gentle the blink peak to 26%.

Also fix the attention blink firing when merely switching the active session. Blink detection read visibleSessions untracked (a snapshot at block-detection time), so a session whose block was detected a moment before its own view became visible got a queued blink that later fired when the user navigated away and re-surfaced it. Track visibility in the blink-detection autorun instead: a blink is only ever queued for a session missing from the previous blocked set (a real new block), so a visibility-only change can only drop pending blinks, never start one. A blocked session the user can already see (excluded from the count) is dropped from the pending set, so switching to a blocked session and back never blinks.

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

* sessions: trim verbose comments and sync LAYOUT.md

Address PR review: shorten the class/property/autorun/test comments to the repo's concise limit, and update the LAYOUT.md Blocked Sessions section to describe visibility-suppressed blink detection and the softened accent.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-13 09:04:11 +00:00
a3db400ed4 sessions: scope chat input pills to workspace changes (#325548)
Filter agent-host last-turn changes for chat input status pills to files inside the session workspace or worktree so external file edits do not inflate the changes count or preview list.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-13 08:54:40 +00:00
Ladislau SzomoruandGitHub be6ed528a4 Agents - fix primary action hover (#325541) 2026-07-13 07:26:45 +00:00
1f5097a1cf Agents window: revert accidental code-block word-wrap; cap Codex approvals picker width (#325472)
* Agents window: revert accidental response code-block word-wrap

The word-wrap on response code blocks (`codeBlockRenderOptions` in the
sessions chat view) was an earlier mis-fix for the "picker too wide" bug
that shipped by accident. It wraps code blocks for every agent-host
provider in the Agents window and was never requested; the correct fix
for the original bug caps the Codex approvals picker width instead.

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

* Codex agent host: cap approvals picker width so preset descriptions wrap

The Codex "Approvals" preset picker rendered its long per-preset
descriptions on a single line, stretching the popup far wider than the
chip. Give `AgentHostSessionEnumPicker` an overridable `_getListOptions()`
hook (threaded into `IActionWidgetService.show`) and have the Codex
approvals picker return a bounded `maxWidth` (360) plus a scoped class
whose CSS lets `.detail` wrap. `detailItemHeight` (92) reserves room for
the tallest wrapped description across platform UI fonts so nothing clips
in the fixed-height virtual list. The base hook returns undefined, so all
other pickers are unaffected.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-13 09:17:59 +02:00
3afd9a3686 Make file changes counts the view-all button in chat turn pills (#325538)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-13 07:01:40 +00:00
Don JayamanneandGitHub 5f0c346f84 Suppress edge fades for interactive input editors to maintain a flat background (#325477)
* Suppress edge fades for interactive input editors to maintain a flat background

* Fix linter issues
2026-07-13 06:46:21 +00:00
Don JayamanneandGitHub 1ee91b3d8a Add CopilotSlashCommandProvider for managing runtime slash commands and update related classes (#325478)
* Add CopilotSlashCommandProvider for managing runtime slash commands and update related classes

* Fix typo in CopilotSlashCommandProvider variable name and improve logging message format
2026-07-13 06:36:30 +00:00
Henning DieterichsandHenning Dieterichs 0370426b56 Sets breadcrumbs.showEditorType to false by default.
The editor context menu has now a "Reopen Editor With" submenu, which makes it already much easier to switch between different editor types.
2026-07-13 08:17:43 +02:00
RoboandGitHub 9c6cacdae7 fix: asar resolution under windows junction (#325492) 2026-07-13 05:49:20 +00:00
f50ecf404d fix: sandbox smoke test configuration race (#325532)
Restart the application after updating sandbox settings so
configuration changes are loaded before running the allowRead
and allowNetwork probes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-13 05:32:44 +00:00
323fd70ed6 Preserve chat input text typed while a session is loading (#325404)
* Preserve chat input text typed while a session is loading (#325323)

A chat widget's input editor stays visible and editable while its session
loads asynchronously, but no view model is bound yet. When the model finally
binds, it resets the editor to the session's own (usually empty) draft, which
discarded whatever the user typed in the meantime. The placeholder decoration
also stayed rendered on top of the typed text during loading.

Add a shared `setModelPreservingInputTypedWhileLoading` helper used by the
editor, sessions, and panel chat hosts to carry newly-typed text across the
model bind (without clobbering a persisted draft or a previous session's
leftover draft), and clear the placeholder decoration when there is input text
but no bound view model yet.

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

* Address review: baseline panel draft at loadSession start, condense comments

The panel's slow-load path (`ChatViewPane.loadSession`) opens the load window
(clear + acquire) before calling `showModel` to bind, so capturing the input
baseline inside `showModel` happened at the end of the window and text typed
during loading was mistaken for the baseline and erased. Capture the baseline
at the start of `loadSession` and thread it into `showModel` (new optional
param), keeping direct `showModel` callers capturing their own baseline.

Also condense the verbose explanatory comments flagged in review.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-13 04:23:53 +00:00
fa21667c6d polish chat collapsible animation (#325515)
* polish chat collapsible animation

* 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>
2026-07-13 00:29:03 +00:00
d7ca822f99 chat: preserve model config when editing requests (#325509)
- Captures the editor-scoped model configuration before inline edit teardown so a changed thinking effort reaches the replacement request.
- Allows later prompt metadata to select a different model without reusing configuration captured for the previous model.

(Commit message generated by Copilot)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-12 22:57:56 +00:00
4655e07d3f Add Live Browser pill above chat input (#325033)
* Add Live Browser pill above chat input

Surfaces a "Live Browser" pill above the chat input (alongside the
changes/preview pills) while an agent-host turn is in progress. It shows
when the last turn's output contains a URL-carrying browser tool call
(openBrowserPage/navigatePage), taking the last such URL, and opens the
integrated browser at that URL when activated.

Gated behind a new `browser` sub-flag of `chat.turnStatusPills` (default off).

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

* Fix stale "Both pills" comment in fixture

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

* Avoid "in" operator in browser tool URL parsing

The hygiene check forbids the `in` operator. Narrow the tool call by its
`status` discriminator instead: `toolInput` is present on every tool call
state except while parameters are still streaming.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-12 21:13:34 +00:00
RoboandGitHub dc7db07400 chore: update electron@42.6.0 (#325428)
* chore: update electron@42.6.0

* chore: update node.js build

* temp: bump distro

* chore: update deb dependencies

* chore: update rpm dependencies

* chore: add missing platform dep to allow-scripts

* chore: bump distro
2026-07-12 20:30:31 +00:00
Martin AeschlimannandGitHub cf2d8b929f Remove chat.generalPurposeAgent.enabled and related code (#325259)
* Agent Host changes for agents/remove-generalpurposeagent-enabled

* Refactor runSubagentTool to remove general purpose agent functionality
2026-07-12 19:56:10 +00:00
Christof MartiandGitHub 922f78a595 Merge pull request #325369 from microsoft/chrmarti/prominent-bobcat
AgentHost proxy support
2026-07-12 21:01:08 +02:00
Christof Marti efe8a5dafd Always register network diagnostics 2026-07-12 18:47:24 +02:00
Christof Marti 240f241712 Add back retries 2026-07-12 18:47:23 +02:00
Christof Marti a1f4d9e274 Proxy support for telemetry endpoints 2026-07-12 18:47:23 +02:00
Christof Marti b0ac0d431b Look up endpoints for diagnostics 2026-07-12 18:47:23 +02:00
Christof Marti 19c3121f3e Loop in patched fetch 2026-07-12 18:47:22 +02:00
Christof Marti 51c4c881a7 Network diagnostics 2026-07-12 18:47:19 +02:00
Alex RossandGitHub 1034bf7d3f Change default state of proposals exp (#325322)
* Change default state of proposals exp

* Use none exp
2026-07-12 15:51:33 +00:00
Vijay UpadyaandGitHub 1adedfc654 local → agent host migration: In‑place switch, imported session fidelity (#325458)
* Agent host migration improvements

* local → agent host  migration in‑place switch, imported session fidelity

* feedback updates
2026-07-12 15:28:22 +00:00
7b2a6a4f4b Use server-backed archived state for agent host sessions (#325399)
* Use server-backed archived state for agent host sessions

For agent host sessions, isArchived() now ignores the local view-state
overlay and uses only the server-authoritative session.archived value, so
a stale local archived:false can no longer mask the server's archived
state. Non-agent-host providers keep the existing overlay behavior.

Fixes #325398

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-11 15:48:59 -07:00
KaidesuyoandGitHub 3e464995fe fix persistent workbench UI performance degradation (#324986) 2026-07-11 15:43:46 -07:00
7ad785b690 AgentHost - seed active-client customizations on Claude session creation (#325443)
* AgentHost - seed active-client customizations on Claude session creation

Copilot sessions in the Agents window receive the synced customization
bundle — the built-in skills backing /create-pr, /fix-ci, /merge, etc. —
because `copilotAgent.createSession` seeds the eagerly-claimed `activeClient`.
`claudeAgent.createSession` did not, so the initial active client (already
present in the workbench session state) never triggered a customization
sync: no follow-up `session/activeClientSet` is dispatched when the state
already matches, so `syncClientCustomizations` never ran. Claude sessions
were left without the built-in skills that Copilot sessions get.

Seed the active client in `claudeAgent.createSession`, mirroring the Copilot
agent, and cover it in claudeAgent.test.ts.

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

* AgentHost - address review: seed eager active client on reconnect + quiet initial sync

- Extract `_seedEagerActiveClient` and apply it on the existing-session
  (reconnect) path too, not just fresh creates: AgentService reissues
  createSession for an existing URI, so a reconnected client's tools and
  customizations must still reach Claude (mirrors the Copilot agent).
- Pass `{ quiet: true }` for the initial sync so it doesn't emit orphan
  `SessionCustomizationUpdated` progress before the session state exists.
- Add reconnect + quiet regression tests.

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

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 21:58:48 +00:00
Giuseppe CianciandGitHub 232f584ed1 Merge pull request #325263 from microsoft/agents/codex-agent-host-forking-ui
Codex agent host: forking, subagent rendering, single approvals chip, auto-review denial surfacing
2026-07-11 23:56:25 +02:00
Bhavya UandGitHub d40305ca9c Fix cache break hint when models are unavailable (#325444) 2026-07-11 21:56:18 +00:00
Vijay UpadyaandGitHub ec2f3e608c Enable Agent Host debugging in the Agent Debug Logs panel (#325417)
* Enable Agent Host debugging in the Agent Debug Logs panel

* Feedback updated
2026-07-11 21:55:33 +00:00
Henning DieterichsandGitHub e2c0ad9ffc markdown editor update 2026-07-11 15:14:54 +00:00
Martin AeschlimannandGitHub 61b8df11ad add 'migrate prompt files' to customization UI (#325155)
* add 'migrate prompt files' to customization UI

* update

* update

* add setting

* add migrate label

* update

* update

* update screenshots

* update

* update

* update

* update

* update

* update screenshots
2026-07-11 15:12:57 +00:00
Ladislau SzomoruandGitHub ba2a14cc6b AgentHost - adopt the concept of reviewed from the protocol (#325310)
* AgentHost - adopt the concept of reviewed file from the agent host protocol
2026-07-11 13:49:58 +00:00
Don JayamanneandGitHub a10ba5f91d chore: update GitHub Copilot and SDK versions to 1.0.70-0 and 1.0.7-preview.0 respectively across all package files (#325401) 2026-07-11 09:22:43 +00:00
6479c9a3a6 Start initial Agent Host customization discovery immediately (#325407)
Start initial customization discovery immediately (Written by Copilot)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-11 05:09:45 +00:00
Ben VillalobosandGitHub fbf54ced95 Automations: Bring workspace picker under the chat input (#325397)
* Debt: Remove workspacePickerInput from chatInputPart

* Remove dead renderTrigger code

* Cleanup: Consolidate into a single pickeractionviewitem class

* signing commit
2026-07-10 18:41:18 -07:00
Ben VillalobosandGitHub 2b8fc296f2 Add best practice: avoid body:has() workbench-wide selectors (#325400)
Add best practice: never anchor :has() on body or a workbench-wide root

A body:has() selector forces the style engine to re-evaluate against the whole
document on nearly every DOM mutation, degrading workbench interaction perf even
in builds where the feature is disabled. Document the class-on-container
alternative under the Styling best practices.
2026-07-10 18:39:22 -07:00
Ben VillalobosandGitHub 2ca4b95e96 fix: hide next run time for disabled automations and restyle badge (#325383)
* fix: hide next run time for disabled automations and restyle badge

- Don't show next run countdown when automation is disabled
- Change disabled badge from button-style to thin italic text

Fixes microsoft/vscode-internalbacklog#8335
Fixes microsoft/vscode-internalbacklog#8336

* signing commit
2026-07-10 17:30:17 -07:00
af8b8aab0c sessions: rename single-pane detail context key to HasDockedDetailsContext (#325391)
* sessions: rename single-pane detail context key to HasDockedDetailsContext

Rename SinglePaneDetailChangesOrFilesActiveContext (raw key
agentSessionsSinglePaneDetailChangesOrFiles) to HasDockedDetailsContext
(raw key agentSessionsHasDockedDetails) to better convey its meaning:
whether the single-pane active editor has a docked detail panel. Updates
the producer, both consumers (Toggle Details, Hide Editor), tests and docs.

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

* sessions: align docs and test terminology with HasDockedDetailsContext

Address review feedback: update SINGLE_PANE_SCENARIOS.md to describe the
new intent (active editor has a docked detail panel — a managed
Changes/Files tab or a text file editor) instead of the old
Changes/Files-target wording, and rename the test helpers
(isChangesOrFilesActive -> hasDockedDetails) and snapshot property
(gatedOnChangesOrFilesTab -> gatedOnDockedDetails).

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-10 23:56:19 +00:00
PaulandGitHub 41c79fb713 Fixes for agent host E2E tests (#325364) 2026-07-10 23:55:22 +00:00
Megan RoggeandGitHub 959ed5f5dd Voice: fix session-state storm and confirmation narration preemption (#325339) 2026-07-10 23:50:16 +00:00
e12dcf838f editor: reuse toggle.diff.renderSideBySide in the Agents window Changes editor (#325382)
* editor: reuse toggle.diff.renderSideBySide in the Agents window Changes editor

Introduce IDiffEditorCommandsService so the workbench toggle.diff.renderSideBySide
command works in the Agents window multi-diff Changes editor, fixing #324765 (a
user's keybinding for that command now carries over). The base impl is registered
by a workbench-only contribution (diffEditor.workbench.contribution) and the Agents
window contributes its own impl (diffEditor.sessions.contribution) that flips the
workspace diffEditor.renderSideBySide setting, which the Changes editor observes.

The Changes header button and command palette entry now use the shared command id
instead of a custom action, and the accessibility help references it.

Only toggleRenderSideBySide is extracted for now; a follow-up will move the
remaining diff-editor command handlers into the service.

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

* sessions: add behavioral tests for the diff toggle override

Addresses CCR feedback: the menu tests only checked the shared command id
was referenced. Add focused tests for SessionsDiffEditorCommandsService that
invoke toggleRenderSideBySide with a SessionChangesEditor active and assert the
workspace diffEditor.renderSideBySide setting is flipped (both directions), and
that a non-Changes editor falls back to the base path.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-10 23:32:22 +00:00
df8bce5a37 sessions: align read-only chat banner with the tab strip (#325387)
* sessions: align read-only chat banner with the tab strip

Inset the read-only chat banner's left edge to match the chat tab
strip's padding-left so the banner begins under the first tab rather
than under the header's status-icon column. The right edge already
matched the tab strip's padding-right, so the banner now starts and
ends flush with the tabs.

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

* sessions: trim read-only banner alignment comment

Condense the verbose comment on the banner's margin per CCR feedback;
keep only the non-obvious intent.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-10 23:26:45 +00:00
theanarkhandGitHub 56622fd71c workbench: fix ObjectSettingCheckboxWidget memory leaky (#323670) 2026-07-10 22:59:48 +00:00
Sandeep SomavarapuandGitHub cacd1aaf97 Update "Worktree" label to "New Worktree" in session providers (#325374)
Agent Host changes for sandy081/agents/update-worktree-label-new-session
2026-07-10 22:23:38 +00:00
Megan RoggeandGitHub be1e336886 Rename agents.voice.textToSpeech to agents.voice.speakResponses (#325358) 2026-07-10 20:58:25 +00:00